views:

258

answers:

7

I have been developing websites in n-tier structure and so far my requirements are fulfilled. But as powerful frameworks like Zend Framework, symphony are getting popular, I wonder how to know if it is time to shift to a framework?

I am in a kind of dilemma? Can anyone suggest me the right option !

+3  A: 

Yes.

It not only speeds up development time (once you know your way around the framework), it enables other developers to have a better understanding of how the site works.

Josh
... because your other developers didn't learn PHP, and just learned Cake or ZF instead?! WTF?
Timothy
+9  A: 

If you satisfied with your own way - never.
Frameworks being written not by gods but by people. Some of them may know less than you. Or have different point of view.
Also, it is more a paradigm dictated to you, than toolbox. A religion.
If you have your own way and it suits you, better develop your own framework. Not as universal as famous ones, but not as fat and sluggish as them too.

Col. Shrapnel
Assuming to be a better developer than a whole community of people that built a framework over years is mostly plain hubris. Most people who try to make their own FWs just reinvent the wheel which should be avoided. And FWs don't "dictate" anything. Most of them can be used in variety of ways.
Techpriester
That's another opinion and I appreciate it.
Col. Shrapnel
There's nothing wrong with writing your own framework. In many cases you simply don't need anything other than the MVC structure itself and a few utility classes for security, form handling, and database abstraction. Some frameworks (looking at you, CakePHP) are almost hilariously bloated.
Lotus Notes
LOL...gotta love someone with the name "Lotus Notes" talking about bloat. I guess there's no better expert.
cHao
+3  A: 

Using a framework has of course its advantages because you can write your code faster, you have not worry about a lot of functionalities that are always required in a web application so you can think more about your application-specific implementation and you have just to upgrade the other functionalities. Using a framework gives you of course advantages in terms of collaboration because obviously if you use a well-known framework there are a lot of people that know it without spending time to train them.

But, when you use a framework, you must respect its structure, its coding style and its design. That's usually not a problem because if you choose wisely a framework, you won't feel the need to go off the rails.

dierre
+2  A: 

Whenever you're not quite sure what the end result of the software is going to be. Ready made libraries are usually made to handle almost anything so you can easily extend your site on them. And if there's going to be new people working on it at some point in the future, they can hop in easily, without having to learn your way of doing things.

But other than that, i think that Col. Shrapnel is spot on.

JHollanti
+3  A: 

The best thing to do is really just have a go! I switched from my own coding style into CakePHP about a year ago and haven't looked back since. Makes it much easier for me to work on other framework-based code by other people, too, and it's overall reduced the wtfs of looking at my own code six months later because now the code follows a much stricter format and is more predictable.

If you're asking that question, then the time to try it is probably now since you've clearly had your interest piqued. If it turns out you don't like working with them then you can always go back to your usual way (or even write your own like Col. Shrapnel says).

hollsk
+1  A: 

As long as you can't answer this question yourself, I'd say: Always use a framework.

I know a lot of developers who think that using a framework makes them less off a "real programmer" which is just plain stupid. This wrong kind of pride should not stand in the way of creating well structured and maintainable code.

Using a good Framework saves you a lot of the small annoying problems so you can concentrate on your actual project. Of course there are no things that you can't do without a framework but with one you'll be able to do them much faster and with les headache.

Maybe experience will then show you cases where you don't need a framework or are in fact better of without one but these are quite rare.

Techpriester
+3  A: 

The 4 reasons we chose to go with a framework (Zend) at my company:

1 - Common syntax: the framework has it's own syntax that all our coders must work to (to some degree). Makes it easier to use external developers, or handle staff turnover

2 - Scale: the site in question was of a scale that demanded MVC architecture

3 - Tested Components: The framework has most of the components pre-built, leaving you to focus on the Model

4 - Brand credibility: There's a certain value in using a high profile framework brand from a client perspective. It implies a standard solution, and "decouples" the client from your custom framework

sunwukung
+1 for standardized approaches. It's a lot easier to bring someone up to speed on a project that uses a bunch of standard components for routing, controllers, cache, etc, than it is if all of those things are unique (and probably not as well documented as the framework code). If you're a 1-man army, this is, of course, less of an issue.
timdev
But I thought we were supposed to couple our clients to our custom code so they can't go elsewhere!!
Timothy