What’s Under the Hood?
As any professional evaluating a new system you want to know what’s under the hood. We respect that! This is why we prepared this list of why we think In-Portal is a kick-ass system that not only looks nice but also has a V8 beast under the hood.
100% Object-Oriented Code
We think procedural programming shouldn’t be used in top-of-the-line serious software products. No, seriously, do you know any serious programmer that would not use the OOP approach for this kind of a solution? Why there is much code on the Web that looks like it was written by someone who just took Programming 101? We firmly believe the OOP approach is the way to go and here is why:
- More Natural Approach: software objects model real world objects so the complexity is reduced, and the program structure is very clear;
- Modularity: each object forms a separate entity that’s internal workings are decoupled from other parts of the system;
- Easily Modifiable: it is easy to make minor changes in the data representation or the procedures in an OOP application. Changes inside a class do not affect any other parts of the application;
- Extensible: adding new features or responding to changing operating environments can be solved by introducing a few new objects and modifying some existing ones;
- Easily Maintainable: objects can be maintained separately, making locating and fixing problems easier;
- Reusable and Portable: objects can be reused in different applications or modules;
Framework based on "Gang of Four" Design Patterns
In-Portal successfully combines many well known design patterns and techniques described as "Gang of Four" that are used to create high-end applications:
Refer to http://en.wikipedia.org/wiki/Design_Patterns_%28book%29 for more information.
Many "Low and High Level" Features:
If you can appreciate the following principles, approaches and features widely used in In-Portal, you will appreciate In-Portal as a solution for your own projects. If you don’t know what half of this stuff means – join and become a better programmer!
- Singleton pattern based objects for unified object communications;
- Abstract Factory – a central class registry for easy access to classes and an interface for creating families of related or dependent objects without specifying their concrete classes (class pseudo names);
- Late Class Initialization - class declaration files are only included when requested by the Factory, resulting in a more efficient loading of only the class related files and directly proportional to code complexity being used;
- Class Extensibility – an ability to extend 99.9% of available classes.
- Unit Configuration Files – provides you with flexibility and reusability; saves you from creating/designing new classes to perform basic tasks;
- Event Handlers – used to organize and work with Business Logic of your application;
- Tag Processors – used to facilitate processing of Data output.
- Helpers – general purpose classes, that could be accessed by any other class at any time;
- Hooks – easier ways to integrate into any part of your application without changing the base code;
- Formatters – an ability to store and preset any data in different visual formats;
- Flexible Template System – functionality and business logic is completely separated from the look-and-feel;
- Transparent Database Integration - no unneeded object such as record-sets;
- Intelligent Debugger - flexible and informative Ajax-driven debugger that will help you tremendously with your project;
Last but not least, we all adhere to the industry clean-code standards, making sure we all follow a coding style to ensure that any developer could easily read and work with the code. This includes but not limited to commenting and documenting, using a descriptive naming convention, structuring the code in the most logical way, and much more.
Why Not Give it a Try?
We hope we convinced you that In-Portal isn’t a quick hack – it is a system with years of experience, thinking and hard work put into it. We invite you to evaluate it for yourself. Let us know what you think!