Magento Module Development

We follow the magento coding standards for all our magento projects. Magento is designed for extending its features to any level without touching the core part of the framework. This is one of the reason why this framework become the most popular and favorable platform for eCommerce now.We strictly follow magento standards for extending modules as described by magento team here

If magento core part is edited for extending any features, on future upgrades you will loose what you have extended for core files. So non standard coding lead you to a big mess in future.

Source Code Version Control

We use git tool for source code version control and use github for managing the git repositories. There are many advantages in using source code version control tools in managing project code.

  • Collaboration is the main advantages for git, many coders can easily work on the same project without messing up the code.
  • There will be clear track on the changes applied on the project source code, so a project lead can easily manage the code always clean. In magento it is essential that core files are not be edited while extending the site features, by using  this environment a project lead can make sure that  core files are not edited by any project members.
  • Project source code will be centrally saved in the github server and it will be always safe, no duplicate code for a project source code.
  • Any time we can revert back to the previous version, if anything bad happened, if a  professional team is behind the project development, there will be no bad versions 🙂

Development Environment

Development environment is very important for ongoing projects, for very large projects may have different phases and after completing the initial phase, may be we make the site live(it depends on client requirement). So for further development we should have a development environment and production environment, development environment would have only restricted  access (not accessible to public). So the advantage is development versions can be tested and refined very well before going to the production. Single environment may lead to downtime or may customer face errors on production site, this would affect your site credibility adversely.

For large enterprise projects, we use 3 environment for development development, staging, and production. Development for purely testing ongoing developments , staging is for testing release version just before going for production. So production releases would not affect the development lifecycle.