Conceptric
  1. When frameworks are too friendly

    Drupal modules and WordPress plugins offer a huge range of functionality that’s easily integrated. CodeIgniter provides a clear program structure with plenty of utility functions within easy reach.

    Positive experiences.

    The most frequently touted benefit frameworks have to offer is minimising the time taken to code and deploy a software solution. Given my interest in Agility, this is an attraction, reducing the time to market.

    Another solid development practice is code reuse in the form of software components, and frameworks have a place amongst them. This approach offers the reliability and security inherent in widely used and tested code. Remember to choose popular software though, or this benefit disappears.

    On the downside.

    Applications developed using frameworks have to carry significant excess baggage in the form of unused features. This raises two main issues: your codebase will be unnecessarily large, and underused blocks of code are a breeding ground for hidden exploits and errors.

    Frameworks are designed to function in a specific way, some with more flexibility than others. This much you’d expect, after all it’s the essence of a framework, but what if it doesn’t provide everything you need? For example, I’ve spent hours trying to integrate SimpleTest, a unit testing suite, to produce satisfactory results with CodeIgniter. My unit tests run well for my own libraries, but I’m still unhappy with the test coverage imposed by CodeIgniter’s MVC implementation.

    Finally, they say practice makes perfect, but does reliance on any framework reduce developer skill? This isn’t a problem if everything is pre-packaged in your chosen tool, but what if a client wants something that isn’t included?

    Too good to ignore.

    That said, I’ve found all of these software very useful and there are far too many advantages to ignore them. But I often find myself fighting these same tools, frustrated at they’re eagerness to help me do something in a way I don’t want it done. I guess the key is to understand which is the right tool for the current job: the ultimate skill for a developer.

    There are no comment for this post at the moment. Please feel free to let me know what you think.

    What do you think?

    XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

    You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.