am 3. Februar 2010
Den heutigen Tag widmen wir mal wieder einem Programmierparadigma. Separation of Concerns. Klingt es komisch, wenn ich sage, dass es wahrscheinlich das einfachste und zugleich schwierigste Paradigma ist? Ich denke schon.
Fangen wir mal mit der einfachen Seite an. Separation of Concencs (SOC) bedeutet eigentlich nur, dass Funktionalitäten klar voneinander getrennt sind. Konsequenz daraus ist zum Beispiel, dass jede Methode nur genau eine Sache macht. Wenn man diesen Ansatz konsequent verfolgt, steigt auch die Wiederverwendbarkeit der Komponenten. Klingt einach? Finde ich auch. Nur warum zum Teufel beachtet das niemand?
Fast immer wenn ich fremden Code reviewe, finde ich Stellen, an denen es nicht beherzigt wurde kleine Trennungen von Aufgaben zu gewährleisten. Scheint also doch nicht so einfach zu sein ein Gespür dafür zu entwickeln, wann ich denn jetzt SOC betreiben sollte. Mein Fluchen von vorhin war übrigens eher theatralisch gemeint, ich habe früher ja selbst das “Gespür” dafür nicht gehabt. Einigen wir uns also drauf, dass es vielleicht doch nicht so einfach ist.
Was mir immer geholfen hat bei diesem Thema ist eine ganz spezielle Frage. Wo würdest du diese Funktionität vermuten, wenn du sie noch mal brauchen würdest? Am besten dabei in einen anderen Entwickler versetzen. Wenn du ganz bestimmt nicht an der Stelle danach Ausschau halten würdest, an der du es jetzt programmiert hast, dann ist es mit Sicherheit die falsche Position.
Separation of concerns
Den heutigen Tag widmen wir mal wieder einem Programmierparadigma widmen. Separation of
Concerns. Klingt es komisch, wenn ich sage, dass es wahrscheinlich das einfachste und
zugleich Schwierigste Paradigma ist? Ich denke schon.
Fangen wir mal mit der einfachen Seite an. Separation of Concencs (SOC) bedeutet eigentlich
nur, dass Funktionalitäten klar voneinander getrennt sind. Konsequenz daraus ist zum
Beispiel, dass jede Methode nur genau eine Sache macht. Wenn man diesen Ansatz konsequnt
verfolgt, steigt auch die Wiederverwendbarkeit der Komponenten. Klingt einach? Finde ich
auch. Nur warum zum Teufel beachtet das niemand?
Fast immer wenn ich fremden Code reviewe finde ich stellen, an denen es nicht beherzigt
wurde kleine Trennungen von Aufgaben zu gewährleisten. Scheint also doch gar nicht so
einfach zu sein ein Gespür dafür zu entwickeln, wann ich denn jetzt SOC betreiben sollte.
Mein Fluchen von vorhin war übrigens eher theatralisch gemeint, ich habe früher ja selbst
das “Gespür” dafür nicht gehabt. Einigen wir uns also drauf, dass es vielleicht doch nicht
so einfach ist.
Was mir immer geholfen hat bei diesem Thema ist eine ganz spezielle Frage. Wo würdest du
diese Funktionität vermuten, wenn du sie noch mal brauchen würdest? Am besten dabei in einen anderen Entwickler versetzen. Wenn du ganz bestimmt nicht an der Stelle danach ausschau halten würdest, an der du es jetzt programmiert hast, dann ist es mit Sicherheit die falsche Position.