Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

SIGS DATACOM GmbH

Lindlaustraße 2c, 53842 Troisdorf

Tel: +49 (0)2241/2341-100

kundenservice@sigs-datacom.de

Lehrbuch für Fortgeschrittene

Ingenieurwesen ist „Verwaltung des Mangels“ – egal ob man Bomber oder Handcomputerspiele entwickelt, legt die Physik dem Wünschenswerten Grenzen an. „Software Mistakes and Tradeoffs“ wendet sich der digitalen Version des Art of the Deal zu.
Author Image
Tam Hanna

Autor


  • 23.06.2023
  • Lesezeit: 3 Minuten
  • 62 Views

Das Autorenkollektiv beginnt mit einer strategischen Abwägung zwischen Testbarkeit und dem Private-Modifikator: Mehr Private-Methoden machen eine Klasse „nach außen robuster“, erschweren dem Unittest allerdings das Ansprechen der Member. Dieser „Konflikt“ zwischen zwei etablierten Regeln des Softwaredesigns dient als weiche Überleitung zur Überlegung weiterer Konfliktfelder, wo die reine Lehre des Softwaredesigns mit der Realität kollidiert.

Im Bereich der offenen Fragen fällt auf, dass das Autorenkollektiv den Fokus auf „moderne“ Systeme legt. Exception-Verarbeitung illustriert das Lehrbuch mit Fokus auf Multi-Threaded-Code; die diversen Async-Helferlein moderner Programmiersprachen werden ebenfalls im Zusammenspiel mit dem Exception-Handling beleuchtet. Im Bereich der API-Designs führt man das Hooks-Design-Pattern ein, das mit geringem Codierungs-Mehraufwand eine Steigerung der Flexibilität des Systems erreicht.

Optimieren ist diskutierbar!

Über die Frage, wie man Softwaresysteme optimiert, wurden bereits Gerichtsprozesse ausgefochten. Ein fehlgeschlagener Versuch einer Parallelisierung, die keinen

Performance-Gewinn liefert, dient hier als Einstieg in die Thematik. Die eigentlichen Überlegungen zur Optimierung von Codes konzentrieren sich auf die „Suche nach dem Hot Path“ und geben keinen Anlass zur Kritik. Im sechsten Kapitel „Simplicity vs. cost of maintenance for your API“ channeln die Autoren den legendären Software-Vordenker Joel Spolsky. Spezifischerweise geht er - unter anderem - auf das berühmte-berüchtigte Thema der „Einstellungsseite“ ein. Dass dies auch im Bereich einer API zu „Komplexität und Kundensupport-Anfragen“ führen kann, ist eine gewagte und doch logische Denkweise. Ein kurzer Exkurs zur Verarbeitung von Datum und Uhrzeit dient als Überleitung in ein weiteres Performance-bezogenes Thema. Data Locality - also die Frage, „wo“ in einem Cluster Informationen vorgehalten werden - ist in Big-Data-Systemen von nicht zu unterschätzender Wichtigkeit. Das Lehrbuch illustriert verschiedene Vorgehensweisen und geht darauf ein, wie man ein auf Apache Spark basierendes System optimiert.
Für die Illustration von Publisher-Subscriber-Beziehungen setzen Lelek und Skeet auf Apache Kafka, das ob der Nutzung von Java als Lehrsprache auch für Quereinsteiger von anderen Programmiersprachen problemlos verständlich sein dürfte.

Finishing Touches der Zukunftssicherheit

Insbesondere in Embedded-Systemen vergisst man als Entwickler nur allzu gern, in Firmware und Interfaces „Versionierung“ einzubauen, ein Problem, das sich bei der Weiterentwicklung des Systems nur allzu oft als gravierender Hemmschuh entpuppt. Lobenswerterweise geht das Autorenteam auch auf diese Thematik umfassend ein. Zu guter Letzt finden sich Überlegungen zu Dependency Injection und zu anderen „neuartigen“ Flexibilitäts-Steigerungs-Frameworks.

Lohnt es sich?

„Software Mistakes and Tradeoffs“ ist ein Lehrbuch für Fortgeschrittene. Wer einige Jahre Codier-Erfahrung mitbringt, kann die präsentierten Gedanken nachvollziehen und in die Praxis umsetzen. Der Rezensent, der mit Klassikern wie „Code Reading“ von Diomidis Spinellis aufgewachsen ist, fand den Text sehr interessant.

title
Software Mistakes and Tradeoffs: How to make good programming decisions
subtitle
Tomasz Lelek, Jon Skeet
introduction
Seiten: 416 Verlag: Manning, 2022 ISBN Print: 978-1617299209 Sprache: Englisch
image
Aufmacher_Mistakes Tradeoff
. . .

Author Image

Tam Hanna

Autor
Zu Inhalten

Tam Hanna beschäftigt sich mit der Programmierung von Mobilcomputersystemen und dem Design/Prototyping von Prozessrechnern und IoT-Systemen.


Artikel teilen