Refactoring und Compiler-Optimierung haben etwas gemeinsam: Optimierung des Codes unter Beibehaltung des Verhaltens. Die Optimierungsziele sind unterschiedlich (Wartbarkeit vs. Performance), aber das streng formale Vorgehen eines Compilers kann uns beim Refactoring inspirieren.
Interessant ist hier insbesondere die Fähigkeit moderner Compiler imperativen Code in funktionalen Code umzuwandeln und diesen zu optimieren. Diese Möglichkeit steht uns auch als Entwickler offen.
Dieser Vortrag erläutert, wie man Programme ähnlich wie ein Compiler transformieren kann. Die sich daraus ergebenden Refactorings werden in Form einer Refactoring-Kata präsentiert.
Stefan arbeitet als agiler Fullstack-Software-Entwickler bei andrena objects ag mit Schwerpunkt bei Clean Code und Automatisierten Tests. Abseits der alltäglichen Arbeit entwickelt er verschiedene Bibliotheken, die sich mit Compilerbau und Metaprogrammierung befassen.