Facebook
Twitter
Google+
Kommentare
5

Professional Refactoring

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

5 Comments

  1. Ich bin mir nicht sicher wo ran es liegt, aber ich kann weder in Opera, noch im IE oder FF den Full Screen Modus aktivieren – das ist stpätestens bei den Codebeispielen ein wenig schade – wäre schön, wenn man das beheben könnte …

    Reply
  2. Ja, nettes Beispiel – ABER: der Code der im Refactoring gezeigt wurde ist eigentlich bereits erstaunlich sauber.

    Dabei war am Anfang noch die Rede von: „no coding standards, no documentation, no template system, nobody cared about security, often changed, never refactored“. Davon sieht man anschließend leider gar nichts mehr!

    Jetzt lass dich mal nicht lange bitten, sondern mach deine Trickkiste auf.

    Greif doch die eigenen Worte wieder auf: man nehme einen wilden Mix aus HTML+JS+CSS+PHP ohne Dokumentation, keine sprechenden Variablen, bunte Mischung aus Deutsch und Englisch, Copy&Paste-Programmierung und alles ohne OOP. Vielleicht wurden als „Sahnehäubchen“ noch „Funktionen“ über include(„foo.php“) realisiert? Register-globals gehört natürlich auch dazu.

    Wie wäre es dazu noch mit einem klassischen Datenbankchaos? Falsch verwendete Datentypen, Inkonsistenzen, unklare Kardinalitäten, keine Fremdschlüssel. Natürlich als Folge davon ellenlange SQL-Abfragen, von denen keiner weiß, warum sie 240 Sekunden lang laufen, um 200 Datensätze zu holen.

    Also: dann lass dich nicht lange bitten und tue ein bisschen Butter bei die Fische! Wie analysierst du einen großen Haufen Matsch und wie räumst du danach den Saustall auf? Welche Methoden benutzt du zur Code-Analyse und Reverse-Engineering? CodeSniffer? Copy&Paste-Erkennung? Wertebereichsanalyse und (Re-)Migration der Daten? Suche über RegEx?

    Variablen umbenennen, Methoden und Klassen zerlegen, Kohäsion und Kopplung: diese Einstiegsdrogen bekommen wir überall geboten.

    Unser erstes Problem ist schon mal, dass wir den Chef überzeugen müssen, dass ein Refactoring notwendig ist, obwohl es Geld kostet und das Programm hinterher nicht anders aussieht oder funktioniert als vorher. Ja, was noch viel schlimmer ist: er dafür auch keine Rechnung stellen kann.

    Wie reagierst du, wenn die BWLer im Management dir sagen: „Aber warum denn – es hat doch all die Jahre gut funktioniert!“

    Reply
  3. Hi Tom,

    dein Kommentar ist echt gut. 🙂

    Tools, die wir verwenden sind u.a. der PHP_CodeSniffer, phploc, phpcpd, den PHP_CodeBrowser, Padawan und den Zend Code Analizer. Ganz wichtig ist auch Zeit und Mut, auch mal über längere Zeit schlechten Code noch zu behalten, bis man eine sinnvolle Verbesserung hat. Refactoring dauert einfach und geht nur in kleinen iterativen Schritten.

    Viele Grüße
    Thorsten

    P.S.: Der Talk war von mir. 😉

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen