Hallo,
um mich der hier stattfindenden Diskussion anzuschließen, die Frage nach
gutem Code habe ich in den nun bald 25 Jahren meiner Tätigkeit als Programmierer immer wieder mit Kollegen in der Realität diskutiert.
Zusammenfassend kann ich dazu nur sagen, abgesehen von der objektiven Bewertung der Programmierkünste einer Person ob er/sie die Grundzüge der Sprache kennt (Möglichkeiten, Philosophie, Entwicklung bzw. Abstammung und Historie), ist die Frage nach
gutem Code vor allem eine äußert subjektive Frage, vergleichbar mit dem Musikgeschmack.
Im Wesentlichen kommt es IMO darauf an, dass der Programmierer von seiner Persönlichkeit und seinem Arbeitsstil in das Team bzw. zu der Aufgabenstellung passt. Daher ein SAP-Programmierer wird wohl kaum in ein Team von Spiele-Programmierern zu integrieren sein.
Darüber hinaus bewerten die meisten andere Programmierer genau danach wie es hier geschehen ist. Sie vergleichen den eigenen meist autodidaktisch angeeigneten Programmierstil mit dem des anderen und betrachten dabei ihren eigenen Programmierstil in der Regel als den überlegenen. Nach meiner Erfahrung ist es allerdings auch so, dass je enger (intoleranter) hier die Grenzen gezogen werden desto weniger Erfahrung liegt bei der entsprechenden Person vor. Ansonsten gilt auch beim Programmieren: viele Wege führen nach Rom.
Gerade bei einer mit C verwandten Sprache gibt es häufig schon rein aus der Syntax heraus eine Menge Lösungswege. Oder ist es etwa schlecht die Syntax der Sprache voll auszunutzen auch auf die Gefahr hin, dass Andere die Zeile 2 mal lesen müssen? z.B. durch:
a = x==0 ? i++ : (x==1 ? i+2 : i);
Fazit, um eine Beurteilung von Code-Proben sowie der Person wird man wohl kaum herum kommen wenn man jemanden für ein eigenes Projekt einstellen will. Auf der anderen Seite sollte man die Grenzen auch nicht zu eng ziehen und sich schon gar nicht an Kleinigkeiten festbeißen. Mitunter kann man auch von anderen lernen. Zumindest erfahrene Programmierer haben meist stichhaltige Gründe warum sie etwas so und nicht anderes schreiben.
Ansonsten stimme ich den meisten Beiträgen hier durchaus zu. Eine gute Strukturierung und Lesbarkeit des Quelltextes, vernünftige Funktionsbeschreibungen und auch nach Jahren noch verständlich lesbare Kommentare sowie aussagefähige Variablennamen sind sicher kein Anzeichen schlechter Programmierung.
Peter Berwanger