Refactoring-Tipps und -Erfahrungen gesucht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Refactoring-Tipps und -Erfahrungen gesucht

    Ich will eine große Bibliothek um Ballast entfernen, Funktionsnamen (der Kompatibilität halber) mit einem Präfix versehen, Variablen umbenennen und so weiter. Die Bibliothek dient als Basis für diverse größere Anwendungen, die ich gleichzeitig ebenfalls portieren muß.

    Mein Refactoring-Workflow besteht im Moment im Grunde aus einem geöffneten Notepad, in den ich während der Arbeit Dinge reinschreibe wie "load_image() wird zu xyz_load_image()", "$application->settings["xyz"] wird zu $application->settings["abc"]" und so weiter; danach folgt dann eine lange Search & Replace-Sitzung, um die abhängigen Applikationen zu portieren.

    Solange es kein supergeiles automatisiertes Refactoring-Tool für PHP gibt (Mir ist keins bekannt), wird da auch grundsätzlich kein Weg drumrumführen, aber dieses Vorgehen ist natürlich sehr mühsam und Fehleranfällig. Man muß dauernd mitdenken, nach Notations-Abweichungen suchen, und so weiter.

    Deshalb die Frage: Wie macht ihr sowas? Habt ihr Tools, um Teilaspekte dieser Arbeit zu vereinfachen? Wie prüft ihr komplexe Projekte auf syntaktische Korrektheit, ohne gleich die volle Palette an Unit-Tests aufzufahren - lohnt es sich allein dafür, sich mit PHP-Compilern auseinanderzusetzen? Gibt es Normen, um Syntaxänderungen zu dokumentieren und damit den Refactoring-Prozeß zu erleichtern?

    Ich habe in dem Bereich noch einige Arbeit vor mir und bin deshalb für erleichternde Tipps sehr dankbar!

  • #2
    Re: Refactoring-Tipps und -Erfahrungen gesucht

    Ich nutze die Todo-Tags, in denen ich kurz festhalte, was gemacht werden muss (i.d.R. geht das über Umbenennungen hinaus, meistens wird die Methode komplett verschoben, oft allerdings auch aufgeteilt und in verschiedene andere Klassen und Objekte gelegt).

    Der Vorteil ist: Eclipse zum Beispiel hat direkt einen Browser zum Auflisten der ToDo-Tags innerhalb der offenen Projekte.

    Tools um diesen Prozess zu automatisieren sind derzeit noch nicht erhältlich - jedenfalls keine, die nicht auf bestimmte Vorgaben gemünzt sind. Und diese sind auch nicht öffentlich ;-)

    Um Allerdings Code-Konventionen zu prüfen gibt es eine Reihe von Tools. Sebastian Bergmann hat da eine Menge Sachen für QA-Geschichten gebastelt (auf phphatesme.com wurde die Tage die Copy&Paste-Detection vorgestellt).

    Die kann man sowohl aktiv während der Entwicklung einsetzen, als auch in den Deploy-Prozess einbauen.

    Zu empfehlen ist an dieser Stelle auch das Buch: http://martinfowler.com/books.html#refactoring
    Zuletzt geändert von unset; 11.04.2009, 12:58.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Todo-Tags nutze ich schon, einen Browser dafür zu haben wäre natürlich cool... Die Sachen von Sebastian Bergmann sehen interessant aus, werd ich mir mal anschauen!

      Kommentar


      • #4
        In Eclipse ist das der View "Tasks".
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar

        Lädt...
        X