So findest Du den richtigen Anfang

Dieser Artikel ist die Antwort auf die Frage von Björn (per E-Mail). Vielen Dank dafür!

Hallo,

bei mir liegen die Schwierigkeiten bei den ersten Schritten, die ersten Zeilen Sourcecode eines jeden Programms. Was wird alles benötigt, womit fang ich an? Wie sauber und genau muss am Anfang bereits die Strukturierung durchdacht sein?

Vielleicht gibt es dazu spezielle Themen die sie behandeln können, mir wäre es auf jeden Fall eine Hilfe!

Viele Grüße

Das „leere Blatt“

Maler und Künstler kennen es: Ein leeres Blatt kann einschüchtern. Ein leerer Editor kann das auch. Die gähnende Leere bietet schier endlos viele Lösungsansätze. Für jedes Problem, jede Aufgabe und jede Anforderung. Wo fängst Du also an? Jede Reise beginnt mit dem ersten Schritt. Trotzdem: Die Frage beschäftigt nicht nur Anfänger. Auch erfahrene Entwickler hauen nicht einfach wild in die Tasten. Was zuerst benötigt wird, ist ein Konzept. Und sei es nur grob. Wo fängst Du also bei der Entwicklung an? Am besten auf einem Zettel! Ich zeige Dir Ansätze, mit denen Du immer den richtigen Einstieg findest.

Gut geplant ist halb gewonnen

Ok. Soweit, so gut. Der erste Schritt besteht also darin ein Konzept zu entwerfen. Doch wie sieht das aus. Was genau ist es? Grundsätzlich gibt es darauf nicht die eine passende Antwort. Trotzdem stelle ich einige Varianten vor.

Eine Struktur soll vorab vor allen Dingen helfen, bei der Entwicklung unterstützen. Ziel ist die fertige Software. Die Anforderungen müssen erfüllt werden. Immer die wichtigste Aufgabe einer Softwarelösung. Gleichzeitig muss sie auch noch anpassbar bleiben. Erweiterungen und Modifikationen kommen früher oder später. Eine „fertige“ Software gibt es eigentlich nicht. Es gibt immer nur „fertige“ Versionen.  Software ist lebendig.

Und hier kommt das Konzept ins Spiel. Plan die benötigten Teile und Elemente vor der Implementierung! Dann kannst Du sie noch einfach verändern, Aufgaben umverteilen und Beziehungen neu ordnen. Spiel verschiedene Szenarien durch und behalte immer die Austauschbarkeit einzelner Teile im Hinterkopf.

1. Planen auf dem Zettel

Die einfachste Methode ist eine grobe Struktur auf einem Zettel zu malen. Klingt ziemlich altmodisch? Ist aber aus meiner Erfahrung noch immer der schnellste Weg. Gerade Diagramme lassen sich auf einem Zettel viel schneller zeichnen als mit jeder Software. Und – es geht intuitiver.

Zeichne einfach die beteiligten und verwendeten Entitäten auf und zeichne die Beziehung und Interaktionen mit Pfeilen und Strichen ein. Ein Bespiel: Eine Benutzeranmeldung ist ein Teilbereich Deiner Software. Du willst genau diesen jetzt implementieren, und brauchst einen Einstieg.

Du brauchst also verschiedene Entitäten: mindestens die Datenbank. Darin gibt es die Tabelle mit Benutzern. Eine Datenbank-Klasse ruft Daten ab. Die Benutzerklasse repräsentiert den Datensatz in der Software. Eine Adapterklasse wird dann für die Authentifizierung verwendet. Ganz simpel aufgemalt sieht es wie folgt auf:

konzept-auf-papier

Das ist natürlich nur ein Beispiel. Um die exakte Bedeutung hinter den Verbindungen geht es gar nicht. Aber: es ist ein erstes Konzept. Und darum geht es. Erstell einen Plan. Den kannst Du „unterwegs“ verfeinern. Ein Sprichwort sagt:

No plan survives contact with the enemy.

Das bedeutet aber nicht, das ein Plan überflüssig ist. Viel mehr ist er der Anfang. In der Praxis muss Du ihn anpassen, verbessern und die vorliegende Realität adaptieren. Du kannst gleichermaßen auch mit einer Software Diagramme erstellen. Das ist aber nicht unbedingt leichter. Wenn Du jede Funktion erst suchen musst, hält es Dich nur auf. Änderungen sind ebenfalls nicht automatisch leichter. Die Idee bleibt allerdings die gleiche.

2. Implementierung des Diagramms

Wir reisen erster Klasse: Die Implementierung, also die Umsetzung mit einer konkreten Programmiersprache, beginnt dann von außen nach innen. Du kannst z.B. erst einmal die notwendigen Klassen erstellen. Die kannst Du oben wunderbar erkennen. Alle Entitäten in denen „PHP“ steht, würde ich ich nun als Klasse erstellen. Wie gesagt, halt Dich nicht so sehr an meinem konkreten Entwurf auf. Wichtiger ist die Idee dahinter.

Was jetzt kommt, hat Methode: Vorteil der Objektorientierung: Sobald Du die Klassen für Dein Problem erstellt hast, kommen die Methoden. Du brauchst nur die Methodenaufruf kennen und was sie zurückgibt. Über die Implementierung einzelner Methoden machst Du Dir später Gedanken. Fragen

Wie arbeiten die erstellen Objekte zusammen? Wo muss etwas aufgerufen werden? Alle Methoden sowie deren Aufrufe kannst Du bereits implementieren. Ggf. ein paar Kommentare hinzufügen und die Methoden und deren Parameter dokumentieren.

Der Teufel steckt im Detail: Erst im letzten Schritt werden die Methoden selbst implementiert und mit Logik gefüllt. Dabei muss nur gewährleistet bleiben, dass Aufruf, Parameter und Rückgabewerte eingehalten werden. Sonst funktionieren Methodenaufrufe ggf. nicht mehr. In der Realität wird auch dies mal vorkommen. Wichtig nur: alle Aufrufe anpassen.

 

 

Schreib einen Kommentar

Your email address will not be published.