From: Christopher Dicely Date: 2008-02-14T10:49:29+09:00 Subject: Re: lost in "=", forest searching for methods of abstraction (bad habits die hard) On Feb 13, 2008 11:34 AM, Robert Klemme wrote: > On 11.02.2008 13:49, Robert Klemme wrote: > > 2008/2/10, Vladimir Konrad : > >> Since then I have being using ruby (sporadically and not for big > >> projects), but with a bad style (I recognised this, when trying to > >> write something bigger). > >> > >> When I see projects like rspec, sequel and ramaze, I am amazed what is > >> possible with ruby. > >> > >> The question is, what concepts are necessary to grasp to be able to > >> create something like that (in ruby), and, is there a good read > >> (preferably on-line) about them? > > > > There are some fundamental principles in software engineering that > > apply regardless of programming language chosen: basically you have to > > carefully think about how you distribute functionality across > > different programming artifacts (methods, functions, classes and the > > like). In other words, complex systems are built by divide and conquer > > and abstraction. There are different methodologies (top down, bottom > > up, various OO approaches) but they all try to come up with a > > distribution of functionality that avoids redundancies (ideally no two > > methods / classes that do the same) and keeps things modular (so you > > can easier reuse). > > > > Off the top of my head I could not recommend a book or other resource > > that will teach this. > > I found one which seems to cover what I meant: > > http://www.amazon.com/Structure-Interpretation-Computer-Programs-Engineering/dp/0262510871/ > The full text of SICP is available for free on the Web. Not as convenient in some ways as dead trees, but for anyone interested reading the thread, its easier to poke around and see if it meets your needs: http://mitpress.mit.edu/sicp/full-text/book/book.html