Beiträge
Verständnis beginnt mit aussagekräftigen Namen
30. September 2019 • 4 min Lesezeit
2018 bin ich mitten in der Entwicklung in ein großes Projekt eingestiegen. Die ursprünglichen Ingenieure waren weitergezogen und hinterließen verwickelten und undokumentierten Code. Die Arbeit mit dieser Art von Code ist eine Herausforderung, da man nicht zwischen der Infrastruktur und der Geschäftslogik unterscheiden kann. Dies macht das Debuggen schwierig und Änderungen unvorhersehbar, da man die Auswirkungen nicht kennt. Es ist wie der Versuch, ein Buch zu bearbeiten, ohne die Wörter zu verstehen.
Viele Ingenieure glauben, dass der Erfolg darin gemessen wird, wenn der Code kompiliert. Ich glaube, es ist dann, wenn ein anderer Ingenieur (oder Sie in sechs Monaten) das „Warum” Ihres Codes versteht. Die ursprünglichen Ingenieure behinderten die zukünftigen Ingenieure, indem sie nicht dokumentierten und obskure Namen verwendeten. Die Namen sind manchmal das einzige Fenster in den Gedankenprozess des vorherigen Ingenieurs.
Donald Knuth sagte berühmterweise:
Programme sollen von Menschen gelesen werden und nur nebenbei von Computern ausgeführt werden. – Donald Knuth
Benennung
Benennung ist schwierig, da sie das Kennzeichnen und Definieren erfordert, wo und wie ein Teil in eine Anwendung passt.
Phil Karlton, damals bei Netscape, beobachtete:
Es gibt nur zwei schwierige Dinge in der Informatik: Cache-Invalidierung und die Benennung von Dingen.
— Phil Karlton
Wir sehen unseren Code durch die Linse der Wörter und Namen, die wir verwenden. Namen schaffen eine Sprache für den nächsten Ingenieur zum Verständnis. Diese Sprache malt ein Bild davon, wie der Autor die Geschäftsdomäne und die Programmiersprache verbunden hat.
Ludwig Wittgenstein, ein Philosoph in der ersten Hälfte des 20. Jahrhunderts, sagte:
Die Grenzen meiner Sprache bedeuten die Grenzen meiner Welt. – Ludwig Wittgenstein
Die Sprache unserer Software ist nur so aussagekräftig wie die Namen, die wir verwenden, und die Verwendung vager Namen verschwimmt den Zweck der Software; die Verwendung aussagekräftiger Namen bringt Klarheit und Verständnis.
Stellen Sie sich vor, Sie besuchen ein Land, dessen Sprache Sie nicht sprechen. Eine einfache Anfrage wie die Frage, die Toilette benutzen zu dürfen, führt zu verwirrten Blicken. Die Unfähigkeit zu kommunizieren ist frustrierend, vielleicht sogar beängstigend. Ein Ingenieur fühlt sich genauso, wenn er mit verwirrenden, unklar oder noch schlimmer, irreführenden Namen konfrontiert wird.
Dieses Gefühl wird am besten erlebt.
Erfahrung
Untersuchen Sie das erste Code-Snippet. Was macht dieser Code? Was ist das „Warum”?
Nehmen Sie sich Zeit.
public class StringHelper
{
public string Get(string input1, string input2)
{
var result = string.Emtpy;
if(!string.IsNullOrEmtpy(input1) && !string.IsNullOrEmtpy(input2))
{
result = $"{input1} {input2}";
}
return result;
}
}
Der obige Code ist eine einfache Verkettung von zwei Strings. Was der Code nicht sagt, ist das „Warum”. Das „Warum” ist so wichtig, ohne es ist es schwierig, das Verhalten zu ändern, ohne die Auswirkungen zu verstehen. Natürlich wird die Untersuchung der Verwendung des Codes wahrscheinlich sein „Warum” offenbaren, aber das ist der Punkt. Sie sollten nicht den Zweck des Codes entdecken müssen, stattdessen sollte der Autor Hinweise hinterlassen haben, es ist ihre Verantwortung, dies zu tun.
Lassen Sie uns den Code erneut überprüfen, aber mit ein wenig „Warum” darin verstreut.
Nehmen Sie sich wieder Zeit und beobachten Sie den Unterschied, den Sie beim Lesen dieses Codes fühlen.
public class FirstAndLastNameFormatter
{
public string Concatenate(string firstName, string lastName)
{
var fullName = string.Emtpy;
if(!string.IsNullOrEmtpy(firstName) && !string.IsNullOrEmtpy(lastName))
{
fullName = $"{firstName} {lastName}";
}
return fullName;
}
}
Das „Warum” bringt den Code zum Leben, es gibt eine Geschichte zu lesen.
Kommunizieren
Die Kommunikation der Absicht und des Designs an den nächsten Ingenieur ermöglicht es der Software, zu leben und zu wachsen, denn wenn Ingenieure die Software nicht ändern können, stirbt sie. Dies ist eine Tragödie, noch mehr, wenn sie das Ergebnis schlechten Designs und mangelnder Aussagekraft ist – beides ist mit Wissen vermeidbar.
Tun Sie dem nächsten Ingenieur einen Gefallen und seien Sie aussagekräftig in Ihrem Code. Verwenden Sie aussagekräftige Namen und erfassen Sie das „Warum”, denn wer weiß, der nächste Ingenieur könnten Sie sein.
Autor: Chuck Conway ist ein KI-Ingenieur mit fast 30 Jahren Erfahrung in der Softwareentwicklung. Er entwickelt praktische KI-Systeme – Content-Pipelines, Infrastruktur-Agenten und Tools, die echte Probleme lösen – und teilt seine Erkenntnisse unterwegs. Verbinden Sie sich mit ihm in den sozialen Medien: X (@chuckconway) oder besuchen Sie ihn auf YouTube und auf SubStack.