Frameworks and more..

Not for 'how-to' coding questions but PHP theory instead, this forum is here for those of us who wish to learn about design aspects of programming with PHP.

Moderator: General Moderators

User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Post by Christopher »

nathanr wrote:somebody really wants to see my code! 8O
Always ... what's the old saying -- A class library is worth a thousand posts!
(#10850)
jmut
Forum Regular
Posts: 945
Joined: Tue Jul 05, 2005 3:54 am
Location: Sofia, Bulgaria
Contact:

Post by jmut »

ole wrote:...I can fix bugs in other people's libraries too, if they meet my criteria...
Thats exactly the point "if they meet my criteria". Frameworks are not only to make code easier with well known problems but also to have common
view on whole situation. If you take one company for example, there will be development policy etc etc, possibly own framework and that will be so devs can look into each others code and not be scared and not knowing whats going on. Take that into the wild public and you get the framework we talk about...for example ZF. Thing is you will more likely build better framework for a bunch of devs to use rather to a whole community of thousands of devs. There will always be one not liking it. There is a thin line of the definition of what a framework is.
User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Post by Christopher »

For me it is the difference between implementing a solution and implementing something with which you can build solutions. It is a fine line. And the problem of getting together the right number and type of cooks makes great frameworks rare. You really need an strong initial vision and then a second expansive vision that can take the code to the next level without destroying that initial vision.
(#10850)
User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Post by Christopher »

nathanr wrote:I have a nice set of classes too.. all of which need about 5 minutes work to make them comemrical release, you know tidy up a var I no longer need here, add in a couple of comemtns (if not just to explain to msyelf!) 've actually got a protx integration here I may post up for people to use, for the v2.22 protocol including the new authenticate etc
Have you finished tidying up and commenting that code? Post that link so we can download.
(#10850)
User avatar
s.dot
Tranquility In Moderation
Posts: 5001
Joined: Sun Feb 06, 2005 7:18 pm
Location: Indiana

Post by s.dot »

I'm actually thinking about delving into the Zend Framework, just so I can get an idea of frame works, and better learn OO.

It would be nice to start a new site with a framework, where a good portion of the code is there, ready to be called upon, manipulated, and executed.

Usually I use my own "framework" which consists of files (not really classes, or objects). It works for me, but I find myself doing things over and over and over again.

Plus, learning a framework, might land me some good jobs in the future.
Set Search Time - A google chrome extension. When you search only results from the past year (or set time period) are displayed. Helps tremendously when using new technologies to avoid outdated results.
User avatar
Ollie Saunders
DevNet Master
Posts: 3179
Joined: Tue May 24, 2005 6:01 pm
Location: UK

Post by Ollie Saunders »

In many places the Zend Framework is not particularly good OO. Read "Refactoring: Improving the design of existing code" if you want to get OO
User avatar
hongster
Forum Newbie
Posts: 6
Joined: Fri Mar 30, 2007 12:54 am

Post by hongster »

Can framework really speed up development? I think there is a need to find a balance. When the project is small, using a framework for development may take up more time.

I think framework helps if you are used to it and it must be kept simple.
User avatar
BDKR
DevNet Resident
Posts: 1207
Joined: Sat Jun 08, 2002 1:24 pm
Location: Florida
Contact:

Post by BDKR »

hongster wrote:Can framework really speed up development? I think there is a need to find a balance. When the project is small, using a framework for development may take up more time.

I think framework helps if you are used to it and it must be kept simple.
I like what Joel Spolsky has to say about frameworks and programming in general. The whole "Lord Palmerston: thing. (http://www.joelonsoftware.com/articles/ ... rston.html) It's a good read BTW.

That said, frameworks have a place, whether you use a communtiy, commercial, or you've harvested your own (knowlingly or not). The nice thing about some well known versions is that they provide a basis for understanding among larger groups of people and also end up providing a nice hiring pool.

The employment benifits are only there if you drink the Koolaid of course. :wink:

But that also harkens to problems associated with rolling your own. Not that there are problems in terms of code / design, but instead, community and tribalism. The larger percentage of individuals proficient in one or two of the well know frameworks tend to look lowly upon those that have rolled thier own. And God forbid that these are the ones looking at your resume as they're more likely going to look only at a list of presently hip buzzwords and glaze over at anything else that may be of substance.

Ask me how I know.

Anyway, I've a framework of my own too that I've been using, refactoring, rethinking since '01. I ultimately want to formalise it behind a name (Leonidas) and throw it up on Sourceforge, but I've got far larger and more important fish to fry at this point in time.

I'm sorry..... I'm ranting.

There is another issue concerning how most frameworks work to provide high levels of abstraction and RAD. It's ultimately due to the fact that they manage more and more complexity all the time. An ORM is the perfect example of this. Now while this is good in terms of development time, the cost of that complexity is still paid for somewhere in the life cycle of the application. If it's not paid for upfront during the initial development of the application, then it's most likely carried as a burden for the duration of it's usefullness / lifetime.

You never get rid of complexity. You just move it around.

I like what Larry Wall has to say about this:
My overriding design principle has always been that the complexity of the solution space should map well onto the complexity of the problem space. Simplification good! Oversimplification bad! Placing artificial constraints on the solution space produces an impedence mismatch with the problem space, with the result that using a language that is artificially simple induces artificial complexity in all solutions written in that language.
Now that quote doesn't speak directly to the topic of frameworks, but it's a good analog when talking about what it is that frameworks provide.

Cheers
User avatar
BDKR
DevNet Resident
Posts: 1207
Joined: Sat Jun 08, 2002 1:24 pm
Location: Florida
Contact:

Post by BDKR »

Oh..... All that jive about complexity is based on "The waterbed theory of linguistic complexity".
The waterbed theory of linguistic complexity says that if you push down one place, it goes up somewhere else.
User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Post by Christopher »

BDKR wrote:Anyway, I've a framework of my own too that I've been using, refactoring, rethinking since '01. I ultimately want to formalise it behind a name (Leonidas) and throw it up on Sourceforge, but I've got far larger and more important fish to fry at this point in time.
More code! Forget Sourceforge ... just zip it up and post is somewhere so we can all have a look and benefit from your code and ideas. If you don't have anywhere to put it let me know and I can put it online so people here can download it.

I am still waiting for nathanr's code. Honestly, there is no reason not to share it. Don't be greedy.
(#10850)
thinsoldier
Forum Contributor
Posts: 367
Joined: Fri Jul 20, 2007 11:29 am
Contact:

Post by thinsoldier »

For me there's just so much stuff to learn about a framework itself that it's a turn off. I'd be able to write what I need from scratch before I find the time to even start reading the documentation. (cake)
Oh, and having to download tons of php code that you have no idea if you'll actually use them or if they're even required (cake).
And then if it's a pretty popular framework and someone finds a major bug you've got to make sure you update the sites you used it on. I'm sure I've written some very vulnerable stuff but it's very unlikely anyone will ever even want to try to discover them on the unimportant sites they may exist on. But a bug in wordpress or something and people will throw every botnet in china at every wordpress site in existance. I think I'm safer with my custom code .... sometimes.

Then there's bound to be a case where you start of thinking you'll use a framework but something you need to do for your project is quite custom and nothing in the framework assists with it at all and you do that part entirely from scratch and in the end the use of a framework probably didn't really contribute to the important/hard/money earning part of the project. (prototype/scriptaculous/some other js lib that didnt help much)
User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Post by Christopher »

thinsoldier wrote:For me there's just so much stuff to learn about a framework itself that it's a turn off. I'd be able to write what I need from scratch before I find the time to even start reading the documentation.
It sounds like you are one of those rare individuals who combine a learning disorder with the ability write completely bug free software from scratch. I unfortunately am a mere mortal and need to rely on a fetid pile of proven, existing code to get my projects done anywhere close to on schedule
(#10850)
User avatar
superdezign
DevNet Master
Posts: 4135
Joined: Sat Jan 20, 2007 11:06 pm

Post by superdezign »

thinsoldier wrote:For me there's just so much stuff to learn about a framework itself that it's a turn off. I'd be able to write what I need from scratch before I find the time to even start reading the documentation. (cake)
I always write something from my own head, then look at examples, then improve it from what I learned from the examples. I prefer to know exactly what's going on in the framework, but I'm more than willing to mix what I do know with what I don't, and working examples are a good learning source.
thinsoldier
Forum Contributor
Posts: 367
Joined: Fri Jul 20, 2007 11:29 am
Contact:

Post by thinsoldier »

arborint wrote: It sounds like you are one of those rare individuals who combine a learning disorder with the ability write completely bug free software from scratch. I unfortunately am a mere mortal and need to rely on a fetid pile of proven, existing code to get my projects done anywhere close to on schedule
LOL, I wish!
What happens is most clients around here do everything by committee. So there's like 100% certainty that we have the project but there's 6 weeks of waiting for them to sign a contract. So that's 6 weeks of research time. Then the graphic design phase starts and possibly 2 months for them to remember to check out the layouts. Then the wait for them to pick the 16 people who will be choosing the final layout. Then waiting for them to request a coupled alterations to the layouts...etc.

While this is going on I'm building, breaking, failing, learning, rebuilding etc. And all the while repeatedly reminding them that the longer they take to perform their end of the bargain (send a digital copy of your logo, pick a layout, decide if you want to use British or american English etc) the oh so much longer it may take us to finally "start working"....:)

Why people can't understand that design by committee _often_ makes a 3 week job take 10 - 20 months is beyond my understanding. :(
User avatar
hongster
Forum Newbie
Posts: 6
Joined: Fri Mar 30, 2007 12:54 am

Post by hongster »

superdezign wrote:I always write something from my own head, then look at examples, then improve it from what I learned from the examples. I prefer to know exactly what's going on in the framework, but I'm more than willing to mix what I do know with what I don't, and working examples are a good learning source.
Well, a lightweight framework helps. It is easier to learn and modify. When too many layers of abstraction exist in the framework, it becomes very hard for me to understand what is going on internally. When bug occurs, it takes a lot of pain to debug. :evil:
Post Reply