Buchempfehlung/ Tips zu [Design, Engineering] ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
doppelkeks
User
Beiträge: 12
Registriert: Sonntag 14. Februar 2010, 22:28

Ich kann zwar programmieren, größere Projekte als kleine Tools enden bei mir aber immer als Rohrkrepierer. Ich denke, ich sollte mich mehr im objektorientierten Design und allgemein Software-Engineering weiterbilden.

Welche Bücher könnt Ihr empfehlen? Und welche Prioritäten zahlen sich am besten aus? Viele Bücher, die "Software-Engineering" im Titel haben, befassen sich in der Hauptsache mit der menschlichen Ebene: Projektmanagement, Risikoanalyse, Stakeholderbesänftigung, ... . Eigentlich interessiere ich mich aber eher für den Entwurf auf Codeebene; Ich denke, das bringt mir als Solo-Hobby-Programmierer am meisten - oder ist jemand anderer Meinung?
(Ich hab im Betreff ganz bewusst kein Tupel sondern eine Liste verwendet)

Was haltet Ihr von der Von-Kopf-bis-Fuß Reihe von O'Reilly? Ich habe speziell die beiden Ausgaben über Design Patterns und OOA/ OOD im Auge - kennt das jemand? Es scheint einiges an Schnittmengen zwischen beiden zu geben; Lohnt es sich, beide zu kaufen (immerhin 50 Ocken pro Buch)?
BlackJack

Was wirklich gutes kenne ich auch nicht. Insbesondere ist mir kein übergreifendes Buch bekannt was OOP nicht als Lösung für alles hinstellt, sondern auch Funktional gleichberechtigt daneben stellt. Das heisst für Python muss man sich den Mittelweg dann doch wieder selbst erarbeiten.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Das ist am Anfang durchaus normal mit mehr Erfahrung wird dass schon.
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Also mir haben die "clean code talks" auf http://www.youtube.com/user/GoogleTechTalks sehr weitergeholfen. Da geht es vordergründig zwar um Java, tatsächlich jedoch um Design-Prinzipien, die sich in allen Sprachen gut machen.

Was den Entwurf an sich betrifft: Ohne Skizzen dürftest du bei größeren Projekten schnell den Überblick verlieren. Die Industrie setzt da hauptsächlich auf UML, was ich persönlich aber für ungeeignet halte. Insbesondere für Hobby-Programmierer. Ich selbst setze auf die von Dov Dori entwickelte "Object Process Methodology". Das Problem ist nur, daß es dafür auf dem Markt mehr oder weniger nur ein Programm gibt (Opcat), das mit rund 3400 EUR zu Buche schlägt. Wenn du aber auf die Software-Unterstützung verzichten kannst, solltest du dir die dort verwendete Notation mal anschauen.

Außerdem möchte ich noch ein paar Daumenregeln in den Raum werfen:

- Trenne Darstellung und Funktion (siehe auch MVC- bzw. MVP-Pattern)
- Trenne Funktionalitäten: Eine Funktion sollte nicht mehr als eine Aufgabe erfüllen
- Verwende innerhalb einer Funktion nur das, was als Parameter übergeben wurde (Ausnahme: Konstanten)
- Verändere keine Objekte außerhalb der Funktion, sondern verwende Rückgabewerte.
- Arbeite nach den Prinzipien des Test Driven Development, insbesondere schreibe Unittests. Das ist erst einmal unglaublich ätzend, aber spätestens dann, wenn du das Programm umschreiben und / oder erweitern willst, wirst du dankbar dafür sein, daß du es gemacht hast. Oder hattest du noch nie die Situation, daß du etwas eingebaut und dabei etwas andere kaputtgemacht hast, ohne es sofort zu bemerken?
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Pekh hat geschrieben:Also mir haben die "clean code talks" auf http://www.youtube.com/user/GoogleTechTalks sehr weitergeholfen. Da geht es vordergründig zwar um Java, tatsächlich jedoch um Design-Prinzipien, die sich in allen Sprachen gut machen.
Die Java heissen, sicherlich. Java ist eine extrem eingeschränkte Sprache, dass ist ein Problem was Java Programmierer mit Patterns totschlagen, dass ist weder besonders sinnvoll noch lohnt es sich dass uneingeschränkt zu übernehmen. Da muss man sich schon kritisch ansehen was da gemacht wird um welches Ziel zu erreichen und welche Alternativen es dazu gibt.
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

DasIch hat geschrieben:
Pekh hat geschrieben:Also mir haben die "clean code talks" auf http://www.youtube.com/user/GoogleTechTalks sehr weitergeholfen. Da geht es vordergründig zwar um Java, tatsächlich jedoch um Design-Prinzipien, die sich in allen Sprachen gut machen.
Die Java heissen, sicherlich. Java ist eine extrem eingeschränkte Sprache, dass ist ein Problem was Java Programmierer mit Patterns totschlagen, dass ist weder besonders sinnvoll noch lohnt es sich dass uneingeschränkt zu übernehmen. Da muss man sich schon kritisch ansehen was da gemacht wird um welches Ziel zu erreichen und welche Alternativen es dazu gibt.
Daraus schließe ich, daß du sie nicht gesehen hast?
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

doppelkeks hat geschrieben:Was haltet Ihr von der Von-Kopf-bis-Fuß Reihe von O'Reilly? Ich habe speziell die beiden Ausgaben über Design Patterns und OOA/ OOD im Auge - kennt das jemand? Es scheint einiges an Schnittmengen zwischen beiden zu geben; Lohnt es sich, beide zu kaufen (immerhin 50 Ocken pro Buch)?
Ich habe das Design Patterns-Buch. Es erklaert die Patterns (und warum man sie braucht) wirklich gut und ist dabei auch ganz amuesant. Fuer meinen Geschmack wird etwas zu viel wiederholt und nochmals durchgekaut, aber durch die gute Struktur des Buches kann man sowas gut ueberspringen.

Den Nachteil an dem Buch sehe ich, dass es auf Java gemuenzt ist, und es somit viele Patterns gibt, die man in Python nicht braucht oder dort anders machen wuerde. (Andererseits versteht man so besser, warum Java so ist wie es ist. :wink:).

Python Expert Programming hat auch ein Kapitel ueber Patterns, aber das Buch kenne ich nicht.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
lunar

@DasIch: Das wissen hier die meisten, und sicherlich auch Dein Vorredner. Dennoch kann man auch anhand von Java Techniken und Methoden zur Entwicklung zeigen, die in mehr oder weniger allen Sprachen Gültigkeit haben. Die Grundlagen von TDD beispielsweise sind immer die selbe, egal ob Java und JUnit oder Python und py.test, nose oder whatever.

@Pekh: Gibt es auch eine Liste aller zu dieser Serie gehörigen Vorträge, oder muss man sich die unter der Menge der Videos wirklich selbst heraussuchen? Ach ja, welche dieser Videos sind denn besonders interessant? Da Video schauen eine zeitraubende Angelegenheit ist, würde ich gerne erstmal nur eines anschauen, und dabei vielleicht nicht gerade sofort das Uninteressanteste erwischen ...
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

@lunar: Du hast natürlich recht, einfach nach "clean code" suchen reicht noch nicht. Mein Fehler (bzw. meine Faulheit). Hier die "schönsten":

http://www.youtube.com/watch?v=-FRm3VPhseI
http://www.youtube.com/watch?v=wEhu57pih5w
http://www.youtube.com/watch?v=RlfLCWKxHJ0

Wenn man ein wenig stöbert findet man aber auch noch die eine oder andere Perle, nicht nur zum Thema Programmieren. Zugegebenermaßen: Es ist auch einiges dabei, was Fluchtgedanken auslöst. :D
Logaff
User
Beiträge: 3
Registriert: Donnerstag 9. September 2010, 18:59

also Orelay hab ich 'PHP-Von Kopf bis Fuß' es ist echt sehr einsteigerfreundlich geschrieben^^ und sehr genau mit vielen bildern kann man sich gut merken und schnell nachschlagen geht auch dadrinn^^ ich finde es war alle male das geld wert. ich denke die anderen Orelay Bücher werden nicht anders sein aus der Von Kopf bis Fuß - Reihe^^
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@doppelkeks
Ich hab mal 1 gute Zusammenfassung der Basics von Python gefunden:
http://www.fz-juelich.de/jsc/files/docs ... ortrag.pdf

Sowas kann man wunderbar in Latex programmieren und mit 1 Beamer vortragen.
Wenn man dann noch Geld dafuer nimmt, umso besser.
Guude!
Fritz
8) 8)
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

3ff hat geschrieben:@doppelkeks
Ich hab mal 1 gute Zusammenfassung der Basics von Python gefunden:
http://www.fz-juelich.de/jsc/files/docs ... ortrag.pdf
Danke fuer das Kompliment. Ich glaube aber, doppelkeks geht's mehr um Software-Design, und da helfen meine Folien nicht.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
noisefloor
User
Beiträge: 3881
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

ein sehr schönes Buch ist "Coders at Work" - da kann man Lesen, wie "die ganz großen" Programmieren (z.B. Leute, die JavaScript entwickelt haben, am Firefox arbeiten, Erlang entworfen haben etc.). Schön zu lesen und interessant.

Bringt zugegebener Maßen den OP aber nicht so richtig weiter, weil es sehr allgemein ist. ;-)

Gruß, noisefloor
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@Rebecca,
aha daher weht der Wind.
Gut gemacht, mit Latex?
Heute laeuft es anders, als frueher mit Folien.
Wir machen das auch und integrieren DXF_dateien dazu.
Kompliment
Fritz
:lol: :lol:
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

3ff hat geschrieben:mit Latex?
Klar. :)
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
frabron
User
Beiträge: 306
Registriert: Dienstag 31. März 2009, 14:36

Rebecca hat geschrieben:Python Expert Programming hat auch ein Kapitel ueber Patterns, aber das Buch kenne ich nicht.
Du meinst das von Tarek Ziadé, oder? Hat mir in meinen Anfängertagen nicht so sehr geholfen, da viele Konzepte m.M. nach recht abstrakt sind und eine gewisse Erfahrung vorraussetzen, damit man mit dem Gelesenen etwas anfangen kann. Dafür kann man alle halbe Jahre mal wieder rein sehen und etwas neues lernen wenn sich der Horizont mal wieder erweitert hat :)
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@Rebecca,
Gestern war ich auf ner Tagung ueber Thermodynamik und Warmerueckgewinnung.
Der Referent hat jenes Produkt von der Softwareschmiede aus Redmont gebraucht.
Uggly.
Der Beamer war unter die Decke geschraubt, verkehrt herum. Das Bild wurde dann softwaremaessig gedreht. Ob man damit allerdings Autocad-dateien importieren kann, weiss ich nicht oder Vektorgrafik.
Als Jungingenieur hab ich Latex irgendwie gemieden, jetzt als Pensionaer, bin ich begeistert davon.
Man bekommt immer Lust auf mehr.
Bei Python gehts mir genauso.
Viel Erfolg bei Deinen Vortraegen.
Guude!
Fritz :P
doppelkeks
User
Beiträge: 12
Registriert: Sonntag 14. Februar 2010, 22:28

Danke und bitte entschuldigt die späte Antwort, ich war verhindert.
Das die meisten Design-Bücher eher für statisch typisierte Sprachen geschrieben wurden, stört mich nicht so sehr; Ich spreche auch Java und oberflächlich QtC++. Und auch wenn einige Design Prinzipien und Muster bei dynamischen Sprachen überflüssig erscheinen, lässt sich hoffentlich ein allgemein gültiger Kern herausfaktorisieren.
Ich hab mir jetzt einfach mal das Design Patterns von Kopf bis Fuß Buch geleistet.

Die Clean Code Vorträge sehen übrigens interessant aus, werd ich mir anschauen. Ich hab auch noch eine nette Vorlesung zum Thema Python Design Patterns gefunden, falls es jemanden interessiert: Klick
Antworten