Monger
2016-02-16, 08:45:17
Eigentlich bin ich auf der Suche nach einem guten Buch über Softwarearchitektur, aber vielleicht ist ein Bücherthread ja allgemein nicht schlecht?
Um sich mal von den Dokumentationen und Referenzhandbüchern abzugrenzen: welche Bücher waren für euch eine Offenbarung, und warum? Natürlich ist das sehr individuell: was für den einen toll ist, ist für den anderen schnarchlangweilig.
Ich hab bis Ende des Studiums eher miese Erfahrung mit Softwareliteratur gemacht: entweder waren die Bücher schwafelig-unverständlich, zum gähnen langweilig, oder scheiterten aber am Praxiseinsatz. Dann kamen ein paar Bücher, die ich so spannend fand, dass es mir schwer fiel sie aus der Hand zu legen.
Joshua Bloch: Effective Java (http://www.amazon.de/Effective-Java-2nd-Programming-Language/dp/0321356683/ref=sr_1_1?ie=UTF8&qid=1455606156&sr=8-1&keywords=joshua+bloch+effective+java) (ISBN: 978-0321356680)
Worum geht es?
Um Programmiertechniken (vorwiegend, aber nicht ausschließlich für Java) die knapp oberhalb des elementaren Sprachverständnisses angesiedelt sind: von "wie überschreibe ich korrekterweise ToString?" bis hin zu komplexeren Design Mustern.
Warum ist das so toll?
Mich hat die Klarheit und Einfachheit seiner Sprache fasziniert. Kaum Fachausdrücke, kurze, prägnante Sätze. Selbst komplexe Sachverhalte sind oft runter auf eine halbe Seite destilliert. Für mich war dieses Buch der Beweis, dass programmieren nicht kompliziert sein muss, wenn man es nur richtig erklärt.
Roy Ocherove: the Art of Unit Testing (http://www.amazon.de/Art-Unit-Testing-Roy-Osherove/dp/1617290890/ref=sr_1_2?ie=UTF8&qid=1455606815&sr=8-2&keywords=the+art+of+unit+testing) (ISBN: 978-1617290893)
Worum geht es?
Was sind Unit Tests? Warum sind sie so wichtig? Wie schreibe ich sie richtig, und wie führe ich sie in meiner Organisation ein?
Warum ist das so toll?
Ich hab das Buch einmal kurz nach meinem Studium gelesen, und noch einmal vor einem Jahr. Jedes mal mit vollständig anderen Augen: das erste mal war es ein gutes Basiswerk, ein Einstieg in das umfangreiche Thema. Ich fand es damals ganz gut, aber ein wenig oberflächlich. Das zweite mal war eine völlig andere Erfahrung: plötzlich habe ich die vielen kleinen Referenzen und Hinweise auf andere Autoren und Ideen wahrgenommen, die mir durch die Arbeit der letzten Jahre präsenter waren. Ich konnte das plötzlich ganz anders verknüpfen was er da geschrieben hat. Das Kapitel darüber wie man eine neue Technik wie diese in eine Organisation einführt, schien mir beim ersten mal noch arg theoretisch. Beim zweiten mal wurde mir klar, wie präzise er da die Schwierigkeiten großer Organisationen anspricht.
Heute steht das Buch auf Arbeit im Bücherregal, und ist quasi Pflichtlektüre für jeden der irgendwas mit Softwarequalität zu tun hat.
Mark Seemann: Dependency Injection in .NET (http://www.amazon.de/Dependency-Injection-NET-Mark-Seemann/dp/1935182501/ref=pd_sim_14_1?ie=UTF8&dpID=41LsqcfxGbL&dpSrc=sims&preST=_AC_UL160_SR128%2C160_&refRID=0M18AZ6WF2PQASF04NVX) (ISBN: 978-1935182504)
Worum geht es?
Um ein bestimmtes Softwarearchitekturmuster, bzw. wie man dieses gestützt durch bestimmte Frameworks implementieren kann.
Warum ist das so toll?
Eigentlich ein mieses Buch: elends dick, furztrocken, viele Wiederholungen... der Autor schreibt selbst, die meisten Leser verstehen erst ab der Hälfte, worum es ihm konkret geht. Ich habe mich vor ca. 2 Jahren durch dieses Buch gequält... aber kaum ein Buch wirkte je bei mir so lange nach. Es beantwortet so viele Fragen die mir beim Entwickeln großer Software im Team unklar war: wie macht man Refactoring im großen Stil richtig? Wie gehe ich mit "Cross-Cutting Concerns" wie Logging und Rechteverwaltung um? Wie setze ich eine Software zusammen, wie mache ich sie konfigurierbar?
Und es hat radikal meinen Programmierstil verändert, hin zu etwas was in meinen Augen erstmal sehr kontraintuitiv ist, aber im Ergebnis deutlich strukturierter und verständlicher ist.
Um sich mal von den Dokumentationen und Referenzhandbüchern abzugrenzen: welche Bücher waren für euch eine Offenbarung, und warum? Natürlich ist das sehr individuell: was für den einen toll ist, ist für den anderen schnarchlangweilig.
Ich hab bis Ende des Studiums eher miese Erfahrung mit Softwareliteratur gemacht: entweder waren die Bücher schwafelig-unverständlich, zum gähnen langweilig, oder scheiterten aber am Praxiseinsatz. Dann kamen ein paar Bücher, die ich so spannend fand, dass es mir schwer fiel sie aus der Hand zu legen.
Joshua Bloch: Effective Java (http://www.amazon.de/Effective-Java-2nd-Programming-Language/dp/0321356683/ref=sr_1_1?ie=UTF8&qid=1455606156&sr=8-1&keywords=joshua+bloch+effective+java) (ISBN: 978-0321356680)
Worum geht es?
Um Programmiertechniken (vorwiegend, aber nicht ausschließlich für Java) die knapp oberhalb des elementaren Sprachverständnisses angesiedelt sind: von "wie überschreibe ich korrekterweise ToString?" bis hin zu komplexeren Design Mustern.
Warum ist das so toll?
Mich hat die Klarheit und Einfachheit seiner Sprache fasziniert. Kaum Fachausdrücke, kurze, prägnante Sätze. Selbst komplexe Sachverhalte sind oft runter auf eine halbe Seite destilliert. Für mich war dieses Buch der Beweis, dass programmieren nicht kompliziert sein muss, wenn man es nur richtig erklärt.
Roy Ocherove: the Art of Unit Testing (http://www.amazon.de/Art-Unit-Testing-Roy-Osherove/dp/1617290890/ref=sr_1_2?ie=UTF8&qid=1455606815&sr=8-2&keywords=the+art+of+unit+testing) (ISBN: 978-1617290893)
Worum geht es?
Was sind Unit Tests? Warum sind sie so wichtig? Wie schreibe ich sie richtig, und wie führe ich sie in meiner Organisation ein?
Warum ist das so toll?
Ich hab das Buch einmal kurz nach meinem Studium gelesen, und noch einmal vor einem Jahr. Jedes mal mit vollständig anderen Augen: das erste mal war es ein gutes Basiswerk, ein Einstieg in das umfangreiche Thema. Ich fand es damals ganz gut, aber ein wenig oberflächlich. Das zweite mal war eine völlig andere Erfahrung: plötzlich habe ich die vielen kleinen Referenzen und Hinweise auf andere Autoren und Ideen wahrgenommen, die mir durch die Arbeit der letzten Jahre präsenter waren. Ich konnte das plötzlich ganz anders verknüpfen was er da geschrieben hat. Das Kapitel darüber wie man eine neue Technik wie diese in eine Organisation einführt, schien mir beim ersten mal noch arg theoretisch. Beim zweiten mal wurde mir klar, wie präzise er da die Schwierigkeiten großer Organisationen anspricht.
Heute steht das Buch auf Arbeit im Bücherregal, und ist quasi Pflichtlektüre für jeden der irgendwas mit Softwarequalität zu tun hat.
Mark Seemann: Dependency Injection in .NET (http://www.amazon.de/Dependency-Injection-NET-Mark-Seemann/dp/1935182501/ref=pd_sim_14_1?ie=UTF8&dpID=41LsqcfxGbL&dpSrc=sims&preST=_AC_UL160_SR128%2C160_&refRID=0M18AZ6WF2PQASF04NVX) (ISBN: 978-1935182504)
Worum geht es?
Um ein bestimmtes Softwarearchitekturmuster, bzw. wie man dieses gestützt durch bestimmte Frameworks implementieren kann.
Warum ist das so toll?
Eigentlich ein mieses Buch: elends dick, furztrocken, viele Wiederholungen... der Autor schreibt selbst, die meisten Leser verstehen erst ab der Hälfte, worum es ihm konkret geht. Ich habe mich vor ca. 2 Jahren durch dieses Buch gequält... aber kaum ein Buch wirkte je bei mir so lange nach. Es beantwortet so viele Fragen die mir beim Entwickeln großer Software im Team unklar war: wie macht man Refactoring im großen Stil richtig? Wie gehe ich mit "Cross-Cutting Concerns" wie Logging und Rechteverwaltung um? Wie setze ich eine Software zusammen, wie mache ich sie konfigurierbar?
Und es hat radikal meinen Programmierstil verändert, hin zu etwas was in meinen Augen erstmal sehr kontraintuitiv ist, aber im Ergebnis deutlich strukturierter und verständlicher ist.