Re: Einrücken ::: ::: Wie rückt ihr ein?
Hallo zusammen,
ich finde es immer wieder lustig, wenn man eine Benachitigung zu einem Thema bekommt, in dem man vor über 2 Jahren etwas geschrieben hat und sich gleich alle drauf stürzen und posten. ;-) Das ist keine negative Kritik - ich finde das gut. Es zeigt, das die "alten" Beiträge gelesen werden und auch noch heute interesannt sind. Ich möchte zu dem Thema auf meinen Beitrag von 2006 verweisen, da er immer noch meiner Meinung entspricht: http://www.delphipraxis.net/internal...=640007#640007 Es ist egal wie man im Editor formatiert, wenn man die Formatierung vor/nach dem abspeichern mit einem CodeFormater bearbeitet. Damit ist gewärleistet, dass der Code immer gleich formatiert ist. Die CodeFormater kann man ja nach eigenen Wünschen konfigurieren. Zitat:
So was wie ich damals (siehe Link oben) im Beispiel postete, hatt eine Firma, für die ich früher mal arbeitete auch schon mal an einen "guten" Kunden ausgeliefert. Ich musste damals extra einen Obfuicator schreiben, der alle Variablen, Konstanten und Objekte in a1, a2, a3, ... umbenennt. Die Funktionen und Procedure wurden auch in a5, a6, a7, ... umbenannt und alle Kommentare entfernt. Alle Stringkonstanten wurden in einen const Block geschoben und die Konstanten wurden auch a8, a9, a10, ... benannt.
Delphi-Quellcode:
Dein Code würde dann etwa so aussehen:
function Foo(a, b, c, d:Integer):Integer; var x, y:Integer; begin If a>b then
{1. If groß} if a * b > c+d then begin {Verschachtelte ifs klein} For x:=0 to Width-1 do {Das gleiche mit For} for y:=0 to Height-1 do begin Inc(a, 1); Dec (b, 1); end; end; end;
Delphi-Quellcode:
Ist doch auch viel kürzer ;-)
...
const a4=1;a5=0;a7='Mich gibbet net!' ... procedure a1.a2(a3: TOBject);begin if a4>a5 then begin end; a6.Caption:=a7 end; ... Heute würde ich die Namen allerdings _1, _2, _3, ... wählen, ich wusste damals noch nicht das das auch geht :mrgreen: Oder um den Code noch unleserlicher zu machen einfach Schlüsselwörter verwenden und eine Nummer anhängen.
Delphi-Quellcode:
Mit Kommentaren kann man den Leser noch weiter verwirren. Es eignen sich z.B. nonsens Programmcode oder auch die Lizenzbedingungen. Auf das Liebelingsgedicht würde ich verzichten um nicht gegen das Urheberrecht zu verstoßen.
...
const begin4=1;end5=0;if7='Mich gibbet net!' ... procedure for1.do2(function3: TOBject);begin if begin4>end5 then begin end; exit6.Caption:=if7 end; ...
Delphi-Quellcode:
Viele Grüße
...
const{a1=2,a2='nonsens'}a4=1;a5=0;a7='Mich gibbet net!' ... procedure{ein}a1.a2{paar}(a3:{Kommentare}TOBject);begin(*statt*)if//der a4>a5{Leerzeichen}then{kommen}begin{auch}end;{gut}a6.Caption:=a7{.}end; ... MaBuSE |
Re: Einrücken ::: ::: Wie rückt ihr ein?
@Mabuse
Warum sollte man den Code unleserlicher machen wollen? Wer den Code nicht haben soll, kriegt ihn nicht. Und Assemblerfreaks lassen sich davon eh nicht beeindrucken. Es sei denn du redest von Delphi.Net? |
Re: Einrücken ::: ::: Wie rückt ihr ein?
Du weisst, dass das -zumindest bei einem Werksvertrag- unzulässig ist. Ich würde mir das auch nicht mit Stolz auf die Brust schreiben, was ich für ein toller Kundenverarscher bin.
Du weisst auch, das Du/deine Firma im schlimmsten Fall haftbar gemacht werden kann: Wenn ihr in irgendeiner Weise gegen den Werksvertrag verstößt (z.B. zu hohe Stundensätze verlangt oder allgemein das Abhängigkeitsverhältnis ausnutzt) oder einfach nicht mehr zur Verfügung steht, und Euer Kunde dann zwangsweise eine andere Firma mit der Softwarepflege beauftragen muss, dann dürft Ihr die Extraarbeit bezahlen und im schlimmsten Fall etwaige Schäden des Kunden, die durch die Verzögerung angefallen sind, gleich mit. Ich hätte die Software in dieser Form erst gar nicht abgenommen. Falls Ihr Euren Kunden bezüglich der Überlassung von Quelltext nicht vertraut, dann gibt andere Möglichkeiten, z.B. Notare oder Online-Dienste, die als Mittelsmann und Quelltexttresor dienen. Zitat:
|
Re: Einrücken ::: ::: Wie rückt ihr ein?
Zitat:
Eine Firma, für die ich früher mal gearbeitet habe, hatt damals für einen Kunden einen Auftrag programmiert. Obwohl der Kunde nichts bezahlt hat (nicht bezahlen konnte), hat er die Firma via Vertragsbedingungen gezwungen, den Quelltext rauszugeben. (Der Kunde wusste vor dem Auftrag, dass er nicht zahlen kann.) Der Quelltext musste nachweislich kompilierbar sein. Wir haben viel Arbeit in das Projekt gesteckt und waren ziemlich sauer keine Geld dafür zu bekommen. Aus diesem Grund haben wir den Quellcode quasi unbrauchbar gemacht. Den Quellcode wieder herzustellen sollte den Kunden so viel Zeit kosten, dass es sich nicht lohnt. Das war der Rat von unserem Anwalt, da davon auszugehen war, dass der Kunde den Quelltext weiterverkaufen wollte. Das war völlig legal, und auch in diesem speziellem Fall sinnvoll. (Es war auch nicht meine Entscheidung, ich war nur der Programmierer, der den Quellcode verunstalten musste.) Natürlich hat die Firma das sonst noch nie gemacht und gab in der Regel immer vorbildlich formatierten und vor allem gut dokumentierten Quellcode an den Kunden weiter. Eine Kundenbeziehung lebt immer vom geben und nehmen. Man ist ja schließlich an langfristigen Kundenbeziehungen interessiert. Nachtrag: Zitat:
Ich bin nicht Stolz einen Kunden verarscht zu haben, aber ich bin auch nicht Stolz von diesem Kunden verarscht worden zu sein. [->Ende der Diskussion, da OT] Wenn jemand was Näheres wissen will, kann er mich gerne per PN anschreiben!!! |
Re: So rücke ich ein
[equote="MaBuSE schrieb in http://www.delphipraxis.net/internal...=613634#613634 "]...Hier eine Liste von verschiedenen Coding Standards:
|
Re: Einrücken ::: ::: Wie rückt ihr ein?
Hallo zusammen,
nachdem ich mich durch die meisten Beiträge gewühlt habe eine Frage: warum bekommt bei den meisten von euch das begin eine neue Zeile?
Delphi-Quellcode:
mir gefällt folgende Variante besser:
if formatrichtig then
begin machdas(erste); machdaszweite; end else begin machwasanderes; machsrichtig; end;
Delphi-Quellcode:
vor allem ohne Syntaxhighlighting!
if formatrichtig then begin
machdas(erste); machdaszweite; end else begin machwasanderes; machsrichtig; end; Vor vielen Jahren gab es mal Zeitschriften, deren Ehrgeiz darin bestand, Sourcen mit möglichst wenig Zeilen zu drucken. Diese Art von Formatierung wurde genauso vehement verteidigt wie es hier einige mit Ihrer Lieblingsformatierung tun. Ausserdem gab es mal Compiler, die Blockbildung durch Einrückung (2 oder 4 Blanks, keine Tabs) steuerten! So etwas kann Vorlieben auch prägen. Gruß K-H |
Re: Einrücken ::: ::: Wie rückt ihr ein?
Zitat:
Beispiel:
Delphi-Quellcode:
if (DasHierIstEinLangerBoolscherAusdruckMitEinemSprechendenNamen and NochEinLangerAusdruck) then
DoSomething(); DoWasAnderes();
Delphi-Quellcode:
Wenn Du, wie im zweiten Beispiel, das Begin hinten hast und nicht auf einer neuen zeile, und dann darunter
if (DasHierIstEinLangerBoolscherAusdruckMitEinemSprechendenNamen and NochEinLangerAusdruck) then begin
DoSomething(); DoWasAnderes(); // einize andere Zeilen end; noch einen Einrückungsfehler wie bei DoWasAnderes(), dann kann man sich ungeheuer schnell verlesen. Ein
Delphi-Quellcode:
Ist um längen klarer und zeigt auch gleich, dass man einen Einrückungsfehler hat.
if (DasHierIstEinLangerBoolscherAusdruckMitEinemSprechendenNamen and NochEinLangerAusdruck) then
begin DoSomething(); DoWasAnderes(); // einize andere Zeilen end; |
Re: Einrücken ::: ::: Wie rückt ihr ein?
Zitat:
|
Re: Einrücken ::: ::: Wie rückt ihr ein?
Und man das schon zu TurboPascal-Zeiten so gemacht hat.
|
Re: Einrücken ::: ::: Wie rückt ihr ein?
Zitat:
Ich halte mich auch an die Empfehlung von Borland. Man kann in jedem beliebeigen Editor (wenn die Einrückung durchgehend ist) vor das e von end gehen und mit der "Nach Oben"-Taste das zugehörige begin suchen (und auch finden). Das geht eigentlich immer außer bei try und case aus diesem Grund schreibe ich meist auch
Delphi-Quellcode:
...
try case x of 1: Eins; 2: Zwei; 3: Drei; else Rest; end; //of case except on E: Exception do begin ... end; end; // of try..except ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz