Pragmatisch Programmieren Projekt-Automatisierung



Ähnliche Dokumente
40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Print2CAD 2017, 8th Generation. Netzwerkversionen

Die Post hat eine Umfrage gemacht

Installation und Inbetriebnahme von Microsoft Visual C Express

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

Was meinen die Leute eigentlich mit: Grexit?

Internet Explorer Version 6

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Professionelle Seminare im Bereich MS-Office

ARCO Software - Anleitung zur Umstellung der MWSt

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Installationsanleitung CLX.PayMaker Home

Primzahlen und RSA-Verschlüsselung

Step by Step Webserver unter Windows Server von Christian Bartl

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

Installationsanleitung CLX.PayMaker Office

Gezielt über Folien hinweg springen

Sicherer Datenaustausch mit EurOwiG AG

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Lernwerkstatt 9 privat- Freischaltung

Standard Daten-Backup-Script

Universität Potsdam ZEIK - Zentrale Einrichtung für Informationsverarbeitung und Kommunikation

Erstellen der Barcode-Etiketten:

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Einführung in TexMaker

Informatik I Tutorial

Der einfache Weg zum CFX-Demokonto

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

icloud nicht neu, aber doch irgendwie anders

FrogSure Installation und Konfiguration

Problem crazytrickler unter Windows 8:

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Datensicherung und Wiederherstellung

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 14 und VMware Player

Sichern der persönlichen Daten auf einem Windows Computer

Herzlich Willkommen bei der nfon GmbH

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

FastBill Automatic. Dokumentation Versand. FastBill GmbH. Holteyer Straße Essen Telefon Telefax

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Um die Installation zu starten, klicken Sie auf den Downloadlink in Ihrer (Zugangsdaten für Ihre Bestellung vom...)

Sie finden im Folgenden drei Anleitungen, wie Sie sich mit dem Server der Schule verbinden können:

Printserver und die Einrichtung von TCP/IP oder LPR Ports

10.1 Auflösung, Drucken und Scannen

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

! " # $ " % & Nicki Wruck worldwidewruck

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Anleitung über den Umgang mit Schildern

Anwendungsbeispiele Buchhaltung

Inkrementelles Backup

Reporting Services und SharePoint 2010 Teil 1

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten:

Internet online Update (Internet Explorer)

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Lizenzen auschecken. Was ist zu tun?

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.

Studieren- Erklärungen und Tipps

Fotos in Tobii Communicator verwenden

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

TREIBER INSTALLATIONSPROZESS WINDOWS 7 (32 oder 64 BIT)

Erstellen einer digitalen Signatur für Adobe-Formulare

4D Server v12 64-bit Version BETA VERSION

EASYINSTALLER Ⅲ SuSE Linux Installation

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

Tevalo Handbuch v 1.1 vom

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Backup der Progress Datenbank

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Datensicherung EBV für Mehrplatz Installationen

Konvertieren von Settingsdateien

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Windows Server 2012 RC2 konfigurieren

Informatik 1 Tutorial

Tutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD

ICS-Addin. Benutzerhandbuch. Version: 1.0

Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen?

Step by Step VPN unter Windows Server von Christian Bartl

Inhaltsverzeichnis. 1. Empfängerübersicht / Empfänger hinzufügen 2. Erstellen eines neuen Newsletters / Mailings 3. Versand eines Newsletters

Leichte-Sprache-Bilder

Installationsanleitung CLX.PayMaker Office (3PC)

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Diese sind auf unserer Internetseite im Downloadbereich für den Palm zu finden:

Manuelle Konfiguration einer VPN Verbindung. mit Microsoft Windows 7

Installationsanleitung CLX.NetBanking

Userguide: WLAN Nutzung an der FHH Hannover Fakultät V

Kompatibilitätsmodus und UAC

Installation OMNIKEY 3121 USB

Transkript:

Pragmatisch Programmieren Projekt-Automatisierung von Michael Clark ISBN 3-446-40008-7 Leseprobe Kapitel 2.1 Weitere Informationen oder Bestellung unter http://www.hanser.de/3-446-40008-8 sowie im Buchhandel

Kapitel 2 Builds in einem Schritt Lassen Sie uns gleich richtig in die Automatisierung einsteigen. Mit einem Vorgang, den Programmierer immer wieder ausführen: dem Bauen und Testen von Quellcode. 2.1 Software bauen ist wie Brezelbacken Wenn Sie sich hinsetzen und ein Computerprogramm schreiben, erschaffen Sie etwas Einzigartiges. Es ist ein menschlicher Vorgang, der Elemente der Kunst, des Handwerks, der Wissenschaft und der Technik enthält. Sie können es ruhig versuchen, aber Sie können keine beendete Programmiersitzung später genauso wiederholen. Deswegen ist das Schreiben von Software nicht wie der mechanische Prozess des Brezelbackens. Software bauen hat andererseits sehr viel mit Brezelbacken zu tun. Für Anfänger ist es chaotisch. Sie wollen wirklich nicht wissen, wie Ihr schöner Quellcode in Bits zerlegt wird, damit ein Computer ihn verarbeiten kann. Es ist auch ein wiederholbarer Vorgang: jedes Mal, wenn Sie einen Build ausführen, bekommen Sie eine konsistente Kopie Ihres einzigartigen Programms. Der Build-Prozess Um ein Build zu backen, brauchen Sie zuerst ein Rezept üblicherweise als Build-Datei. Die Build-Datei zählt alle zum Backen des Builds benötigten Bestandteile auf, inklusive der Quelldateien, Konfigurationsdateien und Bibliotheken von Fremdanbietern. Außerdem beschreibt sie Schritt für Schritt, wie diese Zutaten zu etwas Leckerem zusammengemischt werden. Entweder schreiben wir die Build-Datei von Grund auf neu oder sie wird, wie jedes großartige Rezept, von anderen Programmierern an uns weitergereicht. Build-Datei

12 2 Builds in einem Schritt Build-Prozess Ein Build-Prozess ist nichts weiter als eine Reihe von Schritten, die Ihre kreativen Artefakte in auslieferbare Software transformieren. Mit anderen Worten: ein Build-Prozess folgt einfach den Anweisungen in Ihrem sorgfältig vorbereiteten Build-Rezept. Der Prozess nimmt die Zutaten als Eingaben, knetet sie durch und zum Schluss kommen fertige Softwarepakete heraus. Tatsächlich ist es die Build- Maschinerie im Inneren der Black Box in der Mitte von Abbildung 2.1, die uns mehr Zeit für das Schreiben von Software lässt. Abbildung 2.1: Der Build-Prozess Zubereiten von CRISP Builds Ein automatisierter Build-Prozess versetzt uns in die Lage, unsere Software per Knopfdruck in großen Mengen zu produzieren. Wenn Sie die Art und Weise ändern wollen, wie Sie Software zusammenstellen, ändern Sie das Rezept und drücken den Knopf erneut. Ansonsten können Sie dank der Automatisierung das Rezept ignorieren. In der Lage zu sein, per Knopfdruck einen Build zu generieren, bedeutet jedoch nicht nur Konsistenz, sondern auch Effizienz. Das heißt, ein in einem Schritt durchführbarer Build-Prozess erlaubt uns Builds auszuführen, die CRISP sind: vollständig (engl. Complete) wiederholbar (engl. Repeatable) informativ (engl. Informative) planbar (engl. Schedulable) portabel (engl. Portable) Lassen Sie uns jede Eigenschaft eines CRISP-Builds der Reihe nach ansehen.

2.1 Software bauen ist wie Brezelbacken 13 Vollständige Builds Vollständige Builds werden von Grund auf neu erstellt und benutzen nur die im Build-Rezept angegebenen Bestandteile. Sie müssen also keine Dateien hinzufügen, bevor oder nachdem der Build ausgeführt wurde. Solche manuellen Schritte sind fehleranfällig und werden gerne mal vergessen. Und offen gesagt, Sie haben bessere Dinge zu tun, als jedes Mal Build-Abhängigkeiten zu beseitigen. Wenn der Build-Prozess unabhängig ist, können wir ihn automatisieren. Dadurch bekommen wir jedes Mal einen vollständigen Build, wenn der Prozess ausgeführt wird. Wiederholbare Builds Der Schlüssel zum Erzeugen wiederholbarer Builds liegt im Speichern der Build-Datei und aller Build-Zutaten in einer Versionsverwaltung, wie z.b. CVS. 1 Dadurch erhalten Sie eine Zeitmaschine, die es Ihnen erlaubt, jede Version der Software durch Auschecken der Dateien per Zeitstempel oder Build-Label zu bauen. Wenn das gleiche Rezept und die gleichen Zutaten eines beliebigen Zeitpunktes gegeben sind, wird der Computer einen identischen Build backen. Ein wiederholbarer Build ist außerdem konsistent. Das bedeutet, Sie können leicht frühere Softwareversionen erneut generieren, wenn Sie von Kunden berichtete Probleme diagnostizieren wollen oder wenn Sie einfach nur einige Schritte zurück gehen wollen. Informative Builds Informative Builds liefern wertvolle Informationen, damit wir immer über den Gesundheitszustand unserer Software Bescheid wissen. Als Detektoren für unerwartete Veränderungen spielen automatisierte Tests eine entscheidende Rolle bei diesen Rückmeldungen. Wenn der Build erfolgreich war, gewinnen wir Sicherheit, dass unsere heutige Arbeit tatsächlich funktioniert der Code konnte kompiliert werden, alle Tests sind erfolgreich durchgelaufen und alle anderen Build-Artefakte wurden ohne Fehler produziert. Mit dem Wissen, dass heute und an jedem folgenden Tag alles funktioniert, 1 http://cvshome.org

14 2 Builds in einem Schritt müssen wir nicht die Daumen drücken und hoffen, dass alles am Tag der Auslieferung funktionieren wird. Wenn der Build scheitert, wollen wir schnell wissen warum, damit wir nicht viel Zeit bei der Fehlersuche verbringen. Ein informativer Build sorgt für detaillierte Informationen, die die Ursache jedes Fehlers aufzeigen: eine fehlende Datei, die aber benötigt wird, eine Quelldatei, die sich nicht kompilieren lässt, oder ein fehlgeschlagener Test. Zeitgesteuerte Builds Wenn ein Build vollständig und wiederholbar ist, haben wir effektiv einen Build-Prozess, der zeitgesteuert ausgeführt werden kann. Da alle für einen Build benötigten Dateien in der Versionsverwaltung verfügbar sind, kann ein Computer einfach mehrmals am Tag oder auf Befehl neue Builds erzeugen. Ein zeitgesteuerter Build kann zu einer bestimmten Uhrzeit (z. B. Mitternacht), in regelmäßigen Abständen (z.b. jede Stunde), zu einem Ereignis (wenn wir z.b. Quellcode einchecken) oder einer nach dem anderen stattfinden. Und das Schöne daran ist, wir müssen dafür gar nichts tun. Die Builds werden im Hintergrund ausgeführt, während wir weiter am Quellcode schreiben. Portable Builds Nicht zuletzt können portable Builds in jeder vernünftig ausgestatteten Küche gebacken werden. Es kommt auf das Rezept und die Zutaten an und nicht auf die Besonderheiten des Ofens. Wir können ein Build nicht nur bauen, wann wir wollen, sondern auch wo wir wollen. Ein portabler Build bedeutet nicht notwendigerweise, dass Sie eine Unix-Anwendung auch unter Windows bauen können. Aber wenn die Anwendung auf einem Unix-Rechner gebaut werden kann, dann sollte es einfach sein, die Anwendung auch auf irgendeinem anderen Unix-Rechner zu bauen. Ebenso sollte das Ausführen eines Builds nicht von einer bestimmten IDE, der IP-Adresse eines Rechners oder dem Verzeichnis abhängig sein, von wo der Build gestartet wird. Die ganze Diskussion übers Backen muss Sie hungrig gemacht haben. Lassen Sie uns unsere Kochmützen aufsetzen und einen

2.1 Software bauen ist wie Brezelbacken 15 CRISP-Build backen. Wir beginnen mit dem Definieren der Verzeichnisstruktur unseres Projektes. Der Compile -Knopf ist kein Build-Prozess So verlockend es auch erscheinen mag, ihn als solchen zu benutzen, der Compile -Knopf in Ihrer Lieblings-IDE (Entwicklungsumgebung) ist kein Build-Prozess, der einen CRISP -Build erzeugt. Eine IDE ist ein mächtiges Entwicklungswerkzeug, um Code zu kompilieren, seine Struktur zu durchsuchen und sogar für effizientes Code-Refactoring. Aber bei Java-Projekten scheint jeder seine persönliche Lieblings-IDE zu benutzen. Wenn Sie Ihren Build-Prozess hinter dem Compile -Knopf der IDE versteckt haben, dann muss sich das gesamte Team auf die gleiche IDE einigen. Viel Glück dabei. Und selbst wenn sich alle auf eine IDE einigen konnten (oder Sie lassen den Gewinner im Armdrücken die Standard-IDE bestimmen), muss jeder im Team seine Installation identisch konfigurieren, damit jeder konsistente Builds erstellen kann. Sie könnten die IDE-Konfigurationsdateien unter eine Versionsverwaltung stellen, damit alle die gleiche Konfiguration benutzen das erfordert Disziplin, aber es kann funktionieren. Wie automatisieren Sie nun aber einen zeitgesteuerten Build-Prozess? Setzen Sie einen Programmierer vor die IDE, der immer dann den Compile -Knopf drückt, wenn er eine Banane erhält? Gut, wir sind Programmierer, also könnten wir ein Skript schreiben, das die IDE startet und den Knopf für uns drückt. Aber dafür wurde die IDE nicht entworfen, und auf diese Weise einen Build auszuführen, macht die Integration von Build-Planungswerkzeugen schwieriger. Sie erhalten mehr Flexibilität, wenn Sie den Build-Prozess aus jeder Art von IDE auslagern. Das gibt jedem unabhängig von der Wahl seiner IDE die Freiheit, einen Build manuell auszuführen oder einen unbeaufsichtigten Build zu konfigurieren. Wenn Sie einen anerkannten Build-Prozess haben, opfern Sie nicht die Build-Konsistenz im Namen der Flexibilität. Glücklicherweise nutzt die neue Generation von Java-IDEs zunehmend Standard-Build-Systeme wie zum Beispiel Ant (mehr dazu etwas später). Das erlaubt Ihnen, den selben Build-Prozess sowohl von der IDE aus als auch außerhalb der IDE zu verwenden.