"A custom problem requires a custom solution"
- The code should be easy to follow and understand
- The software should be able to be modified to suit a developer's needs
- The software should be secure, robust, flexible, scalable and fast
- The code should be fully documented
Ease of use
DevCore was born out of frustration with off-the-shelf CMSs that were difficult to follow, debug, maintain and modify.
DevCore is designed simple, with essy to follow patterns in the logic. Sensible method names and data flow make it easy to find what you are looking for, modify the code and maintain it once you've deployed it.
Security
I have worked with a number of CMSs and frameworks that have minimal security, or you can download a module or plugin to enable security. For many CMSs security is seen as an afterthought. But for DevCore it is built in right from the start.
The security is easy to modify or even disable if you want.
If you don't like the way DevCore does its security, you can 'roll your own' and replace the default functionality with no problem.
Flexibility
Each website is different. They have different content, different markets, different ways of operating, different needs in terms of scalability, speed and interoperability. The way DevCore is written makes it easy to change the way the code works to meet different needs.
Do you need different functionality for a single page, or section? No worries. Just sub-class the main class and write the extra functionality you need.
You can even upload a new section to your live site and preview it in-situ without the public having access to it. Then when you are ready, just hook up the navigation to the page. Simple really.
Maintainability
Because the code is written in a pattern, once you know the pattern you can follow any of the code and work out what is going on. If you continue to follow the pattern anyone can come along after you and maintain the code.
Scalability
The flexibility also helps with scalability. There are many ways to implement the code. You can follow the pattern as it exists, or convert it (quite easily) to more traditional MVC pattern. Either way, growing the website is painless and quick.
Documentation
A lot of the code I have worked with has been undocumented, or badly documented.
Things like - // do the loop written above a for loop is not really much use when you are trying to figure out what the developer had in mind when they wrote the loop.
I have tried very hard to make the documentation in the code helpful. I am like most developers however. It is more fun writing code that writing about code. So there will always be room for improvement.
Instead of the usual forum with hundreds of posts with developers arguing about anything from the code to the type of cat is best on your lap while your coding in winter, I have tried to put some helpful information up that is easy to access and relate to the code you are using.
The online documentation is a growing thing. At them moment there is small amount, but over time this will grow into a very useful resource. If you have comments, requests etc, feel free to email me.