Ask HN: How can I learn to architect a production web app?
Now, I want to build a production web app. But everything I've read so far seems to be about "toy" applications (to do lists, simple blogging apps, etc.).
I'm looking for suggestions on where to turn to learn about building serious apps -- ones with proper security, admin interfaces, dashboards, analytics, etc.
Any suggestions on books, articles, blogs to follow, etc.? Thanks!
[+] [-] shailesh|12 years ago|reply
1. Write a list of desired features. Next, prioritize those features.
2. Write brief functional specifications for features of highest priority.
3. Decide on how you want to use the software stacks for different tiers, e.g.
4. Research any libraries that automatically handle common functional units, such as authentication and authorization, analytics et al.5. Some functional units might be implemented more easily by gluing together services. E.g. using New Relic for deep application monitoring, Twilio for cloud communications.
6. Design and implement all functional units.
7. Profit!
8. Write a Thank you HN note, :)
One should do this exercise for a "toy" application like "To Do List" first. It helps remarkably when we go about building serious stuff.
Books: 1. Code Complete by Steve McConnell - worth at least skimming it.
2. Design Patterns by Erich Gamma et al http://www.c2.com/cgi/wiki?DesignPatterns
Also, definitely have a look at Peter Norvig's slides: http://norvig.com/design-patterns
3. About Face 3: The Essentials of Interaction Design by Alan Cooper
4. Writing Effective Use Cases by Alistair Cockburn
Websites: 1. Obviously, HN, :)
2. http://highscalability.com/
It may look like a huge undertaking, but it really isn't. A quote from Michael Abrash seems appropriate here, "Winning a hard race prepares us for the next harder one."
This is just top of the mind; hope this helps.
Good luck.
Edit: formatting.
[+] [-] lishy|12 years ago|reply
The idea is that a user uploads a real working application, then provides a series of guides through the different aspects of the project; configuration, security, mvc, testing, persistence etc
For exmple, using the same application, this guide explains how to configure MVC http://www.lishman.com/project/5#card/278/file/82 and this one how to configure JPA persistence http://www.lishman.com/project/5#card/73/file/103
Unfortunately these examples use Java and Spring, but if by some miracle I can get someone to donate a ruby on rails example, you will be the first to know.
[+] [-] LarryMade2|12 years ago|reply
If you can't find a book or tutorial; next I would suggest take something that's small and meets your idea of "production" capable, and dissect it. Better is to build a similar concept app to the sample source and try to employ that code and ask questions as you go along.
[+] [-] pastaking|12 years ago|reply
[+] [-] michaelmior|12 years ago|reply
[+] [-] s3b|12 years ago|reply