Konyv nyarra - OO design?

Fórumok

Most, hogy mar "annyi mindent" megtanultam az OO programmozasrol, szivesen megtanulnam hasznalni is. Mert az egy dolog, hogy tudom, mi az inheritance, association, getters/setters (kedvenc setterem), stb, de nem igazan erzem azt, hogy tudnam, hogyan is irjak programmot. Mi hova keruljon, mi az, aminek mar kulon class kene, mit hanyjak egy helyre, egy classba mi menjen, egy adott dolog objektumon belul menjen le, vagy egy tobb objektumot bevono folyamatkent... tudnam meg sorolni, de azt hiszem ennyibol mar vilagos lesz, mire is lennek kivancsi.

http://en.wikipedia.org/wiki/Software_design_pattern

Erdekesnek tunik, bar egyelore meg nem neztem at alaposan az infot, szoval nem tudom, ezt keresem-e valojaban. Javasolnatok? Mas konyvvel esetleg jo tapasztalatok? Esetleg valami Java centrikusabb javaslat? (C-vel es Java-val mar igen, C++szal meg nem talalkoztam, az szeptembertol van teriteken)

Van egy eros preferenciam, a konyvnek angolul beszerezhetonek kene lennie.

Hozzászólások

Ajanlom a clean code (tiszta kod) cimu konyvet ezzel kapcsolatban.
Ugyan Java nyelvel mutat peldakat, de hidd el, hasznos lesz:)

A similar change took
place in painting during the fifteenth century. Before oil paint
became popular, painters used a medium, called tempera, that cannot
be blended or overpainted. The cost of mistakes was high, and this
tended to make painters conservative. Then came oil paint, and with
it a great change in style. Oil "allows for second thoughts." [3]
This proved a decisive advantage in dealing with difficult subjects
like the human figure.

The new medium did not just make painters' lives easier. It made
possible a new and more ambitious kind of painting. Janson writes:

Without oil, the Flemish Masters' conquest of visible reality
would have been much more limited. Thus, from a technical point
of view, too, they deserve to be called the "fathers of modern
painting," for oil has been the painter's basic medium ever
since. [4]

As a material, tempera is no less beautiful than oil. But the
flexibility of oil paint gives greater scope to the imagination--
that was the deciding factor.

Programming is now undergoing a similar change. The new medium is
the "object-oriented dynamic language"-- in a word, Lisp. This is
not to say that all our software is going to be written in Lisp
within a few years. The transition from tempera to oil did not
happen overnight; at first, oil was only popular in the leading
art centers, and was often used in combination with tempera. We
seem to be in this phase now. Lisp is used in universities, research
labs, and a few leading-edge companies. Meanwhile, ideas borrowed
from Lisp increasingly turn up in the mainstream: interactive
programming environments, garbage collection, and run-time typing,
to name a few.

More powerful tools are taking the risk out of exploration. That's
good news for programmers, because it means that we will be able
to undertake more ambitious projects. The use of oil paint certainly
had this effect. The period immediately following its adoption
was a golden age for painting. There are signs already that
something similar is happening in programming.

[3] Murray, Peter and Linda. The Art of the Renaissance. Thames
and Hudson, London, 1963, p. 85.

[4] Janson, W. J. History of Art, 3rd Edition. Abrams, New York,
1986, p. 374.

Erősen javaslom a lenti könyvek átolvasását (lehetőleg többször is).

Robert C. Martin - Clean Code
http://www.amazon.com/gp/product/0132350882/

Robert C. Martin - The Clean Coder
http://www.amazon.com/gp/product/0137081073/

GoF - Design Patterns
http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented…

Martin Fowler - Refactoring
http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/020…

Martin Fowler - Patterns of Enterprise Application Architecture
http://www.amazon.com/gp/product/0321127420/

Jaroslav Tulach - Practical API Design: Confessions of a Java Framework Architect
http://www.amazon.com/Practical-API-Design-Confessions-Framework/dp/143…

- Not even the slightest bit -

Ugy tunik, egyelore a Clean code a legmegfelelobb, egyreszt erdekes, masreszt Java, ill. valoszinuleg elolvasom a Clean coder-t is, bar kicsit mas tema, de erdekesnek tunik. Esetleg a Refactoring is belefer, de az Effective Java egyelore nem, talan a kovetkezo Java-s modulom utan/kozben.

A design patterns-t nagyon szeretnem elolvasni, de mivel C++ masodikban, Design patterns tantargyam pedig harmadikban lesz, nem hinnem, hogy lenne ertelme hozzanyulni egyelore. Mivel amugy is kovetelmeny, majd foglalkozom vele amikor kerik (es jobban fel leszek ra keszulve), igy tobb idom jut az elobb emlitettekre ahelyett, hogy ketszer csinaljam ugyanazt.

Ugy latom eloszor ezeken kene atragnom magam, mielott fontolora vennem a tobbi javaslatot.

Bruce Eckel: Thinking in Java

Remek OO bevezhetés és nem mellesleg java oktatókönyv. Én szerettem.

Ne zavarjon, hogy a Design patterns konyv javarészt c++, én sz ott megszerzett tudást eddig javarészt c# es php alatt hasznaltam. Alapvetoen az összes pattern nyelvfuggetlen, igaz itt-ott egy-két dolog beépült egy-két nyelvbe.

---------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™