// der php hacker

// archiv

10 Tipps für bessere Software

Geschrieben am 31. Dez 2008 von Cem Derin

Pünktlich zum Ende des Jahres noch ein paar Tipps, wie eure Software im nächsten Jahr vielleicht etwas besser wird. Der ein oder andere wird diese Faustregeln teilweise oder komplett schon kennen und verinnerlicht haben, aber es nochmal erwähnen kann nicht schaden.

1. The first R: Review

Ja, in der Tat. Hier steht nicht “Refactor early, refactor often” sondern meiner Meinung nach der erste Grundsatz für jeden Quellcode: Reviews. Wer von uns kann schon behaupten täglich 8 Stunden lang fehlerfreie Software am Stück zu produzieren? Hand auf’s Herz: Niemand! Daher ist Code Review ein wesentlicher bestandteil in einem erfolgreichen Releasezyklus.

Profiler können Anhaltspunkte liefern, wo sich Bottlenecks verstecken. Fehleranfällige Bereiche sollten genauer unter die Lupe genommen werden. Joan hat darüber hinaus einen recht interessanten Artikel in Petto.

2. The second R: Refactor

Der zweite Schritt besteht darin, suboptimale Stellen im Code neu zu schreiben, zu vereinfachen, zu verkürzen und die anderen Regeln anzuwenden. Eine einzelne lange Methode sollte in mehrere kleine Aufgeteilt werden. Sich wiederholende Stellen sollten auf jeden Fall generalisiert und ausgelagert werden. Wer sich in Sachen Refactoring für lau Schulen will, sollte einen Blick auf diesen Aufsatz werfen.

3. The third R: Reuse

Der einzige Weg um wirklich Schwächen (aber auch Stärken) in Software auszumachen, ist die Software einzusetzen. Und um sich arbeit zu sparen und bestehenden Code zu härten sollte man tunlichst darauf achten, bereits geschriebenen Code erneut einzusetzen. Dahingehend ist das erstellen eines eigenen Frameworks nicht verkehrt. Aber nicht Tipp 7 vergessen: Don’t reinvent the wheel!

4. Generalize / Abstract

Wenn dir auffällt, dass du bestimmte Abläufe immer und immer wieder neu programmierst, generalisiere das ganze und verfrachte es in eigene Methoden. Fang dabei so grob wie nur möglich an, und verfeiner das ganze, bis du einen Grad erreichst, an dem du alles abdecken kannst, was du vorher immer wieder neu niedergeschrieben hast.

5. OOP

Uh, yeah. Ich weiß. Buzzword. Aber auch nicht so wirklich. Buzzt ja jetzt auch schon eine ganze Weile in der PHP-Welt. Und außerhalb davon sogar schon ein alter Hut. Trotzdem hier zu erwähnen. Der Einsatz (Berichtigung: der korrekte Einsatz) der Objektorientierten Programmierung ist nicht nur ein wesentliches Qualitätsmerkmal, sondern sorgt ganz nebenbei auch noch dafür, die anderen Tipps hier viel leichter beherzigen zu können. Wer objektorientiert arbeitet, dem drängt sich das Reuse-Paradigma geradezu auf.

6. Test

Teste deine Software. Laufend. Am besten entwickle testgetrieben! Beherzige Punkt 7 und verwende Test-Frameworks. Selenium und SimpleTest sind zwei gute Anlaufstellen. Solltest du das Zend Framework benutzen, so wirf ruhig mal einen Blick auf das Zend_Test Paket.

7. Don’t reinvent the wheel. Above all don’t reinvent the square wheel!

Das Rad neu zu erfinden birgt eine Reihe von Tücken: Man wird den Prozess, den andere vor einem gemacht haben wieder durchgehen müssen. Man wird aller Wahrscheinlichkeit nach eine schwache Kopie erzeugen. Und wenn alles schief läuft, baut man sogar was nach, was sich eigentlich gar nicht bewährt hat. Es ist nicht verwerflich als Entwickler auf Bibliotheken zurückzugreifen Warum auch? Genau dafür wurden sie geschrieben. Falls man flexibel bleiben will: Man kann immer noch ableiten und sich so unabhängig machen.

8. Lesen, bilden, verstehen, up to date bleiben

Wie sagt man so schön?

Wer glaubt etwas zu sein, hat aufgehört etwas zu werden.

Man kann ein guter Softwareentwickler sein. Wenn man sich aber auf diesen Lorbeeren ausruht, wird das nicht lange der Fall sein. Es ist wichtig ständig auf dem neusten Stand zu sein. Tim O’Reilly und ein paar andere haben dazu einen längeren Text verfasst, wie faul manche Menschen sind, Dinge zu erlernen, und wie Sie lieber bei dem bleiben, was sie schon können. Ein fataler Fehler in der Welt der Softwareentwicklung.

Vor allem aber der Einsatz von fertigen Frameworks, Bibliotheken oder Snippets kann dazu führen, irgendwann zu stagnieren. Hier ist es besonders wichtig unter die Haube zu schauen, die Logik zu begreifen, zu verinnerlichen. Und immer vor Augen halten: Egal wie gut du bist, es gibt immer einen der besser ist.

9. Die early

Unsaubere Fragmente im Code nie, nie, nie umgehen, auskommentieren, ausblenden oder anders unter den Teppich kehren. Im Gegenteil: Den Fehler in der Entwicklung hervorheben, sich damit so richtig selbst auf die Nerven gehen. Diese Stelle muss ausgebessert werden. Sie hat offensichtlich alle anderen Tipps überlebt und ist somit ein äußerst hartnäckiger Kandidat. Falls du Kollegen hast, einfach mal mit diesen über das Problem sprechen, ggf. auch mal andere Leute auf die Stelle gucken lassen. Wenn diese Stelle das ganze System blockt ist es ein Grund mehr, sie so schnell wie möglich auszubessern.

10. Have fun

Sollte eigentlich an erste Stelle. Die beste Software schreibt man, wenn man dabei Spaß hat!

Guten Rutsch, euch :-)

Geschrieben in Entwicklung 2 Kommentare
#001
04. Jan 2009

[...] werden. Konkret habe ich derzeit nur eine im Kopf: “Tipps”. Am 31.12.08 habe ich “10 Tipps für bessere Software” zusammengetragen. Das ist ein so schön einprägendes Datum, daher werde ich ab sofort am [...]

#002
31. Jan 2009

[...] dem schon vorgestellten Prinzip beim erstellen von Software bezeichnet das “frühe Sterben” in puncto Sicherheit, dass man so viele Fehler wie [...]

// kommentieren

// senden
theme von mir, software von wordpress, grid von 960 grid system. funktioniert in allen browsern, aber der safari bekommt das mit der schrift am schönsten hin.