Lesetipps von den JAXenter-Experten

Nach dieser Lektüre schreibst du schönen Code

Redaktion JAXenter

© Shutterstock.com / patpitchaya

Zum Abschluss unserer Themenreihe „Schöner Code“ haben wir unsere Experten gefragt, welche Lektüre sie Entwicklern ans Herz legen, um schöneren Code zu schreiben. Das Ergebnis ist eine Liste von Buchklassikern, Artikel -und Blogempfehlungen. Und so mancher Experte empfahl einfach direkt die Lektüre der eigenen Ergüsse.

Buchtipps

Martin_MECH.qxdClean Code – Robert C. Martin

Abstract: Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code—of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.

Als Standardwerk in diesem Bereich kann ich vor allem „Clean Code“ von Robert Martin empfehlen. Das Buch beschreibt alle Grundprinzipien des Clean Code und bietet eine umfangreiche Einführung in die Thematik. – Stefan Kaltepoth

„Clean Code“ von Uncle Bob ist sicherlich eines der Standardwerke, um schönen und vor allem les- und wartbaren Code zu schreiben. Man muss ja nicht mit allen Vorgaben bis ins letzte Detail einverstanden sein, aber wenn man einen Großteil beherzigt, dann kommt da schon was Gutes dabei raus. – Niko Köbler

Das Buch „Clean Code“ von Robert C. Martin steckt voll von konkreten Tipps zum Schreiben von schönerem Code und richtet den Blick auf einzelne Codezeilen und kleinere Codeblöcke. – Thorsten Maier

Der Klassiker „Clean Code“ von Robert C. Martin ist immer noch die Referenz. – Michael Thiele

Eine Pflichtlektüre zum diesem Thema ist sicherlich „Clean Code: A Handbook of Agile Software Craftsmanship” von Robert C. Martin. Hier stehen die absoluten Basics drin. Auch wenn man nicht mit allen Punkten konform geht, so bringt es einen doch zum Nachdenken über den eigenen Coding-Style. Hervorheben möchte ich, dass es ein dediziertes Kapitel zu schönen und sauberen Tests gibt. Test-Code wird leider allzu häufig sträflich vernachlässigt. – Mario-Leander Reimer

„Clean Code“ von Robert C. Martin ist gemeinhin als Standardwerk für guten, sauberen, lesbaren Code akzeptiert. – Karsten Sitterberg

Domain-Driven Design_Eric EvansDomain-driven Design – Eric Evans

Abstract: Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique.

„Domain-Driven Design“ von Eric Evans liefert eine Menge an praxisnahen Lösungsmustern für den Umgang mit Komplexität in der Softwareentwicklung. 2005 das erste Mal gelesen, habe ich seitdem immer wieder hineingeschaut. Ich behaupte, dass das darin enthaltene Wissen neben meiner Berufserfahrung maßgeblich dazu beigetragen hat, tragbare Softwarearchitektur-Entscheidungen zu treffen. – Milad Jason Daivandy

„Domain Driven Design“ von Eric Evans ist ein guter Einstieg in gutes Design aus interner Sicht. – Uwe Friedrichsen

0321503627_Freeman_Sketch.qxdGrowing Object-Oriented Software, Guided by Tests – Steve Freeman, Nat Pryce

Abstract: Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you’ll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects.

„Growing Object-Oriented Software, Guided by Tests“ von Steve Freeman und Nat Pryce stellt nachvollziehbar praxisorientiert die gegenseitige Beziehung von guter Testbarkeit und gutem Softwareentwurf dar. Was Domain-driven Design also für Softwareentwurf im Allgemeinen tut, leistet dieses Buch im Speziellen aus Sicht der Testbarkeit und TDD. – Milad Jason Daivandy

Das Buch beschäftigt sich primär mit der Testgetriebenen Softwareentwicklung, zeigt dabei aber auch sehr schön auf, wie sich Anforderungen in überschaubare Teile zerlegen lassen. Das ist natürlich für die Testbarkeit der Software besonders wichtig, hat aber auch positive Effekte auf die Klarheit und Lesbarkeit des Quellcodes. – Stefan Kaltepoth

cc2e-cover-smallCode Complete – Steven McConnell

Abstract: Widely considered one of the best practical guides to programming, Steve McConnell s original Code Complete has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices and hundreds of new code samples illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking and help you build the highest quality code.

„Code Complete“ von Steven McConnell ist zwar schon etwas älter, hat aber aus OO-Sicht nichts an Aussagekraft verloren. http://www.construx.com sollte im selben Atemzug erwähnt werden. – Milad Jason Daivandy

Release It_Michael NygardRelease It! – Michael Nygard

Abstract: Whether it’s in Java, .NET, or Ruby on Rails, getting your application ready to ship is only half the battle. Did you design your system to survivef a sudden rush of visitors from Digg or Slashdot? Or an influx of real world customers from 100 different countries? Are you ready for a world filled with flakey networks, tangled databases, and impatient users? If you’re a developer and don’t want to be on call for 3AM for the rest of your life, this book will help.

In „Release It!“ von Michael Nygard empfehlen wird dargestellt, über was man sich Gedanken machen muss, um Production-ready Software zu schreiben – also Software, die gut und zuverlässig in Produktion ihren Dienst erfüllt. – Uwe Friedrichsen

0201633612_Gamma_rep.qxd

Design Patterns – Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

Abstract: Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.

Ich empfehle Klassiker wie „Design Patterns“ von der Gang of Four. Um aber zu lernen wie man guten, lesbaren, schönen Code schreibt, würde ich immer empfehlen so viel wie möglich in existierende Open-Source-Projekte zu schauen. Dort die üblichen Code Conventions aneignen und entsprechend selber wieder verwenden. Ob jetzt jemand die geschweiften Klammern lieber in einer neuen Zeile oder am Ende der Zeile hat, da sehe ich nur bedingt Unterschied. – Christoph Engelbert

Beautiful Architecture – GousiosBeautiful Architecture Leading – Diomidis Spinellis, Georgios Gousios

Abstract: What are the ingredients of robust, elegant, flexible, and maintainable software architecture? Beautiful Architecture answers this question through a collection of intriguing essays from more than a dozen of today’s leading software designers and architects. In each essay, contributors present a notable software architecture, and analyze what makes it innovative and ideal for its purpose.

Weil ein schönes System mehr ist als eine schöne Methode zu schreiben. – Moritz Beller

Effectice Java_Joshua BlochEffective Java – Joshua Bloch

Abstract: Are you looking for a deeper understanding of the Java programming language so that you can write code that is clearer, more correct, more robust, and more reusable? Look no further! Effective Java, Second Edition, brings together seventy-eight indispensable programmer’s rules of thumb: working, best-practice solutions for the programming challenges you encounter every day.

Das Buch mag in Zeiten von Java 8 nicht mehr ganz zeitgemäß wirken. Doch der Schein trügt. Denn es geht in diesem Buch darum seine Sprache und deren Features genau zu kennen um das Optimum rausholen zu können. Nur so kann man Code klar und verständlich in möglichst wenigen Zeilen schreiben, eine wichtige Voraussetzung für schönen und eleganten Code. – Mario-Leander Reimer

The Pragmativ Programmer_Andy HuntPragmatic Programmer – Andrew Hunt, David Thomas

Abstract: Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process–taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse.

Ich habe über die Jahre gelernt, dass jedes Mal wenn ich neue Programmiersprachen lerne und Bücher lese, die über den Java Tellerrand gehen, meine Programmierstil cleaner geworden ist als er vorher war. – Dominik Obermaier

API Summit 2018
Christian Schwendtner

GraphQL – A query language for your API

mit Christian Schwendtner (PROGRAMMIERFABRIK)

Artikeltipps

The broken promise of re-use – Uwe Friedrichsen

Abstract: Der Text beschreibt, wie schlechte, eng gekoppelte Designs entstehen, indem man auf Krampf versucht, Bausteine wiederverwendbar zu machen. In dem Rahmen geht der Post auch auf die Relevanz nutzerorientierter Schnittstellen ein.

Bezüglich nutzerorientierter Schnittstellen – dem zweiten Aspekt schönen Codes – fällt mir leider keine richtig gute Empfehlung ein. Was ein wenig in die Kerbe schlägt, ist ein Blog-Post, den ich vor einiger Zeit zum Thema Wiederverwendung geschrieben habe. – Uwe Friedrichsen

Top 12 Tips to Develop Unmaintainable Code – Markus Sprunck

Abstract: This article describes how to write unmaintainable code and have an excellent paid job for the rest of your life. The key skill to unmaintainable code is the obfuscation of the code – besides poor design, no test cases and overly complex algorithms. If you really like to write well maintainable code, feel use this as input for things you shouldn’t do in your next project.

Unmaintainable Code : Java Glossary – Roedy Green

Abstract: In the interests of creating employment opportunities in the Java programming field, I am passing on these tips from the masters on how to write code that is so difficult to maintain, that the people who come after you will take years to make even the simplest changes. Further, if you follow all these rules religiously, you will even guarantee yourself a lifetime of employment, since no one but you has a hope in hell of maintaining the code. Then again, if you followed all these rules religiously, even you wouldn’t be able to maintain the code!

Ich mag umgekehrt Vorschläge, wie man nicht wartbaren Code schreibt – das ist eine Form von nicht schön. Da gibt es nette satirische Blog-Beiträge zu. Ich schmunzle zunächst drüber, aber es regt an mich selbstkritisch zu fragen, ob ich das besser mache. Klar benenne ich zum Beispiel keine lokalen Variablen nach willkürlichen Vornamen. Aber wie viel Mühe gebe ich mir tatsächlich dabei? – Stefan Zörner

John Romero: Von id Softwares Anfängen und World-of-Warcraft-Sucht – Martin Fischer

Abstract: John Romero ist eine Entwicklerlegende und einer der Köpfe hinter Wolfenstein, Doom und Quake. Auf der Game Developers Conference enthüllte er die Programmierregeln aus den frühen Zeiten von id Software.

Erstaunlich ist ja, dass sich die Prinzipien von Clean Code über die Jahre kaum ändern. So entdeckte ich vor einer Weile einen Artikel über John Romero, in dem er die Entwicklung von Spiele-Klassikern wie Commander Keen und Doom beschrieb. – Michael Thiele

The Policeman’s Horror: Default Locales, Default Charsets, and Default Timezones – Uwe Schindler

Abstract: Did you ever try to run software downloaded from the net on a computer with Turkish locale? I think most of you never did that. And if you ask Turkish IT specialists, they will tell you: “It is better to configure your computer using any other locale, but not tr_TR”. I think you have no clue what I am talking about?

Natürlich würde ich meinen eigenen Blogpost zum Forbidden-APIs Code Checker empfehlen! – Uwe Schindler

It’s The Future – Paul Biggar

Schöner Code alleine reicht nicht aus, wenn dieser in einer zu komplexen Anwendungsarchitektur mit zu vielen Tools und Frameworks eingebunden ist. Daher – mit einem Augenzwicker – der Verweis auf den Blogartikel „The Future“ von Paul Biggar, der die immer komplexer werdende Infrastruktur auf die Schippe nimmt. – Thorsten Maier

Blogtipps

martinfowler.com

Der Blog von Martin Fowler setzt die abstraktere Architekturbrille auf und behandelt nur wenig konkreten Code. Allerdings kann nur wer das große Ganze versteht auch im Kleinen guten Code schreiben. – Thorsten Maier

Weiterhin zu Empfehlen ist der Blog von Robert C. Martin, in welchem er hin und wieder neue Themen auf seine ganz eigene Art beleuchtet. – Karsten Sitterberg

carlopescio.com

Ich empfehle natürlich die Arbeit von Carlo Pescio, die den Wahn nach schönen Code etwas in Frage stellt. – Uwe Schindler

Blog von CQSE

Ich empfehle nen Blog der CQSE, da sie einen wissenschaftlichen Ansatz zu Software Qualität haben und eine Menge verschiedener Systeme zu Gesicht bekommen. – Moritz Beller

just-about.net

Ich empfehle zum Thema CleanCode, TDD und .Net den Blog meines Kollegen Hendrik Lösch mit vielen Code-Beispielen. – Kay Grebenstein

Videotipps

In diesem auch sonst sehenswerten TED Talk erklärt Linus Torvalds kurz, was für ihn schöner Code ist. – Moritz Beller

shutterstock_107815670Schöner Code
In unserer Reihe zum Thema „Schöner Code“ stellen wir Experten verschiedener Disziplinen die Frage: Was ist eigentlich schöner Code? Welche Eigenschaft hat schöner Code aus der Sicht eines Software-Architekten? Und wie blicken Tester auf dieses Thema? Hier finden Sie eine Übersicht der bisher veröffentlichten Experten-Checks:

Geschrieben von
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: