Tipps für den Programmieralltag

  • Original von Tom9811
    Original von gritsch
    Original von Tom9811
    Selbstverständlich die Variable. Wa s soll da auch "gehandlet" werden?


    sag einfach dass du nicht das getan hast was ich beschrieben habe. NAsosnten wüsstest du was ich meine ;)

    Aber lassen wir das besser. Jeder soll tunw as er für besser/sinnvoller findet.

    muss auch shcon wieder los. bis bald

    Ich habe das getan. Daher würde ich derlei Unterstellungen unterlassen.

    Töööö dann.


    na dann, wie bist du denn schneller zum string in form @"" gekommen?
    Durch Apple-Doppelklick auf BNRHandSizeAttributeKey oder bei Apple-Doppelklick auf BNRHandSizeAttribute_Key
  • Nicht bmessbar. Meist du das Pop-Up?

    Das nennt man immer noch Kapsleung ist immer noch eine ganz gute Idee, die sich bewährt hat.

    Tipp: Mache nur eine Klasse mit einer Methode. Dann hast du das alles nicht mit .h und .m. Ist ja wirklich lästig, das Zeugs.

    Ich habe aber wirklich keine Lust, eine Diskussion über den Sinn von Kapselung zu führen. Das ist mir dann doch zu affig.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Original von gritsch
    Original von Objcler
    Es kann doch nicht das einzige Kriterium sein wie schnell man zur Definition eines Stückchen Codes kommt.


    es ist das einzige kriterium das ich finde. Ich sehe nun mal keine anderen vor- oder nachteile!?


    Ich habe doch den Artikel bei Apple verlinkt.
    Ich habe meinen eigenen Artikel verlinkt.
    Wir haben es bisher 34567 mal gesagt.
    Die Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.

    Objective-C und Cocoa Band 2: Fortgeschrittene
    Cocoa/Objective-C Seminare von [co coa:ding].
  • Original von gritsch
    Original von Objcler
    Es kann doch nicht das einzige Kriterium sein wie schnell man zur Definition eines Stückchen Codes kommt.


    es ist das einzige kriterium das ich finde. Ich sehe nun mal keine anderen vor- oder nachteile!?

    Tja, da sie schon zahlreich erwähnt wurden, bis ich mal wieder an der Stelle, an der ich es mit Ausdruckstanz versuche.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Original von Objcler
    Original von gritsch
    Original von Objcler
    Es kann doch nicht das einzige Kriterium sein wie schnell man zur Definition eines Stückchen Codes kommt.


    es ist das einzige kriterium das ich finde. Ich sehe nun mal keine anderen vor- oder nachteile!?


    Ich habe doch den Artikel bei Apple verlinkt.
    Ich habe meinen eigenen Artikel verlinkt.
    Wir haben es bisher 34567 mal gesagt.


    auch wenn es mehrfach genannt wurde - mir tuts nicht weh ;)
  • OK, ich steige jetzt erst hier ein weil ich jetzt die Zeit gefunden habe, ins Forum zu gucken.

    Und ich dachte, ich bringe durch eine triviale Bemerkung mal den Thread dahin zurück, wo er herkommt. Und das mache ich mit einer Anmerkung.

    Quellcode

    1. if(self.name != nil && self.age != nil && self.sex != nil) { ... }

    Ich habe es mir mal zur Angewohnheit gemacht, zumindest beim Vergleich mit einer Konstanten, die Konstante nach links zu schreiben:

    Quellcode

    1. if (nil == self.age) {...}

    Sieht zuerst etwas unschöner aus, aber wenn man wie bei ca. jedem tausendsten Mal ein Gleichheitszeichen vergißt wird einem das direkt vor Ort um die Ohren gehauen und es kostet keinen Tag, den Fehler im Debugger zu finden und einen weiteren Gebißabdruck in der Tischplatte zu hinterlassen.
    if (!exit(-1)) fprintf(stderr, "exit call failed. Program will continue\n");
  • Und ich bin ein Fan von ...

    Quellcode

    1. if (pointer) { ... }


    ... bzw. ...

    Quellcode

    1. if (!pointer) { ... }


    (Da braeuchte ich jetzt doppelte Klammern -- oder, Tom9811? Die sehen aber so unschoen aus.)

    Der klassische Gleichheitszeichenfehler, der bei vielen zur von seb2 genannten Umstellung fuehrt, hat mich erstaunlicherweise erst ein einziges mal getroffen. Und das ist Jahre her. Ich neige eher dazu, bei Strings das Aeffchen zu vergessen; und das merkt man sehr schnell. :D

    --

    Uebrigens halte ich Punkt 5 fuer nicht ganz so eindeutig. Ich neige auch dazu, Variablen zu vermeiden, wo ich sie nicht mehr als einmal brauche -- aber les- und entwirrbarer ist solcher Eine-Zeile-Endloscode nicht unbedingt, wenn man zwei Jahre spaeter wieder draufschaut. :D

    (Ein Glueck, dass wir es hier mit Objective-C und bezeichneten Parametern zu tun haben. Sonst waere in so einem Fall komplett Feierabend.)
  • Ja, in den Fällen, dass man nil hat, mache ich das auch so. Aber das Problem hast du ja laufend:
    if( var = 1 ) …
    oder eben
    if( var1 = var2 )
    Im ersten Falle hilft der Trick. Im zweiten nicht mehr. Man kann aber mit -Wall den Compiler veranlassen, dies anzumahnen. Natürlich darf man es trotzdem noch explizieren. Häufigster Fall:
    while( (next = [enum nextObject]) )
    Jetzt ist der cond-expr ja keine Zuweisung mehr und der Compiler meckert nicht.

    BTW: boolsche Verknüpfungen klammere ich immer und wen sie nicht gerade superkurz sind, dann setze ich sie in mehrere Zeilen:

    Quellcode

    1. if( (other.age > 18)
    2. && (other.gender == FemaleGender)
    3. && (self.freetime > 1 ) )
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Original von Tom9811
    boolsche Verknüpfungen klammere ich immer [...]


    Ich auch. Tagesformabhaengig verlass' ich mich nicht einmal darauf, dass irgendjemand ausser mir Punkt vor Strich vernuenftig beherrscht. Aber da geht's auch um die Lesbarkeit, die fuer mich persoenlich von Klammern eher profitiert.

    (Einrueckungen und neue Zeilen gibt's bei mir in solchen Faellen allerdings grundsaetzlich nicht. Auch nicht innerhalb eines Methoden-Aufrufs, aehm, einer Methoden-Versendung.)
  • Da gibt es vielleicht wirklich einen Zusammenhang. Ich kann's naemlich auch gar nicht leiden, wenn in unformatierten Texten einfache Zeilenwechsel vorkommen, aus denen nicht richtig ersichtlich ist, ob ein Absatz gemeint ist. Beispiel:

    Falsch:

    Der Minimalismus ist Programm.
    Speed Download z.B. kann unglaublich viel; aber ich bezweifle, dass ein wesentlicher Teil der Nutzerschaft diese Sachen auch nuetzt.
    Die meiste Zeit fragt man sich, warum das Hauptfenster so viele Knoepfe haben muss.
    Und das sag' ich, obwohl ich beim Speed-Download-Interface schon ein klitzekleines bisschen mitgedreht habe.
    Ich glaube jedenfalls, dass ein Download-Manager nur drei wesentliche Eigenschaften haben muss -- erstens ein moeglichst Mac-maessiges GUI, zweitens die Resume-Faehigkeit; und die dritte und wichtigste Eigenschaft ist eine Eigenschaft des Download-Managers an sich, nicht eines bestimmten Vertreters, und sie ist m.E. seine eigentliche Rechtfertigung:
    naemlich die Unabhaengigkeit vom Browser.


    Richtig:

    Der Minimalismus ist Programm. Speed Download z.B. kann unglaublich viel; aber ich bezweifle, dass ein wesentlicher Teil der Nutzerschaft diese Sachen auch nuetzt. Die meiste Zeit fragt man sich, warum das Hauptfenster so viele Knoepfe haben muss. Und das sag' ich, obwohl ich beim Speed-Download-Interface schon ein klitzekleines bisschen mitgedreht habe.

    Ich glaube jedenfalls, dass ein Download-Manager nur drei wesentliche Eigenschaften haben muss -- erstens ein moeglichst Mac-maessiges GUI, zweitens die Resume-Faehigkeit; und die dritte und wichtigste Eigenschaft ist eine Eigenschaft des Download-Managers an sich, nicht eines bestimmten Vertreters, und sie ist m.E. seine eigentliche Rechtfertigung: naemlich die Unabhaengigkeit vom Browser.


    Ich gebe zu, die Analogie ist ein bisschen krumm (genauer gesagt: aehnlich krumm wie Deine). Aber vielleicht kannst Du meine Aversion gegen diese Art von Zeilenwechsel dann besser verstehen. Wenn ein Satz umgebrochen wird, dann bitte ausschliesslich automatisch auf die Dokument- oder Fensterbreite.

    (Disclaimer: Alles sehr subjektiv. Ich will hier niemanden bekehren, sondern nur meine Marotten ein bisschen illustrieren.)