Code Smells – erste Anzeichen für ein nötiges Refactoring

Im Blog von JetBrains hat Trisha Gee schon eine ganze Artikelserie zum Thema „Code Smells“ veröffentlicht, die mit diesem Beitrag beginnt: Code Smells: Null. „Riechender Code“ (oder besser stinkender Code) deutet darauf hin, dass ein Refactoring angesagt ist. Der Begriff wurde durch Kent Beck im Buch Refactoring* von Martin Fowler (das meiner Meinung nach jeder Softwareentwickler gelesen haben sollte) eingeführt. Immer wenn seine Oma bei Babys etwas roch, war es Zeit, die Windeln zu wechseln. Und das übertrug er dann auf Code: Immer wenn Code seltsam aussieht (riechen kann man ihn ja schlecht), sollte man darüber nachdenken, wie man ihn optimieren könnte.

Martin Fowler - Refactoring: Improving the Design of Existing Code (Affiliate)*

Die „klassischen“ Code Smells sind z.B. doppelter Code oder lange Methoden. Trisha Gee behandelt in ihrer Artikelreihe allerdings Dinge, die für viele Entwickler alltäglich sein dürften: null, if-Statements, Iterationen. Sie zeigt an umfangreichen Beispielen, warum der Code optimiert werden könnte und auch wie man dies tun kann. Dabei wird ab und an etwas Werbung für die Java-IDE IntelliJ eingestreut, die viele Refactorings automatisiert durchführen kann, aber auch für Entwickler, die nicht die JetBrains-IDE nutzen, sind viele wertvolle Ideen dabei.


Welche Code Smells begegnen dir in der Praxis häufig? Und welche hinterlässt du vielleicht sogar für deine Kollegen? 😉

Probeabo bei Audible (Affiliate)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax