: Mark Seemann
: Code That Fits in Your Head Heuristiken für die Softwareentwicklung. Komplexität reduzieren | Legacy Code beherrschen | Performance optimieren
: MITP Verlags GmbH& Co. KG
: 9783747505151
: mitp Professional
: 1
: CHF 18.10
:
: Informatik
: German
: 368
: Wasserzeichen/DRM
: PC/MAC/eReader/Tablet
: PDF
  • Techniken und Konzepte für nachhaltige Softwareentwicklung sowie sauberen und wartbaren Code
  • Reduktion von Komplexität, strukturierte Arbeitsabläufe und effiziente Fehlerbehandlung
  • b>Mit Auszügen aus einem vollständigen Beispielprojekt inklusive Code zum Download

»Mar Seemann ist dafür bekannt, komplexe Konzepte anschaulich und präzise zu erläutern. In diesem Buch kondensiert er seine weitreichende Erfahrung in der Softwareentwicklung zu praktischen, pragmatischen Techniken für nachhaltigen und gut lesbaren Code. Dieses Buch ist ein Must Read für jeden Programmierer.«

- Scott Wlaschin, Autor von »Domain Modeling Made Functional«

Dieses Buch ist ein praktischer Leitfaden für das Schreiben von nachhaltigem Programmcode und die Reduktion von Komplexität. So können Sie verhindern, dass Softwareprojekte langfristig außer Kontrolle geraten.

Mark Seemann unterstützt seit Jahrzehnten Softwareentwickler-Teams bei der erfolgreichen Umsetzung ihrer Projekte. In diesem Buch begleitet er Sie von den ersten Codezeilen bis zum Deployment und zeigt Ihnen, wie Sie im Entwicklungsprozess effizient und nachhaltig bleiben, wenn Sie neue Funktionalitäten implementieren. Dabei legt er auch Wert auf Fehlerbehandlung und disziplinübergreifende Themen. Er gibt Ihnen wertvolle Hinweise, Techniken und Arbeitsabläufe für alle wichtigen Kernprobleme an die Hand: von der Verwendung von Checklisten bis zur Teamarbeit, von Kapselung bis zur verteilten Programmierung, von API-Design bis zu Unit Testing.

Seemann veranschaulicht seine Konzepte anhand von Codebeispielen aus einem vollständigen Projektbeispiel in C#. Der Code ist so geschrieben, dass er gut verständlich für jeden ist, der eine objektorientierte Programmiersprache verwendet, einschließlich Java, C++ und Python. Der gesamte Code steht zur weiteren Erkundung zum Download bereit.

Wenn Sie jemals negative Erfahrungen bei der Umsetzung von Softwareprojekten oder mit schlecht wartbarem Legacy Code gemacht haben, wird dieses Praxisbuch Ihnen helfen, solchen Schwierigkeiten ab sofort aus dem Weg zu gehen.

Aus dem Inhalt:
  • Den passenden Workflow wählen und schlechten Metaphern entkommen, die nicht funktionieren
  • Mit Checklisten mehr Freiheiten schaffen und das Ergebnis verbessern, indem Sie die Fähigkeiten nutzen, über die Sie bereits verfügen
  • Code Rot und unnötige Komplexität vermeiden
  • Bessere Techniken meistern und neue Routinen bei der Programmierung etablieren
  • Neue Wege für effektivere und schnellere Fehlerbehandlung
  • Höhe e Produktivität in Bezug auf Performance und Sicherheit


Mark Seemann ist in der Softwareentwicklung tätig und beschäftigt sich mit funktionaler Programmierung, objektorientierter Entwicklung und Softwareentwicklung im Allgemeinen. Er hat bereits zwei Bücher und zahlreiche Artikel und Blogbeiträge zu verwandten Themen veröffentlicht. Obwohl er hauptsächlich als .NET-Entwickler tätig ist, nutzt er eine große Bandbreite von Technologien als Ressource, einschließlich Haskell und verschiedene Design-Pattern-Bücher.
<
Cover1
Titel7
Impressum8
Inhaltsverzeichnis9
Vorwort des Herausgebers der englischen Ausgabe17
Einleitung21
Über den Autor27
Teil I: Beschleunigung29
Kapitel 1: Kunst oder Wissenschaft?31
1.1 Bau eines Hauses31
1.1.1 Das Problem mit Projekten32
1.1.2 Das Problem mit Phasen33
1.1.3 Abhängigkeiten33
1.2 Kultivieren eines Gartens34
1.2.1 Was lässt einen Garten gedeihen?35
1.3 Der Weg zur Ingenieurswissenschaft35
1.3.1 Software als Kunsthandwerk35
1.3.2 Heuristik37
1.3.3 Ältere Vorstellungen von Software Engineering38
1.3.4 Fortschritte beim Software Engineering39
1.4 Fazit40
Kapitel 2: Checklisten43
2.1 Eine Gedächtnisstütze43
2.2 Checkliste für eine neue Codebasis45
2.2.1 Git verwenden46
2.2.2 Build automatisieren47
2.2.3 Alle Fehlermeldungen aktivieren51
2.3 Überprüfungen zu einer vorhandenen Codebasis hinzufügen56
2.3.1 Schrittweise Verbesserungen57
2.3.2 Hacken Sie Ihre Organisation58
2.4 Fazit59
Kapitel 3: Komplexität in den Griff bekommen61
3.1 Ziel61
3.1.1 Nachhaltigkeit62
3.1.2 Nutzwert63
3.2 Warum Programmieren schwierig ist65
3.2.1 Die Gehirn-Metapher65
3.2.2 Code wird häufiger gelesen als geschrieben66
3.2.3 Verständlichkeit67
3.2.4 Geistige Arbeit68
3.3 Software Engineering70
3.3.1 Beziehung zur Informatik71
3.3.2 Menschenfreundlicher Code71
3.4 Fazit72
Kapitel 4: Vertical Slice75
4.1 Beginnen Sie mit funktionierender Software75
4.1.1 Vom Dateneingang zur dauerhaften Datenspeicherung76
4.1.2 Minimaler Vertical Slice77
4.2 Laufendes Skelett78
4.2.1 Charakterisierungstest79
4.2.2 Arrange, Act, Assert81
4.2.3 Lockerung der statischen Analyse83
4.3 Von außen nach innen85
4.3.1 JSON entgegennehmen87
4.3.2 Eine Reservierung vornehmen89
4.3.3 Unit-Test93
4.3.4 DTO und Domänenmodell95
4.3.5 Fake-Objekt98
4.3.6 Schnittstelle für das Repository99
4.3.7 Objekte im Repository erstellen99
4.3.8 Abhängigkeiten konfigurieren101
4.4 Vervollständigen Sie den Slice102
4.4.1 Schema103
4.4.2 SQL-Repository104
4.4.3 Konfiguration mit der Datenbank106
4.4.4 Führen Sie einen Smoke Test durch107
4.4.5 Test der Außengrenze mit einer Fake-Datenbank108
4.5 Fazit110
Kapitel 5: Kapselung111
5.1 Speichern Sie die Daten111
5.1.1 Prämisse der Priorität der Transformation111
5.1.2 Parametrisierter Test113
5.1.3 DTO ins Domänenmodell kopieren114
5.2 Validierung116
5.2.1 Ungültige oder fehlende Datumsangaben117
5.2.2 Rot-Grün-Refactor119
5.2.3 Natürliche Zahlen122
5.2.4 Robustheitsgrundsatz125
5.3 Schutz von Invarianten128
5.3.1 Immer gültig129
5.4 Fazit131
Kapitel 6: Triangulierung133
6.1 Kurzzeit- und Langzeitgedächtnis133
6.1.1 Legacy Code und Gedächtnis134
6.2 Kapazität136
6.2.1 Überbuchung136
6.2.2 Advokat des Teufels139
6.2.3 Vorhandene Reservierungen142
6.2.4 Advokat des Teufels und Rot-Grün-Refactor144