Kanban

Kanban
Автор книги: id книги: 2204243     Оценка: 0.0     Голосов: 0     Отзывы, комментарии: 0 1907,17 руб.     (20,78$) Читать книгу Купить и скачать книгу Электронная книга Жанр: Математика Правообладатель и/или издательство: Bookwire Дата добавления в каталог КнигаЛит: ISBN: 9783864910289 Скачать фрагмент в формате   fb2   fb2.zip Возрастное ограничение: 0+ Оглавление Отрывок из книги

Реклама. ООО «ЛитРес», ИНН: 7719571260.

Описание книги

Software-Kanban ist ein Change-Management-Ansatz, der Ideen aus dem Lean Thinking und der Engpasstheorie verbindet und die kontinuierliche Verbesserung in IT-Organisationen vorantreibt. Software-Kanban lässt sich evolutionär in kleinen Schritten einführen und führt schnell zu kürzeren Durchlaufzeiten, besserer Qualität, gleichmäßiger Arbeitsbelastung und höherer Kundenzufriedenheit. In diesem Buch hat David J. Anderson, «Vater» von Software-Kanban, seine Erfahrungen mit dem Einsatz dieser evolutionären Methode aus verschiedenen großen Softwareprojekten (Microsoft, Motorola) zusammengetragen.

Оглавление

David J. Anderson. Kanban

Einfach Python

Inhaltsverzeichnis

Vorwort

Zielgruppe

Was vermittelt dieses Buch?

Tipp: Praxistipp

Aufbau dieses Buchs

Einstieg

Aufstieg

Praxisbeispiele

Schlussgedanken

Anhang

Sourcecode und ausführbare Programme

Verwendete Python-Version

Konventionen. Verwendete Zeichensätze

Verwendete Abkürzungen

Danksagung

Anregungen und Kritik

1Einführung. 1.1Python im Überblick

Hinweis: Python 2

Bestandteile von Python-Programmen

Zunehmende Popularität von Python

Zwischenfazit

1.2Los geht’s – Installation

1.2.1Python-Download

1.2.2Installation von Python

Python-Installation für Windows

Python-Installation für MacOS

1.2.3Nacharbeiten nach der Python-Installation

Nacharbeiten für Windows

Nacharbeiten für MacOS

1.2.4Python-Installation prüfen

1.2.5Python-Programm als Skript ausführen

1.3Entwicklungsumgebungen

1.3.1Installation von PyCharm

Hinweis: Möglicherweise leicht abweichende Screenshots

1.3.2PyCharm starten

1.3.3Erstes Projekt in PyCharm

1.3.4Erstes Modul in PyCharm

Neues Modul anlegen

Sourcecode editieren

Klasse ausführen

2Schnelleinstieg. 2.1Hallo Welt (Hello World)

2.2Variablen und Datentypen

2.2.1Definition von Variablen

Varianten der formatierten Ausgabe

2.2.2Variablen und Typen

Typumwandlung (Cast)

2.2.3Bezeichner (Variablennamen)

2.3Operatoren im Überblick

2.3.1Arithmetische Operatoren

Beispiele für Grundrechenarten

Modulo-Operator

Tipp: Übrigens …

Spezialfall: Division durch 0

2.3.2Zuweisungsoperatoren

Kurzschreibweisen

2.3.3Vergleichsoperatoren

2.3.4Logische Operatoren

2.4Fallunterscheidungen

Bedingte Ausführung mitif

ifundelsein Kombination

if,elifundelsein Kombination

Rekapitulation

Tipp: Kein switch in Python

2.5Funktionen

Funktionen definieren

Funktionen aufrufen

2.5.1Eigene Funktionen definieren

Spezialfall: Keine Rückgabe

Kombination mit Bedingungen

Funktionen als wiederverwendbare Bausteine

2.5.2Nützliche Beispiele aus Python

Vorteile durch den Einsatz der Built-in-Funktionen

2.5.3Fehlerbehandlung und Exceptions

2.6Kommentare

2.7Module

Beispiel

Zusammenfassung und Ergänzendes

Tipp: Besonderheiten beim Start und beim Import

2.8Built-in-Datentypen

2.8.1List

2.8.2Tupel

Besonderheit Tuple (Un-)Packing

2.8.3Set

2.8.4Dict

2.9Schleifen

2.9.1Besonderheit: Ranges

2.9.2Indexbasierte for-in-Schleife

Was passiert dabei im Detail?

Variieren der Schrittweite?

Durchlaufen einer Liste

2.9.3Wertebasierte for-in-Schleife

Was passiert dabei im Detail?

Anmerkung

2.9.4Index- und wertebasierte for-in-enumerate-Schleife

Beispiel für den Bedarf an Index und Wert

Tipp: Wahl der Schleifenvariante

2.9.5Die while-Schleife

Was passiert dabei im Detail?

2.10Weiterführende Informationen

2.11Aufgaben und Lösungen. 2.11.1Aufgabe 1: Mathematische Berechnungen

Lösung

2.11.2Aufgabe 2: Bedingung vereinfachen

Lösung

2.11.3Aufgabe 3: Funktion und if

Lösung

2.11.4Aufgabe 4: Selbstabholerrabatt

Lösung

Hinweis: Variante

2.11.5Aufgabe 5: Schleifen mit Berechnungen

Lösung

2.11.6Aufgabe 6: Schleifen und fixe Schrittweite

Lösung

2.11.7Aufgabe 7: Schleifen mit variabler Schrittweite

Lösung

2.11.8Aufgabe 8: Verschachtelte Schleifen – Variante 1

Lösung

2.11.9Aufgabe 9: Verschachtelte Schleifen – Variante 2

Lösung

2.11.10Aufgabe 10: Verschachtelte Schleifen – Variante 3

Lösung

3Strings

3.1Schnelleinstieg

3.1.1Gebräuchliche Stringaktionen. Stringkonkatenation

Groß- und Kleinschreibung

Tipp: Was sind Methoden?

Leerzeichen entfernen

Länge ermitteln

Auf leeren String prüfen

Auf einzelne Zeichen zugreifen

Iteration

Teilbereiche extrahieren – Slicing

Strings wiederholen

3.1.2Suchen und Ersetzen. Suchen und Enthaltensein

Weitersuchen

Ersetzen von Inhalten

Komplexeres Ersetzen von Inhalten

3.1.3Informationen extrahieren und formatieren. Informationen extrahieren

Formatierte Ausgabe

Formatierung mitcapitalize()undtitle()

3.1.4Praxisrelevante Funktionen im Kurzüberblick

3.2Nächste Schritte. 3.2.1Zeichenverarbeitung

3.2.2Strings und Listen. Umwandlung in eine Liste

Modifikation in einer Liste

Einen String aus einer Liste erzeugen

3.2.3Mehrzeilige Strings

Beispiel: HTML-Code

Tipp: Behandlung der führenden Leerzeichen

3.3Aufgaben und Lösungen. 3.3.1Aufgabe 1: Länge, Zeichen und Enthaltensein

Lösung

3.3.2Aufgabe 2: Zeichen wiederholen

Lösung

3.3.3Aufgabe 3: Vokale raten

Lösung: Vokale entfernen

Lösung: Vokale ersetzen

3.3.4Aufgabe 4: String Merge

Lösung

4Klassen und Objektorientierung

4.1Schnelleinstieg

4.1.1Grundlagen zu Klassen und Objekten

Theorie: Klassen und Objekte

Klassen definieren

Ein Objekt erzeugen

Theorie: Referenz und Identität

4.1.2Eigenschaften (Attribute) Zugriff auf die Attribute

Objektzustand

Wertebelegung der Attribute ändern

4.1.3Verhalten (Methoden)

Verhalten definieren

Tipp: Gedanken zur Erweiterung

Verhalten für Klassen definieren – statische Methoden und Variablen

4.1.4Objekte vergleichen – die Rolle von __eq__()

Vergleich von Objekten

Implementierung von__eq__()

Hinweis: Vergleich von Gleitkommazahlen (float)

4.2Nächste Schritte. 4.2.1Klassen ausführbar machen

Applikation als Klasse definieren

4.2.2Imports und Packages

Packages

Benutzerdefinierte Packages anlegen

4.2.3Übergang zum Einsatz einer IDE

Projekt in PyCharm anlegen

Modul anlegen

Sourcecode editieren

Klasse ausführen

4.2.4Verstecken von Informationen

Sichtbarkeiten / Zugreifbarkeit

Wertebereichsprüfungen

4.2.5Packages: Auswirkungen auf unsere Applikation

Sichtbarkeiten und Auswirkungen

Applikation in der IDE

4.3Vererbung

4.3.1Basisklassen

Vorgehen zur Definition von Basisklassen

4.3.2Typprüfung mit isinstance()

Anwendungsbeispiel

4.3.3Generalisierung und Spezialisierung

4.3.4Polymorphie

Subklassenbeziehungen undissubclass()

4.4Aufgaben und Lösungen. 4.4.1Aufgabe 1: Superheld

Lösung

4.4.2Aufgabe 2: Zähler

Lösung

4.4.3Aufgabe 3: Zähler mit Überlauf

Lösung

5Collections

5.1Schnelleinstieg. 5.1.1Die Klasse list

Liste erzeugen

Werte hinzufügen

Prüfen, ob ein Eintrag existiert

Positionsbasierter Zugriff

Modifikationen ausführen

Element positionsbasiert löschen

Spezielle Elemente löschen

Anzahl an Elementen ermitteln

Durch die Elemente iterieren

Listen sortieren

Alle Elemente löschen

Fallstricke beim Hinzufügen

Mehrere Elemente hinzufügen

5.1.2Die Klasse set

Leeresseterzeugen

Werte hinzufügen

Mehrere Werte hinzufügen

Prüfen, ob ein Eintrag existiert

Bestimmtes Element löschen

Anzahl an Elementen ermitteln

Durch die Elemente iterieren

Alle Elemente löschen

Mengenoperationen

5.1.3Die Klasse dict

Leeresdicterzeugen

Werte hinzufügen

Prüfen, ob ein Eintrag existiert

Prüfen, ob ein Wert existiert

Zugriff über Schlüssel

Modifikationen ausführen

Abbildung löschen

Anzahl an Einträgen ermitteln

Durch die Elemente iterieren

Alle Elemente löschen

5.2Nächste Schritte. 5.2.1Comprehensions

5.2.2Slicing – Zugriff auf Teilbereiche

Beispiel

5.2.3Sortierung – sort() / sorted()

Objekte sortieren

Die Funktionsorted()

5.2.4Tauschen von Elementen – swap()

Tipp: Rekursive Variante

5.2.5Reihenfolge umkehren – reverse() und reversed()

5.2.6Mehrdimensionale Listen

Einführendes Beispiel

Beispiel

Verbesserungen in der Ausgabe

Spezialfall: Nicht rechteckige Listen

5.3Praxisbeispiel: Einen Stack selbst realisieren

5.3.1Implementierung

Diskussion

Prüfung

5.3.2Stack im Einsatz

5.4Praxisbeispiel: Flächen füllen

Beispiel

Algorithmus

Prüfung

5.5Aufgaben und Lösungen. 5.5.1Aufgabe 1: Tennisverein-Mitgliederliste

Lösung

5.5.2Aufgabe 2: Liste mit Farbnamen füllen und filtern

Lösung

5.5.3Aufgabe 3: Duplikate entfernen – Variante 1

Lösung

5.5.4Aufgabe 4: Duplikate entfernen – Variante 2

Lösung

5.5.5Aufgabe 5: Hauptstädte

Lösung

5.5.6Aufgabe 6: Häufigkeiten von Namen

Lösung

5.5.7Aufgabe 7: Objekte mit Dictionary selbst gebaut

Lösung

5.5.8Aufgabe 8: Rotation um eine oder mehrere Positionen

Lösung

Tipp: Optimierung bei großen Werten fürn

5.5.9Aufgabe 9: Dreieckige Liste: Upside Down

Lösung: Brute Force mit neuer Liste und viel Kopieren

Lösung: Tricky Inplace mit Referenztausch

6Ergänzendes Wissen

6.1Benutzereingaben input()

Beispiel

Tipp: Unsichtbare Eingabe etwa für Passwörter

6.2Zufallswerte und das Modul random

Zufallswerte im Bereich 0 bis 1

Zufallswerte aus einem Bereich

Werte aus Liste zufällig wählen

Listen durcheinanderwürfeln

6.3Besonderheiten von Parametern

6.3.1Normale Parameter mit Position bzw. Name

6.3.2Parameter mit Defaultwert

6.3.3Var Args – variable Anzahl an Argumenten

Trickreiche Nutzung

Tipp: Besonderheiten

6.4Ternary-Operator

Beispiel

Tipp: Der ternäre Operator in der Praxis

6.5Aufzählungen mit Enum

Erste Idee: Listen mit fixen Werten

Aufzählungen mitEnumals Abhilfe

Besonderheit vonEnum: Werte für Konstanten

6.6break, continue und else in Schleifen

6.6.1Funktionsweise von break und continue

breakinfor

continueinfor

breakinwhile

continueinwhile

6.6.2Wie macht man es besser?

Beimbreak

Beimcontinue

6.6.3Besonderheit: else in Schleifen

6.7Ausdrücke mit eval() auswerten

Tipp: Was passiert unter der Motorhaube?

6.8Rekursion

Einführendes Beispiel

Beispiel: Fibonacci-Zahlen

Tipp: Abweichende Definition mit null als Startwert

Beispiel: Lineal

6.9Aufgaben und Lösungen. 6.9.1Aufgabe 1: Würfelspiel

Lösung

6.9.2Aufgabe 2: Temperaturumrechnung

Lösung

6.9.3Aufgabe 3: Palindrom-Prüfung mit Rekursion

Lösung

6.9.4Aufgabe 4: Einarmiger Bandit

Lösung

7Collections Advanced

7.1Sequenzielle Datentypen

Beispiel

7.2Iteratoren

Iteratoren in Python

Iteration durch einen Iterator

Hintergrundwissen: Funktionsweise derfor-Schleife für Iteratoren

Eigenen Iterator erstellen

7.3Generatoren

Beispiel: Generator implementieren

Tipp: Unterschied yield und return

Unterschiede zwischen Generatorfunktion und Iterator

7.4Datencontainer mit namedtuple

Einführendes Beispiel

Besonderheiten

Tipp: Einsatzgebiete für Named Tuples

7.5Einstieg in Lambdas

7.5.1Syntax von Lambdas

7.5.2Lambdas im Einsatz mit filter(), map() und reduce()

Kombination mitfilter()

Kombination mitmap()

Kombination mitreduce()

7.5.3Lambdas im Einsatz mit sort()

7.5.4Lambdas im Einsatz mit groupby()

Aufbereitungsalternativen

Spezialfall – Partitionierung

7.6Aufgaben und Lösungen. 7.6.1Aufgabe 1: Obstkorb

Lösung

7.6.2Aufgabe 2: Erwachsene aus Personenliste extrahieren

Lösung

7.6.3Aufgabe 3: Eigene Implementierung von rindex()

Lösung

7.6.4Aufgabe 4: Elemente eines Dictionaries allgemeingültig filtern

Lösung

7.6.5Aufgabe 5: Every-N-th-Iterator

Lösung

Kür: Mit Offset zum Überspringen von Elementen am Anfang

7.6.6Aufgabe 6: Greeting-Generator

Lösung

Achtung: Flüchtigkeitsfehler

7.6.7Aufgabe 7: Fibonacci-Generator

Lösung

7.6.8Aufgabe 8: Sortieren und Gruppieren

Lösung

8Verarbeitung von Dateien

8.1Schnelleinstieg

8.1.1Anlegen von Dateien und Verzeichnissen

Erzeugen neuer Verzeichnisse

Erzeugen neuer Dateien

8.1.2Aktuelles Verzeichnis wechseln

8.1.3Aktuelles Verzeichnis und absoluten Pfad ermitteln

8.1.4Inhalt eines Verzeichnisses auflisten

8.1.5Pfad ist Datei oder Verzeichnis?

8.1.6Auf Existenz prüfen

8.1.7Informationen in Dateien schreiben und daraus lesen

Öffnen von Dateien

Schließen von Dateien

Schreiben in Dateien

Einlesen aus Datei

Tipp: Walross-Operator :=

8.1.8Einfluss der Verarbeitungsmodi

Modusx– Erzeugen

Modusw– Überschreiben

Modusa– Anhängen

8.1.9Diverse Informationen ermitteln

Dateigröße bestimmen

Berechtigungen

Zeitpunkte

8.1.10Kopieren

8.1.11Umbenennen

8.1.12Löschen

Löschen einer Datei

Löschen eines Verzeichnisses

8.2Praxisbeispiel: Directory-Baum darstellen

8.2.1Basisvariante

8.2.2Variante mit schönerer Darstellung

8.2.3Finale Variante mit ausgeklügelter Darstellung

8.3JSON-Verarbeitung

8.3.1JSON in eine Datei schreiben

Beispiel

8.3.2Lesen von JSON aus einer Datei

Beispiel

8.3.3Pretty Printing

8.4Aufgaben und Lösungen. 8.4.1Aufgabe 1: Texte in Datei schreiben und wieder lesen

Lösung

8.4.2Aufgabe 2: Dateigrößen

Lösung

8.4.3Aufgabe 3: Existenzprüfung

Lösung

8.4.4Aufgabe 4: Rechteprüfung

Lösung

8.4.5Aufgabe 5: Verzeichnisinhalt auflisten

Lösung

Kür: Aufbereiten von Listen nur mit Dateien bzw. nur mit Verzeichnissen

9Fehlerbehandlung mit Exceptions

9.1Schnelleinstieg

Wichtige vordefinierte Fehler

9.1.1Fehlerbehandlung

Fehlerbehandlung mittryundexcept

Der letzte Wille – abschließende Aktionen und derfinally-Block

Python-Besonderheittry-else

9.1.2Exceptions selbst auslösen – raise

Beispiel

9.1.3Eigene Exception-Typen definieren

Einführendes Beispiel

Exception für Bereichsprüfung

9.1.4Propagation von Exceptions

Einführendes Beispiel

Beispiel

9.2Fehlerbehandlung in der Praxis

Beispiel

9.2.1Elegante Prüfungen mit assert

Zusicherungen zur Fehlersuche

Zusicherungen zur Parameterprüfung

9.3Automatic Resource Management (with)

9.4Aufgaben und Lösungen. 9.4.1Aufgabe 1: Abgesicherter Indexzugriff – Kür mit Fallback-Wert

Lösung

9.4.2Aufgabe 2: Einfacher Taschenrechner

Lösung

Kür

9.4.3Aufgabe 3: Resource Handling

Lösung

10Datumsverarbeitung

10.1Schnelleinstieg

10.1.1Zeitpunkte und die Klasse datetime

Aktuellen Zeitpunkt ermitteln

Beliebigesdatetimekonstruieren

Bestandteile eines Zeitpunkts ausgeben

Zeitpunkt aus Unix-Zeitstempel erzeugen

10.1.2Datumswerte und die Klasse date

Aktuelles Datum ermitteln

Beliebigesdatekonstruieren

Jahr, Monat und Tag ermitteln

Wochentage ermitteln

Tag im Monat ermitteln

Tag im Jahr ermitteln

Datum aus Zeitstempel erzeugen

Datum in Ordinal

10.1.3Zeit und die Klasse time

Aktuelle Zeit ermitteln

Eine spezielle Zeitangabe alstime-Objekt repräsentieren

Stunde, Minute, Sekunde und Mikrosekunde ausgeben

10.1.4Zeitdifferenzen und die Klasse timedelta

Einfache Datumsarithmetik

10.1.5Berechnungen

Monatslänge bestimmen

Länge des Jahrs bestimmen

Schaltjahr bestimmen

10.1.6Formatierung und Parsing

Die Methodestrftime()–datetime-Objekt zu String

Die Methodestrptime()– String zudatetime

10.2Praxisbeispiel: Kalenderausgabe

Vorüberlegungen

Lösung

Tipp: Hilfsmethoden und richtige Strukturierung

Prüfung

10.3Aufgaben und Lösungen. 10.3.1Aufgabe 1: Wochentage

Lösung

10.3.2Aufgabe 2: Freitag, der 13

Lösung

10.3.3Aufgabe 3: Mehrmals Freitag, der 13

Beispiele

Lösung

10.3.4Aufgabe 4: Schaltjahre

Beispiele

Lösung

11Praxisbeispiel: Tic Tac Toe

11.1Spielfeld initialisieren und darstellen

Spielfeld initialisieren

Spielfeld darstellen

11.2Setzen der Steine

11.3Prüfen auf Sieg

Grundgerüst

Baustein 1: Prüfung auf drei gleiche Symbole

Baustein 2: Prüfung der Horizontalen und Vertikalen

Baustein 3: Prüfung der Diagonalen

11.4Bausteine im Einsatz

Zwischenfazit

Bonus

Mögliche Erweiterungen

12Praxisbeispiel: CSV-Highscore-Liste einlesen

12.1Verarbeitung von Spielständen (Highscores)

Einlesen der Highscores

12.2Extraktion der Daten

12.3Besonderheiten der Implementierung. Behandlung von Fehlern beim Öffnen der Datei

Behandlung von Leerzeilen und Kommentaren

Ignorieren von unvollständigen Eingaben

Auswertung der Informationen

13Praxisbeispiel: Worträtsel

13.1Applikationsdesign – Vorüberlegungen zur Strukturierung

13.2Einlesen der verfügbaren Wörter

Exemplarische Datei mit Wörtern

Implementierung der KlasseWordImporter

13.3Hilfsdatenstrukturen

13.4Datenmodell

13.4.1Datenspeicherung und Initialisierung

13.4.2Zufällige Wahl von Richtung, Position, Wort und Buchstabe

13.4.3Algorithmus zum Verstecken von Wörtern

13.4.4Wort prüfen und platzieren

Weitere Hilfsmethoden und Auffüllen mit zufälligen Buchstaben

13.5HTML-Erzeugung

13.6Ausgabe als HTML und Darstellung im Browser

13.7Hauptapplikation

13.8Fazit

14Gute Angewohnheiten

14.1Grundregeln eines guten Programmierstils

14.1.1Keep It Human-Readable

14.1.2Keep it Understandable

Beispiel 1

Beispiel 2

Blockkommentare in Listings

14.2Coding Conventions

14.2.1PEP 8 – Coding Standard

Tooling

Ergänzendes Tooling

14.2.2Zen of Python

14.2.3Namensgebung

Vermeide Namenskürzel

Vermeide Variablennamen, die nur den Typ wiederholen

Verwende sinnvolle, konsistente Namen

Hinweis: Vorteil sprechender Namen

14.2.4Dokumentation. Vermeide Kommentare, die nur den Ablauf beschreiben

14.2.5Programmdesign. Prüfe Rückgabewerte und behandle Fehlersituationen

Beachte die maximale Funktionslänge von ca. 30–50 Zeilen

Beachte die maximale Klassenlänge von ca. 500–1000 Zeilen

14.2.6Parameterlisten. Halte die Parameterliste kurz

Halte die Reihenfolge von Parametern bei Methodenaufrufen konsistent

14.2.7Logik und Kontrollfluss. Vermeide expliziteTrue-/False-Literale inif-/while-Anweisungen

14.3Auch ans Testen denken

14.3.1Das Pytest-Framework

Installation von Pytest

14.3.2Schreiben und Ausführen von Tests

Beispiel: Ein erster Unit Test

Ausführen von Tests

Ausführen von Tests auf der Konsole

Ausführen von Tests aus der IDE

15Schlusswort

Persönliche Bitte

Weiterführende Literatur zu Python

Weiterführende Literatur zu Algorithmen und Datenstrukturen

Weiterführende Literatur zu Pytest

ASchlüsselwörter im Überblick

A.1Schlüsselwörter im Überblick

BSchnelleinstieg Python-REPL

B.1Python-REPL

Einführendes Beispiel

Weitere Kommandos und Möglichkeiten

Komplexere Aktionen

Beenden des Python-Kommandozeileninterpreters

CWesentliche Neuerungen aus Python 3.10 im Kurzüberblick

C.1Fehlermeldungen

C.1.1Fehlermeldungen bei Zuweisungen

Python 3.9.x

Verbesserung mit Python 3.10

C.1.2Fehlermeldungen bei unvollständigen Strings

Python 3.9.x

Verbesserung mit Python 3.10

C.2Fallunterscheidungen mit match

Python 3.9.x

Verbesserung mit Python 3.10

Kombination von Werten

Komplexeres Matching I

Komplexeres Matching II

C.3Verschiedenes. C.3.1Verbesserungen bei Kontextmanagern

Verbesserung mit Python 3.10

C.3.2Verbesserungen der Performance

C.3.3Erweiterung bei zip() Python 3.9.x

Verbesserung mit Python 3.10

C.3.4Verbesserungen bei Typprüfungen

Python 3.9.x

Verbesserung mit Python 3.10

Tipp: Interessantes Video zu den Neuerungen in Python 3.10

Literaturverzeichnis

Fußnoten. 1Einführung

2Schnelleinstieg

3Strings

4Klassen und Objektorientierung

5Collections

6Ergänzendes Wissen

8Verarbeitung von Dateien

9Fehlerbehandlung mit Exceptions

12Praxisbeispiel: CSV-Highscore-Liste einlesen

Index

Отрывок из книги

Dipl.-Inform. Michael Inden ist Oracle-zertifizierter Java-Entwickler. Nach seinem Studium in Oldenburg hat er bei diversen internationalen Firmen in verschiedenen Rollen etwa als Softwareentwickler, -architekt, Consultant, Teamleiter, CTO sowie Leiter Academy gearbeitet. Zurzeit ist er freiberuflich als Autor und Trainer in Zürich tätig.

Michael Inden hat über zwanzig Jahre Berufserfahrung beim Entwurf komplexer Softwaresysteme gesammelt, an diversen Fortbildungen und mehreren Java-One-Konferenzen teilgenommen. Sein besonderes Interesse gilt dem Design qualitativ hochwertiger Applikationen sowie dem Coaching. Sein Wissen gibt er gerne als Trainer in internen und externen Schulungen und auf Konferenzen weiter, etwa bei der JAX/W-JAX, JAX London, Oracle Code One, ch.open sowie bei der Java User Group Switzerland.

.....

6.9.2Aufgabe 2: Temperaturumrechnung

6.9.3Aufgabe 3: Palindrom-Prüfung mit Rekursion

.....

Добавление нового отзыва

Комментарий Поле, отмеченное звёздочкой  — обязательно к заполнению

Отзывы и комментарии читателей

Нет рецензий. Будьте первым, кто напишет рецензию на книгу Kanban
Подняться наверх