Monday, March 26, 2012

Convention Driven Design : benefits to Offer

This article could have the title "Benefits of Convention-driven over a configuration-driven design", but I want to keep it simple as Configuration driven design has already provided a lot of facilities to the developers and software architects. I'm not driving my thoughts to ignore the facilities of a Configuration Driven Design, rather I'm just trying to list a few of the benefits that I found useful while working with Convention Driven Design:
  • I found it easier to jump-start with frameworks those follows Convention Driven Design.
  • Reduce initial efforts of developers while starting coding with it.
  • Code seems to be self explanatory. E.g. Suppose for ASP.Net MVC the name of the controller & method can be found quite easily from the URL.
  • Convention helps the developer to keep the code clean. E.g. Developers do not need to decide where to keep the View code and where to keep the Controller. Its already decided by the convention and developers get rid of checking the mapping of location and the URL.
  • Managing and Refactoring of Code is Easier.   

Wednesday, April 08, 2009

Convention over Configuration

Now a days most of the developers are dependent on different frameworks for developing applications. These frameworks mainly depends on different configuration parameters. Some frameworks need multiple configuration files, each with many settings. These provide information specific to each project, ranging from URLs to mappings between classes and database tables. A large number of configuration files with lots of parameters is often an indicator of an unnecessarily complex application design. Writing everything in XML for configuring a robust application can be minimized by introducing a comparatively new concept "Convention over Configuration".
Convention over configuration is a design philosophy and technique that seeks to apply defaults that can be implied from the structure of the code instead of requiring explicit code. The idea is to simplify development by allowing the developer to worry only about the unconventional parts of the application and architecture. Many modern frameworks use a convention over configuration approach. A few such frameworks include: Spring, Ruby on Rails, EJB, JSF, Stripes, Kohana PHP, Grails, Grok, Zend Framework, Pylons, CakePHP, symfony, Maven, ASP.NET MVC etc.