While developing many applications in the past we have come over situations where we have seen best of developers goofing up with the right practice towards development. It was not just when a new application was need to be developed but also with constant upgradation, refactoring and feature addition. Coding oversights happen! And this is generic and omnipresent. But it can be avoidable if problems are categorized and addressed individually.
Here is the list for application level oversights that needs to be dealt with all the needed attention and proper planning for best of results from development.
Developing with error reporting off
This is a common mistake developers do and they have to pay for this silly mistake investing a lot of extra time to development later on. To make sure you don’t lose on any error issue, turn on the error reporting available at different levels. If you think error would not occur in your case, this could be your worst mistake. This could lead you to unnecessary trouble and one bad thing would let to another leaving your application at a high risk of getting trapped into error patches all over. Try avoiding this error and hit the button on!
This is even worse than not turning error reporting on. When you are suppressing errors, you are deliberately sweeping muck under the mat. These untreated errors would get nastier with time. This would only end up offering a shaky foundation to your application and you will have to pay heavily for the mistake.
No logging anywhere in the code
Logging is an important part of any web project and should be considered right away in the beginning. Most of them know this and use or implement logging in some or the other way. But the bad part is very few of the developers verify their logs for errors. It makes no sense having a log in your web architecture without a proper inspection agenda assigned to it.
Not implementing caching
Caching works at multiple levels. Server, Application, Database everything has its part of share for caching. Just like logging, caching should also be implemented right in the inception. To enhance the speed of PHP you can introduce an opcode cache that increases the efficiency of collection of byte code of PHP scripts. It is already available as OpCache with PHP 5.5. Talking at the application level you can use ACPu (the cache extracted from APC) or Memcached (that is a distributed caching system with great PHP support). One tip, no matter which caching system you follow, don’t forget to cache database queries sufficiently or it could act as a big obstacle to your PHP application and be a bottleneck to task executions.
Disregarding best practices
It is sick to see developers implementing their own password encryption algorithm. This happens more because of the ‘I know it all’ attitude over lack of knowledge. But I have seen most of them failing almost all the time with that. The best development practices and design patterns are created to solve some purpose. So, as a developer it’s your duty to pick the right prescribed pattern at work and use it thoroughly.
Not using automated tests
Tests should be created manually after studying the requirements and going through what situation demands. You will find a lot of people using tools for running tests in an automated arrangement. This harms the process badly with continuous integration. So, all the tools, templates and applications should be evaded and manual testing process should be followed to avoid irregular and faulty QA results.
Not reviewing code
An application is worked upon by many coders at a time. When we merge different modules and segments of application developed by many developers, results can get irrational and inconsistent with the quality. Reviewing the whole structure of codes, standards followed, services implemented and the whole application at large asserts its stability and genuineness. This further helps in going strong with fixes and improvements and helps come out with desired results.
Not using OOP principles correctly
This is another big problem with most of the developers these days. Object Oriented Programming needs to be implemented to its best reference to gain the desired quality applying the concepts of objects, properties, methods, inheritance, and encapsulation right. This leads to the idea of coding where it is easy to extend or build upon the existing concept, using flexible coding pattern.
“On-the-fly” or Cowboy coding
To meet their harsh deadlines most developers simply hack code from some source and push it directly to the live server. This goes completely against the conventions and plans supported by sane processes and also threatens the standards put by PHP and other dynamic languages. These platforms allow quick coding and change implementation but only in a restricted environment and any such reckless and indifferent practice of coding is highly dangerous for quality coding and should be avoid in first place.
Coding for the ideal scenario
We have seen situations where erroneous boilerplate code was added in causing a lot of trouble to the structure, eventually challenging our whole effort of development. This happens because of the lazy temperament of developers who fail to work in an ideal work scenario where corrupted databases and fatal errors are not there. Working in an ideal arrangement requires not just right resources but the right environment and the apt approach that provides for worst case scenario and has instant backup for things.