On Tue, Oct 11, 2011 at 04:10:49PM -0700, MjR wrote:
> Hello all, I am a student at CPIT in my last semester of a BICT
> specialising in web development. Currently in the process of
> completing my final year project developing a licencing system based
> around php.
> I find myself in the position of choosing and evaluating which
> framework I should use, as I consider myself a novice I feel it would
> be best for me to pose this question to you all for some expert
> advice. Most suitable would be a frame work that is comprehensive yet
> can be picked up easily to someone with a limited understanding quite
> quickly, as this project is running on a tight time schedule.
> I would really appreciate any help and advice you can all offer.

There's a few things that I would consider important when looking at a
framework for web development:

- Does it work on the bus?  I.e., if you're not connected to the net in
  any way, can you still work on a project at http://127.0.0.1/?  Is
  this the default, prescribed way to work with the framework?

- Pain to deploy - the prime reason for the point above is that if the
  default mechanism for doing development work is on the developers
  machine, the framework will almost certainly have an easy mechanism
  for deployment.  It should also be easy for multiple developers to
  push to the same install.

- Database schema changes - How does the framework handle these?
  Assuming your application is database backed, this can become a huge
  pain point over time if your framework doesn't support it.  It's
  particularly problematic when developers hand roll solutions, and end
  up knowing a set of secret incantations that are required to roll out
  schema changes.  When developer no. 2 comes to the project, she's
  pretty much stuffed.  A database agnostic framework should probably
  get extra points, as it's likely to have at least a modicum of
  abstraction in the database access / ORM code layer.

- Testability.  From Michael Feathers book 'Working with legacy code':

    "The main thing that distinguishes legacy code from non-legacy code
    is tests, or rather a lack of tests."

  A project with even a small level of complexity becomes almost
  impossible to effectively regression test by hand.  Check that your
  framework supports unit testing, and ideally some form of integration
  testing that exercises the whole stack.

There are probably others, but I think the points above are important if
you're playing a long game.

Malc

-- 
NZ PHP Users Group: http://groups.google.com/group/nzphpug
To post, send email to [email protected]
To unsubscribe, send email to
[email protected]

Reply via email to