Hello, I was thinking, I''m having such a harrowing experience designing an application in Rails and it''s probably mostly because I''ve bit off rather more than I can chew. I''ve mostly used PHP in the past, but what I''m attempting now is quite a bit beyond that. I''ve heard of similar threads to this but here''s the gist of my question: Can I get some good book recommendations from fellow programmers/ application designers on this list? I''ve read lots of the Wiki snippets, done the basic Rails tutorials, and I own the Pickaxe book and a basic MySQL tutorial-style book. But what else would help? There won''t be Rails material on the shelves for at least two months and my deadline is looming. What has helped you? I need something higher level, but I''m not sure where on the shelves to look for a title that helps with the bigger questions like how *exactly* should a database look for a full application with ACL''s and stuff like that? Should I be looking under Design Patterns? OOP in Practice? Project management? Database design? Are there books on medium-scale application architecture that would be helpful for someone in my position? Specific recommendations are very welcome -- I''m eager to learn, and have very good eyesight! Best, Raymond
On May 3, 2005, at 1:23 PM, Raymond Brigleb wrote:> Can I get some good book recommendations from fellow programmers/ > application designers on this list?Check out Robby Russell''s recent blog entry: http://www.robbyonrails.com/articles/2005/05/02/the-pragmatic-programmer jeremy
On 5/3/05, Raymond Brigleb <ray-THGPwszTed5CpjqP0VxSwUEOCMrvLtNR@public.gmane.org> wrote:> Hello, > > I was thinking, I''m having such a harrowing experience designing an > application in Rails and it''s probably mostly because I''ve bit off > rather more than I can chew. I''ve mostly used PHP in the past, but > what I''m attempting now is quite a bit beyond that. I''ve heard of > similar threads to this but here''s the gist of my question: > > Can I get some good book recommendations from fellow programmers/ > application designers on this list? > > I''ve read lots of the Wiki snippets, done the basic Rails tutorials, > and I own the Pickaxe book and a basic MySQL tutorial-style book. But > what else would help? There won''t be Rails material on the shelves > for at least two months and my deadline is looming. What has helped > you? I need something higher level, but I''m not sure where on the > shelves to look for a title that helps with the bigger questions like > how *exactly* should a database look for a full application with > ACL''s and stuff like that? > > Should I be looking under Design Patterns? OOP in Practice? Project > management? Database design? Are there books on medium-scale > application architecture that would be helpful for someone in my > position? Specific recommendations are very welcome -- I''m eager to > learn, and have very good eyesight! > > Best, > RaymondA good handle on relational database concepts is absolutely essential. Get that down first. No recommendations, sorry. Once you have a good understanding of databases, then just ask questions on IRC or something. :-) The Pragmatic Programmer books are all excellent, btw.
The two big hurdles here initially are MVC and Relational Database vs. Object Systems. I learned about MVC by teaching myself Cocoa and by looking at different object persistance systems in the python world. I am still not that great at designing db layouts in general, but rails pretty much dictates the database design according to the activerecord pattern, so I haven''t had much trouble here. I am also weak on the recomendations front. I''ll recommend "The Pragmatic Programmer" (and their other books) which covers some of it. I learn by doing. I make mistakes, and then refactor, and then iterate. I design to facilitate refactoring which means that modules should be as orthogonal and decoupled as possible. More recently, I''ve been thinking more about cross-cutting issues and finding some interesting solutions (since anything that cross-cuts lots of modules is going to be highly coupled unless you''re very careful, you need to..well..be careful). I recommend learning different programming languages and libraries. Most of my ideas about design are stolen from Qt, Cocoa, Python, Unix, Nevow, Swing, wxWidgets, and most recently, Rails. Either I find things I don''t like and avoid them or I find things I''d like to emulate and do that. I''ve used some of these at work, and some I''ve just messed with on my own. Being a student and working part time is a luxury. I took a small tour of python web application frameworks before settling on rails for my client''s app, and I got a lot of ideas about how web apps ''should'' feel in a dynamic language. Also, looking at how different languages implement something central to all of them has been very educational. The most educational of thse has been object implementations in various OO languages. Compare/contrast object implementations in C++, Python, CLOS, and Ruby. Think about how you could modularize code without objects (Functors in ML, for example, serve a similar purpose). Think about getting the ''effects'' and safety of objects from C without merely doing what C++ does less effectively. Read about new programming techniques. Look up AOP. Whether you like it or not (I don''t, really. It reeks of the complexity that java tends to add to problems), it will get you thinking about different issues. Learn a more functional language (Scheme or ML or Haskell). Try and be productive in it despite the phase shift. I don''t claim to be an expert at anything and I don''t yet have fully formed ideas about design. I have written a moderately sized industrial automation application from scratch (~40kloc) and it''s currently deployed making parts (on lathes, turret lathes, and custom applications) in around a dozen facilities. Most of my design experience (and more heroic refactorings) came about there. I''m a student and I still have much to learn about all this, but this is what has helped me to get where I am so far. What I still don''t get is TDD. I''ve tried, but I can''t bring myself to write enough tests. I''ve read about it enough times, but I just never make it there, and once the application crosses a thousand lines of code, it''s even harder to convince myself to go back and write tests for a day or two. I am also badly disciplined when it comes to version control. I don''t know enough about it to use it effectively in my workflow. I commit my application at the end of the day, but I don''t understand branching/tagging/etc well enough to use it as much more than a fancy incremental backup system. Perhaps I''ll open my wallet to the pragmatic bookshelf this summer and read up on these topics. Sorry for the long post, and good luck. Brian On 5/3/05, Joe Van Dyk <joevandyk-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On 5/3/05, Raymond Brigleb <ray-THGPwszTed5CpjqP0VxSwUEOCMrvLtNR@public.gmane.org> wrote: > > Hello, > > > > I was thinking, I''m having such a harrowing experience designing an > > application in Rails and it''s probably mostly because I''ve bit off > > rather more than I can chew. I''ve mostly used PHP in the past, but > > what I''m attempting now is quite a bit beyond that. I''ve heard of > > similar threads to this but here''s the gist of my question: > > > > Can I get some good book recommendations from fellow programmers/ > > application designers on this list? > > > > I''ve read lots of the Wiki snippets, done the basic Rails tutorials, > > and I own the Pickaxe book and a basic MySQL tutorial-style book. But > > what else would help? There won''t be Rails material on the shelves > > for at least two months and my deadline is looming. What has helped > > you? I need something higher level, but I''m not sure where on the > > shelves to look for a title that helps with the bigger questions like > > how *exactly* should a database look for a full application with > > ACL''s and stuff like that? > > > > Should I be looking under Design Patterns? OOP in Practice? Project > > management? Database design? Are there books on medium-scale > > application architecture that would be helpful for someone in my > > position? Specific recommendations are very welcome -- I''m eager to > > learn, and have very good eyesight! > > > > Best, > > Raymond > > A good handle on relational database concepts is absolutely essential. > Get that down first. No recommendations, sorry. > > Once you have a good understanding of databases, then just ask > questions on IRC or something. :-) > > The Pragmatic Programmer books are all excellent, btw. > _______________________________________________ > Rails mailing list > Rails-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails >-- The years ahead pick up their dark bags. They move closer. There''s a slight rise in the silence then nothing. -- (If you''re receiving this in response to mail sent to bluczkie-OM76b2Iv3yLQjUSlxSEPGw@public.gmane.org, don''t be concerned This is my new address, but mail will be forwarded here indefinitely)
Raymond, Find a good mentor. Especially with a deadline looming, you probably don''t have time to stumble around in the dark looking for all the answers yourself. I recommend Tobias Luetke (http://leetsoft.com/), who can help you do it the rails way and save you money/time in the long run. Working with a mentor will also give them a chance to see your level and recommend next steps for your education. Robert On May 3, 2005, at 1:23 PM, Raymond Brigleb wrote:>
On Tue, 2005-05-03 at 16:23, Raymond Brigleb wrote:> Hello, > > I was thinking, I''m having such a harrowing experience designing an > application in Rails and it''s probably mostly because I''ve bit off > rather more than I can chew. I''ve mostly used PHP in the past, but > what I''m attempting now is quite a bit beyond that. I''ve heard of > similar threads to this but here''s the gist of my question: > > Can I get some good book recommendations from fellow programmers/ > application designers on this list? > > I''ve read lots of the Wiki snippets, done the basic Rails tutorials, > and I own the Pickaxe book and a basic MySQL tutorial-style book. But > what else would help? There won''t be Rails material on the shelves > for at least two months and my deadline is looming. What has helped > you? I need something higher level, but I''m not sure where on the > shelves to look for a title that helps with the bigger questions like > how *exactly* should a database look for a full application with > ACL''s and stuff like that? > > Should I be looking under Design Patterns? OOP in Practice? Project > management? Database design? Are there books on medium-scale > application architecture that would be helpful for someone in my > position? Specific recommendations are very welcome -- I''m eager to > learn, and have very good eyesight!How much do you know of each? Since you worked in PHP, I suspect that you have worked on designing a database to some capacity. The best suggestion is just to learn by doing. Docs are not going to give you experience, only a nudge to get you started in understanding. It helps a lot if you did work on web applications before, in this instance though. I started in Ruby two weeks ago, reading the pickaxe book. (Ruby is really easy - but I have Python experience ...) Last week, I started on Rails saying to myself, "Stop reading about it and start writing!" This week, I am on course on finishing this application I am doing (with the time I have to work on it). I think once you get over the bump in the road that says "This is too hard to start on", the rest of the bumps will just be minor nuisances. :-) Put it another way: Rails ain''t hard to use, and can be used with limited experiences in the things you listed. Probably the only thing you need to get is MVC. Brian
I can''t recommend highly enough the Prag. Programmer books on version control and unit testing (the original is a must have.) The automation book has lots of goodness too; however, it sounds like you''ll get more mileage out of the others first. Code Complete by Steve McConnell is also a good book on development and coding best practices. I''m by no means a DBA so I can''t recommend any stellar books here. You might do well finding an active MySQL list to bounce ideas off some DBA''s on the list. I have a data modeling book that I refer to from time to time, but I have to admit I doze off quickly when reading it. For SQL, Addison Wesley''s "Practical SQL Handbook" is an old-school favorite. Finally, "Domain Driven Design" by Eric Evans is a *great* read for digging into modeling a rich and expressive domain layer. A clean domain model applies to all languages. Martin Fowler has a ton of great articles over on his "bliki" that you can check out for free (in case the idea of buying 5 books at once seems a little painful): http://www.martinfowler.com/articles.html <bugtraq-o7tR/nIX9Vi1EmJ4MpGYnQC/G2K4zDHf@public.gmane.org> Also, Fowler has some "rich client patterns" articles that discuss MVC/MVP and other areas here: http://www.martinfowler.com/eaaDev Finally, Microsoft has put together a nice patterns community site here: http://www.patternshare.org/ Fowler, Evans, and many others have contributions to this site. Good luck! -Kris On 5/3/05, Brian Olsen <brian-PsW/4IK4rJfby3iVrkZq2A@public.gmane.org> wrote:> > On Tue, 2005-05-03 at 16:23, Raymond Brigleb wrote: > > Hello, > > > > I was thinking, I''m having such a harrowing experience designing an > > application in Rails and it''s probably mostly because I''ve bit off > > rather more than I can chew. I''ve mostly used PHP in the past, but > > what I''m attempting now is quite a bit beyond that. I''ve heard of > > similar threads to this but here''s the gist of my question: > > > > Can I get some good book recommendations from fellow programmers/ > > application designers on this list? > > > > I''ve read lots of the Wiki snippets, done the basic Rails tutorials, > > and I own the Pickaxe book and a basic MySQL tutorial-style book. But > > what else would help? There won''t be Rails material on the shelves > > for at least two months and my deadline is looming. What has helped > > you? I need something higher level, but I''m not sure where on the > > shelves to look for a title that helps with the bigger questions like > > how *exactly* should a database look for a full application with > > ACL''s and stuff like that? > > > > Should I be looking under Design Patterns? OOP in Practice? Project > > management? Database design? Are there books on medium-scale > > application architecture that would be helpful for someone in my > > position? Specific recommendations are very welcome -- I''m eager to > > learn, and have very good eyesight! > > How much do you know of each? Since you worked in PHP, I suspect that > you have worked on designing a database to some capacity. > > The best suggestion is just to learn by doing. Docs are not going to > give you experience, only a nudge to get you started in understanding. > It helps a lot if you did work on web applications before, in this > instance though. > > I started in Ruby two weeks ago, reading the pickaxe book. (Ruby is > really easy - but I have Python experience ...) Last week, I started on > Rails saying to myself, "Stop reading about it and start writing!" This > week, I am on course on finishing this application I am doing (with the > time I have to work on it). > > I think once you get over the bump in the road that says "This is too > hard to start on", the rest of the bumps will just be minor nuisances. > :-) Put it another way: Rails ain''t hard to use, and can be used with > limited experiences in the things you listed. Probably the only thing > you need to get is MVC. > > Brian > > > _______________________________________________ > Rails mailing list > Rails-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails >_______________________________________________ Rails mailing list Rails-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org http://lists.rubyonrails.org/mailman/listinfo/rails