
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo zusammen, ich möchte mich nicht wirklich in die Diskussion einmischen, aber ein paar Dinge möchte ich hier mal kommentieren. Das GoTos seit "40 Jahren out" sind, halte ich für ein Gerücht. Das es kein guter Stil ist, mit gotos zu arbeiten, dem kann ich schon eher zustimmen. Betrachtet man allerdings sämtliche Assembler dieser Welt, so ist dort GOTO (jmp, bra, etc.) elementarer Bestandteil, um Konstrukte wie IF, SELECT CASE, SWITCH, etc. in Hochsprachen überhaupt zu realisieren. Insbesondere bei Micro-Controllern mit stark begrenzten Resourcen macht dies sogar sehr viel Sinn, da jeder Funktionsaufruf den Stack belastet. Hingegen sind einzeilige IFs in sämtlichen Programmiersprachen mittlerweile verpönt. Jeder erfahrene Softwareentwickler meidet solche Konstrukte und Funktionen wie IIF oder "bedingung ? zweig 1 : zweig 2". Für die CC ist das eine Ausnahme, aus dem einzigen Grund, das diese innerhalb der beiden Fallunterscheidungen nur genau eine Anweisung zulässt. Das ist leider absolut unnötig und verhindert, dass bestimmte Konstrukte effizient umgesetzt werden können. Einzeilige IFs machen den Code m.E. zudem deutlich unleserlicher. Nur ein Beispiel dazu IF SensorInput1 < 200 AND SensorInput2 > 350 THEN TemperatureOutput = SensorInput * 2 - TEMPCONST ELSE TemperatureOutput = SensorInput2 * 3 / 4 - TEMPCONST2 Solche Konstrukte sehe ich in vielen "Programmen" mit dem Ergebnis, dass nur die Hälfte der Zeile im Editor sichtbar ist. Wo ist da die Lesbarkeit besser? Hingegen sieht man im folgenden deutlich besser, was dieses Konstrukt tatsächlich tut (unabhängig davon, dass CCBAS das nicht unterstützt). IF SensorInput1 < 200 AND SensorInput2 > 350 THEN TemperatureOutput = SensorInput * 2 - TEMPCONST ELSE TemperatureOutput = SensorInput2 * 3 / 4 - TEMPCONST2 ENDIF >... Ich weiß wovon ich rede, denn ich habe viele Jahre mit Gfa-Basic gearbeitet und das besitzt nur das mehrzeilige IF... Ich bin seit über 10 jahren Softwareentwickler (C/C++, Java, Assembler, Perl, Python, C#/VB.NET, VB6, PHP, Pascal) in nun 2 Softwarehäusern (insgesamt habe ich rund 20Jjahre Erfahrung im Bereich Softwareentwicklung) und ich weiss, dass in der professionellen Softwareentwicklung niemand den ich kenne so denkt. Insgesamt ist Programmierstil eine ganz persönliche Sache und über Geschmack lässt sich bekanntlich sowieso nicht streiten. Also ist diese Aussage ziemlich unqualifiziert und gilt nur für den persönlichen Bedarf. Grüße, Christian |
| Antwort schreiben |