Test-first Codierung / Das Doppelpack
$32.00
Suggested Price
$24.50
Bundle Price

Test-first Codierung / Das Doppelpack

Test-first Codierung
Test-first Codierung / Das Arbeitsbuch
The following 2 books are included in this bundle...

About the Bundle

Wenn du richtig in die test-first Codierung einsteigen willst, dann gönn' dir das Doppelpack. Du bekommst damit nicht nur eine ausführliche Einführung in meine Vorstellung davon, wie du systematisch korrekten und testbaren und auch noch ordentlichen Code schreibst. Darüber hinaus zeige ich dir auch noch, wie ich meine, dass die Übungsaufgaben gelöst werden könnten, die ich dir als Challenges vorschlage.

Die Musterlösungen enthalten natürlich nicht nur Code, sondern ebenso weitere Erklärungen, die den Stoff aus dem Einführungsband vertiefen.

Mit dem Doppelpack lässt du dich auf eine Reise ins Herz der systematischen Problemlösung mit Clean Code ein. Nimmst du die Herausforderung an?

  • Share this bundle

About the Books

Test-first Codierung

Test-first Codierung

Programming with Ease - Teil 1
  • 321

    Pages

  • 66,021

    Words

  • 100%

    Complete

  • PDF

  • EPUB

  • MOBI

  • WEB

Clean Code bedeutet wandlungsfähiger Code. Wandlungsfähigkeit setzt voraus, dass du keine Angst hast, Code zu verändern. Du willst ihn ja nicht unwissentlich verschlimmbessern und das nicht bemerken. Stabilen Code liefern und sofort wissen, wann er reif zur Lieferung ist, sind Grundpfeiler, auf denen deine langfristig hohe Produktivität ruht.

Automatisierte Tests sind seit langem unverzichtbar, wenn es um nachweisbare und nachvollziehbare Korrektheit von Software geht. Leider haben sich automatisierte Tests trotz hervorragender Werkzeugunterstützung und methodischer Empfehlungen wie Test-Driven Development (TDD) und Behavior-Driven Development (BDD) noch nicht als Selbstverständlichkeit durchgesetzt. Die Testabdeckung ist daher in vielen Codebasen, auch frischen, nicht ausreichend, um regressionsfreiheit sicherzustellen. Das Sicherheitsnetz, das automatisierte Tests spannen sollen, damit du darüber angstfrei Codieren kannst, ist weit und/oder löchrig. Woran mag das liegen?

Die Gründe sind sicher vielfältig für dünne Testabdeckung. Einer sticht für mich jedoch heraus: mangelnde Systematik. Es fehlt eine Guideline, wie du als Entwickler, der du mit einem Programmierproblem konfrontiert bist, geradlinig zu testabgedecktem und auch noch ordentlichem Code kommst.

Der red-green-refactor Prozess in TDD ist eine gute Idee - die allerdings in der Praxis von vielen Entwicklern als zu wenig unterstützend erlebt wird. Sie versuchen sich daran zu halten, fühlen sich jedoch schnell entweder allein gelassen oder überfordert bei ihrem Praxisproblem. Aus Frustrations wird dann das Kind mit dem Bade ausgeschüttet und ganz auf automatisierte Tests verzichtet. Oder es wird in der Community nach Hilfe gesucht, die Literatur gewälzt - doch als Antwort wird vor allem "Du musst es eben nochmal und genauer nach den Regeln probieren!" gegeben. Beides ist nicht hilfreich.

Automatisierte Tests sind heute nicht mehr nice to have, sondern gehören zu fachgerechter Arbeitsweise, wenn du professioneller Softwareentwickler sein willst. Sie nicht zu schreiben, sich nicht darum zu bemühen, ist keine Option.

Und mit TDD einfach nochmal und nochmal gegen die Problemwand zu rennen, bringt auch nicht unbedingt die Lösung, sondern erzeugt Frust und Kopfschmerzen. Denn wenn es mit TDD nicht recht klappen will, dann liegt das nicht unbedingt daran, dass du als Entwickler TDD nicht begreifst. Es kann auch daran liegen, dass der TDD Prozess einfach nicht zu deinem Problem passt.

An TDD ist deshalb nichts falsch. Es greift nur schlicht in der Praxis zu kurz. Die Welt der Programmierprobleme ist größer und bunter als das, was in TDD Coding Dojos an kleinen Problemen behandelt wird.

In mehr als 10 Jahren Beschäftigung mit Clean Code Development habe ich mich daher bemüht, ein Vorgehen zu entwickeln, das umfassender und systematischer unterstützt, Probleme in der Codierung zu lösen. Das Motto ist sozusagen: "Keine Angst vor dem blinkenden Cursor in deiner IDE!"

Test-first Codierung als Teil meines Programming with Ease Konzeptes für Clean Code Development nimmt dich an die Hand bei der Bewältigung von Programmierproblemen, die es in fünf Kategorien einteilt:

  • trivial
  • einfach
  • kompliziert
  • komplex
  • chaotisch

Diese Kategorisierung ist an das Cynefin Framework von IBM angelehnt, das Führungskräfte situationsgerecht bei Entscheidungen unterstützen soll.

In der test-first Codierung wird diesen Kategorien aber jeweils ein anderer Problemlösungsansatz zugeordnet. Triviale Probleme gehst du anders an als komplizierte oder komplexe. Klingt logisch, oder? TDD - genauer: classical TDD - hat darin auch seinen Anwendungsfall; doch der ist begrenzt auf nur einen der Problemschwierigkeitsgrade. Und komplexe Probleme sind das nicht.

Gemeinsam ist den Ansätzen für alle Schwierigkeitsgrade, dass du die Codierung mit mindestens einem Test beginnst: dem Akzeptanztest. Deshalb test-first im Titel. Die Begründung ist zwiefach: 1. Wenn du nicht zuerst einen Test schreibst, ist die Wahrscheinlichkeit groß, dass du keinen schreibst. 2. Wenn du dein Denken zuerst auf einen Test richtest, also auf die Außenansicht deiner Lösung, nimmst du die Perspektive eines Benutzers an. Das führt tendenziell zu einer besseren Schnittstelle für deinen Code und zu höherer Testbarkeit.

Test-first Codierung ist aber nicht alles. Es ist nur die letzte Phase eines mehrschrittigen Prozesses, in dem du Anforderungen in hochqualitativen Code umsetzt. Diesen Prozess fasse ich unter dem Titel Programming with Ease zusammen, weil die Programmierung "von Anfang bis Ende" durch mehr Systematik einfacher werden soll.

Allerdings ist Test-first Codierung der erste Band in meiner Programming with Ease Buchreihe. Codierung ist schlicht das, was dir als Softwareentwickler am nächsten liegt und jeden Tag im wahrsten Sinne des Wortes unter den Nägeln brennt. Deshalb will ich dich dabei abholen und unterstützen. Deine Motivation wird bei der Codierung am höchsten sein, etwas Neues zu lernen und deine Gewohnheiten zu verändern. Zumindest hoffe ich das.

Was erwartet dich konkret in diesem Band? Ich habe meine Vorstellung von einem test-first Vorgehen in mehrere Lektionen/Kapitel eingeteilt, die ich auch in Trainings vermittle. Schau dir einfach mal das Inhaltsverzeichnis an. Jedes Kapitel besteht aus einem Erklärungsteil und Übungsaufgaben. Der Text ist mit vielen Codebeispielen und Abbildungen aufgelockert. Insgesamt sollte das Buch dir ca. 8+ Stunden Lesespaß geben. Und zur Bearbeitung der Übungsaufgaben kannst du auch nochmal 12-16 Stunden rechnen. Das meine ich nicht zur Abschreckung, sondern will dir zeigen, dass du hier einiges Material hast, um dich als Software Craftsman solide mit der Thematik Clean Code Development auseinander zu setzen. Das Buch ist ernsthafte Lektüre für deine Weiterbildung.

Schau dir am besten einmal die Probekapitel an; oder stelle Fragen in der Community zum Buch und rund um Clean Code Development. Dann bist du hoffentlich entschlossen, es damit zu versuchen: für mehr Stabilität und Ordnung in deiner Software.

Ich wünsche dir viel Freude bei der Programmierung!

-Ralf Westphal, info@ralfw.de

Ver. 1.1.2.20200705

Test-first Codierung / Das Arbeitsbuch

Test-first Codierung / Das Arbeitsbuch

Programming with Ease - Teil 1
  • 183

    Pages

  • 34,020

    Words

  • 100%

    Complete

  • PDF

  • EPUB

  • MOBI

  • WEB

Deinen Code testbarer und dann korrekter und auch noch ordentlicher zu schreiben, ist technisch nicht schwierig. Test-first Codierung ist vor allem eine Herausforderung an deine Gewohnheiten, an dein Mindset.

Deshalb ist es besonders hilfreich, dass du die Praktiken und Prinzipien einübst, bevor du dich an Probleme aus deinem Programmieralltag machst. Denn wenn du zu früh damit "am offenen Herzen" operierst, dann bist du noch nicht sattelfest und läufst schnell in Situationen, wo dich test-first Codierung einfach nur nervt. Weder sitzen dir die Handgriffe quasi schon automatisiert in den Fingerspitzen, noch hast du je Feedback dazu bekommen, wie du den Stoff interpretierst, den ich dir im Band Test-first Codierung vermittelt habe.

"Übung macht den Meister" heißt es. Deshalb habe ich dir schon in Test-first Codierung Übungsaufgaben vorgeschlagen, an denen du das, was du gelesen hast, ausprobieren konntest. Noch mehr bringt allerdings solche Übung, wenn du auch noch Feedback bekommst zu deinen Lösungsversuchen. Im einfachsten Fall ist das ein unpersönliches Feedback durch einen Vergleich deiner Lösung mit einer Musterlösung. Das will ich dir mit den Musterlösungen in diesem Ergänzungsband bieten.

Wenn du deine Lösungen den Musterlösungen gegenüberstellst, siehst du zumindest wahrscheinlich einen Unterschied. Der allein schon kann dich zum Denken anregen, worin er wohl begründet sein mag. Solche Reflexion ist sehr wertvoll für dein Lernen.

Darüber hinaus erkläre ich dir aber auch noch, warum ich zu den Musterlösungen gekommen bin. Sie bestehen nicht einfach aus Code, sondern sind weitere, eigenständige Kapitel, die den Stoff ein Stück wiederholen und dann auch vertiefen. Nicht alles, was es zu sagen gibt zu test-first Codierung, habe ich in den Hauptband verpacken können. (Und manchmal ist mir etwas erst bei der Musterlösung eingefallen, das ich nicht noch in den Hauptband einarbeiten wollte.)

Wenn du die Übungsaufgaben also tapfer durcharbeitest und anschließend die Musterlösungen konsultierst, nimmst du dir wirklich Zeit für die Auseinandersetzung mit dem Thema. Das erhöht die Chance erheblich auf erfolgreiche Anwendung im Projektalltag. Das Geheimnis ist die reflektierende Übung, die wirklich den Meister macht. Simple practice reicht nicht aus; du brauchst deliberate practice, wenn du es ernst meinst mit einer Veränderung. Weniger als Übungsaufgaben inkl. Reflexion anhand von Musterlösungen gehen da leider gar nicht nach meiner Erfahrung.

Wenn du die Übungsaufgaben löst und die Musterlösungen studierst, kommst du auf ca. 24 Arbeitsstunden. Das halte ich schon für eine intensive Auseinandersetzung mit dem Thema test-first Codierung.

Viel Erfolg und auch Freude bei der Lösung der Übungsaufgaben!

-Ralf Westphal, info@ralfw.de

Ver. 1.0.0.20200717

P.S. Die Musterlösungen bieten dir einen begründeten Kontrast zu deinen eigenen Lösungen. Ein echtes Feedback, das sich aktiv mit deinem Ergebnis auseinandersetzt und konkret auf deine Stärken und Schwächen eingeht, stellen sie aber natürlich nicht dar. Wenn du das suchst, um noch schneller voranzukommen und im Dialog dein Verständnis tiefer zu entwickeln, dann überleg dir, ob du an einem meiner online Trainings teilnehmen willst. Dort kann ich ganz gezielt auf deine Fragen und Lösungswege eingehen.

The Leanpub 45-day 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers), EPUB (for phones and tablets) and MOBI (for Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses! Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks. Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. It really is that easy.

Learn more about writing on Leanpub