views:

80

answers:

3

Is there any language-independent tutorial or book for developing web applications?

For example implementation of login procedures, photo-gallery making etc, not focused on any particular language?

+1  A: 

I'd like to suggest - Coding Horror: Recommended Reading for Developers

adatapost
Same as PoEAA, wonderful books but not the kind the PO is asking for
Pablo Fernandez
+1  A: 

Patterns of Enterprise Application Architecture by Martin Fowler is a good start.

The example code is in Java and .Net but the patterns transcend any specific programming language. It deals with subjects such as how to implement server side sessions, patterns used to create a Model-View-Controller framework, patterns used to create an object relational mapping framework, and a little bit on how to string it all together.

A few other paradigms have entered into the fray since it was written, which are not covered such as dependency injection. There is no coverage of NoSql databases and when to use them. It also lacks coverage of more retro topics such as CGI, and older frameworks/languages that used this standard (ie webapps written in Small talk). The book also predates the widespread use of "convention over configuration" frameworks such as Rails. Transactions are dealt with adequately but the coverage is not complete, referring the reader to Principles of Transaction Processing by Bernstein and Newcomer, for in depth information.

It might be worthwhile to complement reading PEAA with a good understanding of Unix sockets, and how this ties up with the threading and shared memory facilities offered by the language you are programming your web application in. The concurrency features of the run-time environment your application is deployed in will influence how you process requests and implement server-side sessions. If you need to remind yourself about sockets read chapter 12 of "The Illustrated Network" by Goralski. If you really want to geek out read the chapters on networking and threading in "Computer Systems: A Programmer's Perspective" by Bryant and O'Hallaron, though this might be overkill. Just know the concurrency capabilities of your chosen programming language and how it talks to the network layer.

A good understanding of the HTTP protocol is essential. This will lay a solid foundation for learning other important standards based on HTTP such as REST and AJAX. For in depth information on HTTP there is "HTTP: The Definitive Guide" by Gourley and Totty. There is also W3C. For an introduction to REST have a look at

http://www.infoq.com/articles/rest-introduction

For a broad brush overview of HTTP and sockets have a look at Wikipedia.

Concerning usability I would recommend the following two books from the Pragmatic bookshelf:

http://pragprog.com/titles/bhgwad/web-design-for-developers

http://pragprog.com/titles/jsaccess/design-accessible-web-sites

Finally concerning security a good place to start might be "24 Deadly Sins of Software Security" by Howard, LeBlanc and Viega. Part 1 deals specifically with web applications and Part 4 deals with network security in general. Part 3 on cryptography is also good, if you are generating "remember-me" tokens stored in a cookie, so that a user does not have to log in each time they use your app.

I am not aware of any one "cookbook" that will provide a solution for every problem you are likely to come across developing a web app but if you read all of the above you will be fairly well positioned.

murungu
PoEAA is not a good suggestion, at least for the examples the PO gave
Pablo Fernandez
I was not going to downvote this but the user is asking about making a photo-gallery and you talk about Unix sockets...
Pablo Fernandez
"For example implementation of login procedures, photo-gallery making etc, not focused on any particular language?"
murungu
Concerning the login part, the chances are you will need to store some kind of server side session which will have to handle multiple and possibly concurrent requests. That is why I mentioned sockets and concurrency.
murungu
This is not what I was looking for, but a good book list anyway. Thanks :)
klez
+1  A: 

I'd suggest a book like Web Application Architecture: Principles, Protocols and Practices. It provides a high level overview of the pieces of developing a web application, with some real examples when they are called for.

Mike Axiak