Vorwort

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Um die Softwareentwicklung zu meistern, musst du eine Vielzahl von Konzepten lernen. Wenn du als junger Softwareentwickler anfängst oder schon etwas erfahrener bist, kann das wie eine unüberwindbare Hürde erscheinen. Solltest du Zeit damit verbringen, etwas über etablierte Themen in der objektorientierten Welt wie SOLID-Prinzipien, Design Patterns oder testgetriebene Entwicklung zu lernen? Solltest du Dinge ausprobieren, die immer beliebter werden, wie z.B. die funktionale Programmierung?

Selbst wenn du dir einige Themen zum Lernen ausgesucht hast, ist es oft schwer zu erkennen, wie sie zusammenpassen. Wann solltest du die Ideen der funktionalen Programmierung in deinem Projekt anwenden? Wann solltest du dich um das Testen kümmern? Woher weißt du, an welchem Punkt du diese Techniken einführen oder verfeinern solltest? Musst du zu jedem dieser Themen ein Buch lesen und dann noch eine Reihe von Blogbeiträgen oder Videos, um zu erklären, wie man die Dinge zusammenfügt? Wo fängst du überhaupt an?

Keine Sorge, dieses Buch ist da, um dir zu helfen. Es hilft dir durch einen integrierten, projektorientierten Lernansatz. Du lernst die wichtigsten Themen, die du wissen musst, um ein produktiver Entwickler zu werden. Und nicht nur das, wir zeigen dir auch, wie diese Dinge in größeren Projekten zusammenpassen.

Warum wir dieses Buch geschrieben haben

Im Laufe der Jahre haben wir einen großen Erfahrungsschatz aufgebaut, wenn es darum geht, Entwicklern das Programmieren beizubringen. Wir haben sowohl Bücher über Java 8 geschrieben als auch Trainingskurse für professionelle Softwareentwicklung durchgeführt. Dabei wurden wir als Java Champions und internationale Konferenzsprecher anerkannt.

Wir haben im Laufe der Jahre festgestellt, dass viele Entwicklerinnen und Entwickler von einer Einführung oder Auffrischung einiger Kernthemen profitieren könnten. Design Patterns, funktionale Programmierung, SOLID-Prinzipien und Testen sind Praktiken, die oft für sich genommen gut behandelt werden, aber es wird selten gezeigt, wie sie gut funktionieren und zusammenpassen. Manchmal werden Menschen sogar davon abgehalten, ihre Fähigkeiten zu verbessern, weil sie die Qual der Wahl haben, was sie lernen sollen. Wir wollen nicht nur Kernkompetenzen vermitteln, sondern dies auf eine Art und Weise tun, die leicht zugänglich ist und auch noch Spaß macht.

Ein entwicklerorientierter Ansatz

Dieses Buch gibt dir auch die Möglichkeit, auf eine entwicklungsorientierte Weise zu lernen. Es enthält viele Code-Beispiele und immer, wenn wir ein Thema vorstellen, liefern wir konkrete Code-Beispiele. Du bekommst den gesamten Code für die Projekte im Buch, so dass du, wenn du mitmachen willst, sogar in einer Integrierten Entwicklungsumgebung (IDE) durch den Buchcode gehen oder die Programme ausführen kannst, um sie auszuprobieren.

Ein weiteres Problem bei Fachbüchern ist, dass sie oft in einem formellen, belehrenden Stil geschrieben sind. So sprechen normale Menschen nicht miteinander! In diesem Buch findest du einen unterhaltsamen Stil, der dich in den Inhalt einbezieht und nicht herablassend wirkt.

Was steht in dem Buch?

Jedes Kapitel ist um ein Softwareprojekt herum aufgebaut. Am Ende eines Kapitels solltest du in der Lage sein, das Projekt zu schreiben, wenn du gut mitgemacht hast. Die Projekte beginnen als einfache Befehlszeilen-Batch-Programme, werden aber immer komplexer und entwickeln sich zu vollwertigen Anwendungen.

Du profitierst von einer projektorientierten Struktur in vielerlei Hinsicht. Erstens lernst du, wie verschiedene Programmiertechniken in einem integrierten Umfeld zusammenarbeiten. Wenn wir uns gegen Ende des Buches mit funktionaler Programmierung befassen, geht es nicht nur um abstrakte Auflistungs- und Verarbeitungsoperationen - sie werden vorgestellt, um tatsächliche Ergebnisse zu berechnen, die in dem jeweiligen Projekt verwendet werden. Damit wird das Problem gelöst, dass Lehrmaterial zwar gute Ideen oder Ansätze zeigt, die Entwickler/innen sie aber oft unangemessen oder ohne Kontext verwenden.

Zweitens trägt ein projektorientierter Ansatz dazu bei, dass du in jeder Phase realistische Beispiele siehst. Bildungsmaterialien sind oft voll von Beispielklassen namens Foo und Methoden namens bar. Unsere Beispiele sind relevant für die jeweiligen Projekte und zeigen, wie man die Ideen auf reale Probleme anwendet, ähnlich denen, die dir in deinem Beruf begegnen könnten.

Außerdem macht das Lernen auf diese Weise mehr Spaß und ist spannender. Jedes Kapitel ist ein neues Projekt und eine neue Gelegenheit, neue Dinge zu lernen. Wir wollen, dass du bis zum Ende durchliest und es wirklich genießt, die Seiten umzublättern. Die Kapitel beginnen mit einer Aufgabe, die gelöst werden soll, führen dich durch die Lösung und enden mit einer Bewertung dessen, was du gelernt hast und wie die Aufgabe gelöst wurde. Am Anfang und am Ende jedes Kapitels wird die Aufgabe ausdrücklich genannt, damit du dir über die Ziele im Klaren bist.

Wer sollte dieses Buch lesen?

Wir sind zuversichtlich, dass Entwickler/innen aus den unterschiedlichsten Bereichen in diesem Buch Nützliches und Interessantes finden werden. Dennoch gibt es einige Leute, die den größten Nutzen aus diesem Buch ziehen werden.

Junge Softwareentwickler/innen, die oft gerade ihr Studium abgeschlossen haben oder erst seit ein paar Jahren programmieren, sind die Hauptzielgruppe für dieses Buch. Du lernst grundlegende Themen kennen, von denen wir annehmen, dass sie für deine gesamte Softwareentwicklungskarriere von Bedeutung sind. Du musst nicht unbedingt einen Hochschulabschluss haben, aber du musst die Grundlagen der Programmierung kennen, um dieses Buch optimal nutzen zu können. Wir werden zum Beispiel nicht erklären, was eine if-Anweisung oder eine Schleife ist.

Du musst nicht viel über objektorientierte oder funktionale Programmierung wissen, um loszulegen. In Kapitel 2 setzen wir nur voraus, dass du weißt, was eine Klasse ist, und dass du Sammlungen mit Generika verwenden kannst (z. B. List<String>). Wir fangen direkt mit den Grundlagen an.

Eine andere Gruppe, für die dieses Buch von besonderem Interesse ist, sind Entwickler, die Java von einer anderen Programmiersprache wie C#, C++ oder Python aus erlernen. Dieses Buch hilft dir, dich schnell mit den Sprachkonstrukten und den Prinzipien, Praktiken und Idiomen vertraut zu machen, die wichtig sind, um guten Java-Code zu schreiben.

Wenn du ein erfahrener Java-Entwickler bist, kannst du Kapitel 2 überspringen, um zu vermeiden, dass du bereits bekannte Grundlagen wiederholst, aber ab Kapitel 3 findest du eine Fülle von Konzepten und Ansätzen, die für viele Entwickler von Nutzen sein werden.

Wir haben festgestellt, dass Lernen einer der spaßigsten Teile der Softwareentwicklung sein kann, und hoffen, dass du das beim Lesen dieses Buches auch feststellen wirst. Wir wünschen dir viel Spaß auf dieser Reise.

In diesem Buch verwendete Konventionen

In diesem Buch werden die folgenden typografischen Konventionen verwendet:

Kursiv

Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.

Constant width

Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.

Constant width bold

Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.

Constant width italic

Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.

Hinweis

Dieses Element steht für einen allgemeinen Hinweis.

Code-Beispiele verwenden

Zusätzliches Material (Code-Beispiele, Übungen usw.) steht unter https://github.com/Iteratr-Learning/Real-World-Software-Development zum Download bereit .

Wenn du eine technische Frage oder ein Problem mit den Codebeispielen hast, sende bitte eine E-Mail an

Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Genehmigung erforderlich.

Wir freuen uns über eine Namensnennung, verlangen sie aber in der Regel nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Real-World Software Development" von Raoul-Gabriel Urma und Richard Warburton (O'Reilly). Copyright 2020 Functor Ltd. und Monotonic Ltd., 978-1-491-96717-1."

Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter kontaktieren

O'Reilly Online Learning

Hinweis

Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.

Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel, Konferenzen und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen findest du unter http://oreilly.com.

Wie du uns kontaktierst

Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Nord
  • Sebastopol, CA 95472
  • 800-998-9938 (in den Vereinigten Staaten oder Kanada)
  • 707-829-0515 (international oder lokal)
  • 707-829-0104 (Fax)

Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/RealWorld_SoftwareDev aufrufen .

Schreib eine E-Mail an , um Kommentare oder technische Fragen zu diesem Buch zu stellen.

Weitere Informationen zu unseren Büchern, Kursen, Konferenzen und Neuigkeiten findest du auf unserer Website unter http://www.oreilly.com.

Finde uns auf Facebook: http://facebook.com/oreilly

Folge uns auf Twitter: http://twitter.com/oreillymedia

Schau uns auf YouTube: http://www.youtube.com/oreillymedia

Get Software-Entwicklung in der realen Welt now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.