| Autor |
Beitrag |
FinnO
      
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: So 24.05.09 20:00
Wie ist dieser Code richtig zu formatieren?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| if PointInRect(Point(X,Y), Rect(width div 2-200, height div 2-75, width div 2 + 200, height div 2 + 75) ) then begin ... end; |
(von der Anfangseinrückung mal abgesehen, ist reinkopiert  )
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 24.05.09 20:12
Was heißt richtig? Ich würde es so machen: Delphi-Quelltext 1: 2: 3: 4: 5:
| if PointInRect(Point(X, Y), Rect(Width div 2 - 200, Height div 2 - 75, Width div 2 + 200, Height div 2 + 75)) then begin ... end; | Ich überblicke es so am schnellsten und es ist nicht so ausgebreitet. Ich glaube so sollte es auch nach dem Styleguide passen:
dn.codegear.com/article/10280 (englisch)
www.delphi-treff.de/delphi-styleguide/ (deutsch)
|
|
API
Hält's aus hier
Beiträge: 7
|
Verfasst: So 24.05.09 20:13
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| if PointInRect(Point(X, Y), Rect(Width div 2 - 200, Height div 2 - 75, Width div 2 + 200, Height div 2 + 75)) then begin ... end; |
ODER
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| if PointInRect(Point(X, Y), Rect(Width div 2 - 200, Height div 2 - 75, Width div 2 + 200, Height div 2 + 75)) then begin ... end; |
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 24.05.09 20:14
Beides finde ich nicht so gut, wenn, dann würde ich beim ersten eins weiter einrücken nach dem Rect, denn das gehört ja da hinein.
Beim zweiten sind ausgerechnet x- und y-Richtung getrennt (bzw. die nicht zusammenhängenden in einer Zeile). 
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 25.05.09 11:36
Also mein Favorit ist das hier:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| if PointInRect( Point(X, Y), Rect( Width div 2 - 200, Height div 2 - 75, Width div 2 + 200, Height div 2 + 75 ) ) then begin ... end; |
Siehe Econos Coding Standard. Grundregeln nach denen ich dabei (abweichend vom Econos Standard) gehe sind grob folgende (nicht vollständig):
- Sinngemäße Gliederung
- Überschaubare Informationshäppchen
- Keine Mischung von Formatierungen (wenn ich Argumente auf einer Zeile gruppiere, dann entweder alle, oder alle einzeln)
- Semantische Tiefen-Gliederung: Bei Unter-Aufrufen erfolgt eine Unter-Gruppierungsebene, sofern nötig
- Ausnahmen bestätigen diese Regeln
Edit: OT: Auf wie viele Varianten wir es wohl schaffen werden?
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
FinnO 
      
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: Mo 25.05.09 12:50
BenBE hat folgendes geschrieben : | Also mein Favorit ist das hier:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| if PointInRect( Point(X, Y), Rect( Width div 2 - 200, Height div 2 - 75, Width div 2 + 200, Height div 2 + 75 ) ) then begin ... end; |
|
warum denn dann nicht wenigstens so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| if PointInRect( Point(X, Y), Rect( Width div 2 - 200, Height div 2 - 75, Width div 2 + 200, Height div 2 + 75 ) ) then begin ... end; |
frei nach C/C++?
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 25.05.09 12:52
Das zieht den Code aber extrem in die Breite, das ist auch nicht so schön finde ich.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 25.05.09 13:13
Jep, genau deshalb: Weil der Code damit unnötig in die Breite gezogen wird. Bei der Einrückung mit den Klammern\Parametern geht es darum, die Zugehöörigkeit der Parameter anzuzeigen, nicht die einzelnen Klammern herauszuheben; die sind Beiwerk. Wichtiger ist es, dass der Code eine Gliederung bekommt.
Man kann IOCCC-Code schreiben, oder aber sich bemühen, mit Struktur und Übersicht eine Gliederung zu schaffen. Wenn man dazu horizontal scrollen muss, läuft etwas falsch.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Mo 25.05.09 13:18
Delphi-Quelltext 1: 2: 3:
| if PointInRect(Point(X, Y), Rect(width div 2 - 200, height div 2 - 75, width div 2 + 200, height div 2 + 75)) then begin ... end; |
alles andere finde ich furchtbar unübersichtlich..
Aya~
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 25.05.09 13:19
Alles in eine Zeile zu schreiben macht ggf. horizontales Scrollen notwendig.
Das macht einen Code unlesbar oder verhindert zumindest, dass man ihn schnell überblicken kann.
Bei mir jedenfalls ist das Codefenster auf etwa eine Breite von 100 Zeichen eingestellt. Alles was drüber geht muss gescrollt werden.
|
|
zuma
      
Beiträge: 660
Erhaltene Danke: 21
Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
|
Verfasst: Mo 25.05.09 13:24
Ich finde die erste Variante von FinnO am übersichtlichsten (lediglich Leerzeichen bei -, genau wie bei +). Dort sieht man auf einen blick, welche Parameter wozu gehören bzw. wie sie berechnet werden.
_________________ Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Mo 25.05.09 13:24
jaenicke hat folgendes geschrieben : | Alles in eine Zeile zu schreiben macht ggf. horizontales Scrollen notwendig.
Das macht einen Code unlesbar oder verhindert zumindest, dass man ihn schnell überblicken kann.
Bei mir jedenfalls ist das Codefenster auf etwa eine Breite von 100 Zeichen eingestellt. Alles was drüber geht muss gescrollt werden. |
Da ich öffters mal Fremdcode in die finger bekomme der auch so formatiert ist wie ihr das vorschlagt weiß ich - zumindest bei mir - aus erfahrung das ich da NICHTS erkenne.. da sitz ich immer ne gefühlte ewigkeit davor bis ich raushab was da wie zusammen gehört.. meist mach ich es mir dann einfach lösch alle zeilenumbrüche so das es in einer zeile steht
Klar es ist gewohnheit, aber ich für meinen Teil habe solche Zeilen recht selten (nochdazu nen Widescreen Monitor  ) und wenn ich mal seitlich scrollen muß, was stört das schon? Für mich ist es so auf den ersten blick ersichtlich was wie wozu gehört..
Nochdazu finde ich es sehr unübersichtlich wo das if anfängt und wo dann das then dazu kommt. Wenn man das in nem text-editor ohne Syntax-Highlighting anschaut sucht man da erstmal in den Zeilen das then.
Aya~
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 25.05.09 13:24
@Aya: Dann aber bitte schön schon das Begin nach dem Then auf eine eigene Zeile ... Das erhöht die Übersicht
Hinweis für Allergiker: Dieser Beitrag könnte Spuren von Ironie oder Sarkasmus enthalten, die bei sensiblen Gemütern zu allergischen Reaktionen führen könnten.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Mo 25.05.09 13:27
BenBE hat folgendes geschrieben : | @Aya: Dann aber bitte schön schon das Begin nach dem Then auf eine eigene Zeile ... Das erhöht die Übersicht  |
Finde ich auch nicht
a) Ist das eine zeile unnötig verschwendet.
b) Wozu..? :p Es ist doch offensichtlich das dannach ein begin steht wenn der nachfolgende code eingerückt ist..
Wenn jetzt jemand kommt vonwegen "Jaaa, aber wenn man das begin dann wegmacht und vergisst das einrücken anzupassen bla".. sag ich nur - "Passiert mir NIE"
Aber auch hier.. jeder wie er es gewohnt ist. (Ich schreibe auch bei C++ die geschweifte klammer direkt in die zeile vom If.. ich finde es furchtbar sonst xD )
Aya~
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mo 25.05.09 13:39
|
|
baka0815
      
Beiträge: 489
Erhaltene Danke: 14
Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
|
Verfasst: Mo 25.05.09 13:40
Ich finde es im Falle Delphi übersichtlicher
Delphi-Quelltext 1: 2: 3: 4:
| if (...) then begin ... end; |
Was Java angeht, schreibe ich jedoch auch lieber
C#-Quelltext
da ich die einzelne Klammer (was bei C# scheinbar Standard ist) furchtbar finde.
Da man bei Delphi das begin ... end nicht so schön "zusammenhängend" markieren kann wie die Klammern in Java (Eclipse), finde ich das mit der Extra-Zeile übersichtlicher.
Yogu hat folgendes geschrieben : | | [...] und außerdem ist 80 Zeichen eine Art "genormter" Rand, den man auch sonst oft findet |
Das liegt daran, weil das Standard DOS-Fenster 80 Zeichen breit ist und ein Drucker im Textmodus auch eine Breite von 80 Zeichen hat, bevor umgebrochen werden muss.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 25.05.09 13:44
Einloggen, um Attachments anzusehen!
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mo 25.05.09 13:44
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 25.05.09 13:46
baka0815 hat folgendes geschrieben : | | Da man bei Delphi das begin ... end nicht so schön "zusammenhängend" markieren kann wie die Klammern in Java (Eclipse), finde ich das mit der Extra-Zeile übersichtlicher. |
Das geht ja mit CnWizards z.B., da wird das (siehe Screenshot) auch visuell verdeutlicht, aber trotzdem schreibe ich es in die gleiche Ebene.
|
|
baka0815
      
Beiträge: 489
Erhaltene Danke: 14
Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
|
Verfasst: Mo 25.05.09 13:47
|
|
|