design book!?

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

Post Reply
parachuter2b
Forum Newbie
Posts: 9
Joined: Thu Jun 11, 2009 12:04 pm

design book!?

Post by parachuter2b »

Hi,

I'm working on the design & implementatoin of a web 2.0 project that is going to be very similar in essence to http://www.urbandictionary.com (just to give you an idea)
Most likely going to develop it using PHP & mysql.
Now, I'm looking for a book (or a comprehensive guide) that lays out the steps that need to be taken to complete such web app projects from scratch. I would like to do it right in terms of software design perspective and use the experience of others to do it more efficiently.

Please advise,

ps. let me know if I need to provide more details

parachuter2b
alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Re: design book!?

Post by alex.barylski »

Your funny...at least I think you are. :P

Honeslty there is no one book that will do all that, from scratch. Maybe 12 or 15 books, when read in proper sequence, but not one book, it would be 1,000's of pages long.

How much experience do you have?

First I would brush up web best practices, like using a template engine, database abstraction layer, etc. Then I would learn OOP and start appyling those practices to your everyday development.

Once you realize things could be better, start reading about OOD, design patterns, unit testing, software sechitecture, etc.

To get up to speed as quickly as possible, I would go buy a book on Zend framework and follow the examples and ask lots of question in forums.
User avatar
kaisellgren
DevNet Resident
Posts: 1675
Joined: Sat Jan 07, 2006 5:52 am
Location: Lahti, Finland.

Re: design book!?

Post by kaisellgren »

PCSpectra wrote:software sechitecture
Software sechitecture being the most important :)
parachuter2b
Forum Newbie
Posts: 9
Joined: Thu Jun 11, 2009 12:04 pm

Re: design book!?

Post by parachuter2b »

thanks for the reply!
well, I do have some experience. I was a computer science major, so I know quite a bit about OOP, databases etc.
and I've been working as a programmer for couple years now. mainly working on an existing web app developed in struts.
Also, developed some utilities (used internally) in java etc.

I guess the main part I'd need help with is the order of things when you're developing a web app from scratch.
That is one of the reasons I decided to take on this project. I'd like to up my knowledge and make the leap from developing features, fixing bugs, etc. to designing and developing a web app from scratch.

I've done some stuff actually:
-wrote down the features I'd like to be in the first release (along with use cases)
-came up with the initial DB ERM etc.

I was wondering if I could delve into coding now or there are other things I need to before that.

ps. Please feel free to be critical.

Thanks,

parachuter2b
alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Re: design book!?

Post by alex.barylski »

If you have experience in struts...then use an existing framework as you should be familiar with design patterns and such...

There isn't much to say, because literlaly the question covers such a wide array of subjects.

Start with an index.php and a switch statement to dispatch requests to appropriate actions, or go with Zend setup an application skeleton and start filling in the blanks.
parachuter2b
Forum Newbie
Posts: 9
Joined: Thu Jun 11, 2009 12:04 pm

Re: design book!?

Post by parachuter2b »

thanks for the reply bud! ok, so i did some rresearch on Zend and found it pretty interesting...

now what I understand is that Zend provides a standard framework and some default suggestions for the user to follow. I was wondering if you'd recommend using a CMS in conjunction with Zend (i.e. Drupal or Joomla). Would you think it would make the implementation go smoother or rather reduce flexibility and cause more grief?

Thanks,

parachuter2b
alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Re: design book!?

Post by alex.barylski »

Using a CMS like Joomla or Drupal in conjunction with a CMS like Zend would make little sense.

Most advanced CMS, like Joomla or Drupal, have their own extensive library of code, for things like dealing with databases, registries, etc. CMS usually take it one step further and provide a component architecture as well, which will automate a lot of work but frequently get in the way of ideas or design requests, unless you know the system inside and out and can hack adjustments as required.

For instance, using Joomla to implement a business directory was easy (the component anyways) getting the URI's to be SEF/SEO was more trickery and not very welldocumented (I had to look at existing components, etc). Then my client required subdomains, so the directory category was specified in thesub domain, like so:

catering.somedomain.com

Using Zend, cause I would have built the thing from scratch, would have been easier to get that requirement satisfied, as you would need to tweak the router settings (which I am not overly familiar with in Zend - but it's more decomposed than Joomla and better documented). In Joomla I had to resort to all sorts of nasty hacks to get it to work.

Core developers could probalby do a much better job, but I'm not a core developer heck I'm not even a extension contributor, I just picked it up for a project on the advice of a friend and away I went and used it a few times since then, when the budget is slow and the client isn't clear, I use Joomla.

If we later discover it doesn't solve one of their issues, too bad, so sad, live with it. :P

Zend on the other hand will not provide your client with a advanced admin interface to manage content, users, etc...Joomla does...

It really depends on many factors which one you use, but using both is somewhat redundant. I used Zend recently with Joomla because I needed the RSS feed reader facility in zend for a module in Joomla.

But Zend is really focused around it's MVC arhcitecture, which would be next to impossible to use in conjunction with a CMS architecture, the API woudn't even remotely jive and adapters would just add more bloated to already bloated software.

Pick one or the other based on various decisions you need to make, IMHO anwyays. :)

Cheers,
Alex
parachuter2b
Forum Newbie
Posts: 9
Joined: Thu Jun 11, 2009 12:04 pm

Re: design book!?

Post by parachuter2b »

thanks a lot for the detailed reply Alex. I'm going to be the administrator of the application...(building it for myself) hence not much content management needed on the client's side. so I guess i'll go with zend! im sure i'll be back to ask more questions though:P

Thanks again,

parachuter2b
Post Reply