Programmierstil kommentieren

  • Guten Abend,
    ich weiß nicht ob es hier rein gehört, aber sonst wäre für mich kein anderer Bereich passend.


    Ich würde gerne mal von den Leuten hier, die Programmieren (vorzugsweise natürlich C#^^), Kommentare bzw. Meinungen
    über meinen Programmierstil hören. Ich weiß nicht wirklich ob das Thema jetzt ungewöhnlich ist, aber würde mich einfach mal interessieren
    was ihr dazu sagt, wie ich programmiere.
    Dazu hab ich ein einfaches TicTacToe in der Konsole in C# programmiert (mit VS 2008 Professional).
    Im .zip sind alle Dateien die auch im Project-Ordner von VS2008 sind.
    Ist zwar ein wenig spät, aber man muss ja nicht sofort kommentieren.


    Weiß nicht ob's nötig ist, aber hier trotzdem ein Link zu Virus-Total^^: http://www.virustotal.com/file…7a213ba7d12728-1312926457


    Naja, ich danke schon mal den Leuten, die hoffentlich dann einen Kommentar abgeben :D.

  • Ich finde das sehr schön.
    Eine Sache wäre vielleicht, dass du alles in Deutsch schreibst. Mach das nicht. Maximal die Kommentare und eigentlich nicht mal die. Halt dich an internationale Standards und wenn deine Englischkenntnisse nicht ausreichen, solltest du nicht programmieren.


    MfG

  • Klar sollte er weiter programmieren..


    Kann deine sachen nun nicht angucken, außer du sagst mir, ob man den Kram im Txt-Editor öffnen kann, dann mach ich das heute Mittag.
    Es ist egal ob du Englisch kannst, also richtig in Wort und Schrift beherrschst oder nicht, geht ja nicht um die Sprache sondern um die Fähigkeiten die Sprache kommt dann von alleine.

  • Ich würde mir den grundlegenden Kommentierstil nochmal überlegen. Warum kommentierst du? und für wen?


    Code
    1. // Geht die Reihen durch
    2. for (int row = 0; row < this.ReihenAnzahl; row++)


    sowas ist offensichtlich, muss man nciht kommentieren. Erkläre nie WAS du machst, das steht im Code. Erkläre lieber WIE du es machst, ohne den Ablauf des Codes runterzuspulen.


    Code
    1. // Nummer um 1 erhöhen
    2. Nummer++;


    Sowas ist komplett überflüssig, jeder Programmierer weiß, was ++ macht. Dadurch wird den Code sogar noch weiter aufgebläht, und man sieht weniger informationen auf dem Bildschirm.



    Code
    1. // Überprüfen ob Feld frei ist
    2. if (this.spielfeld[(feldNummer - 1) / 3, (feldNummer - 1) % 3] == '#')
    3. {
    4. this.spielfeld[(feldNummer - 1) / 3, (feldNummer - 1) % 3] = this.Spielfigur;
    5. }


    Das ist z.B. ein sinnvoller Kommentar, ich muss die kryptische if nicht durchlesen sondern weiß durch den Kommentar, was sie macht.




    Bitte tu mir den Gefallen und kommentiere deine Variablen/Parameter immer im Klassen- bzw. Methodenkopfkommentar. Ist viel übersichtlicher. Auch gibt es die Konvention, dass niemals Code und Kommentar in einer Zeile stehen sollten. Wenn dann darüber.


    Versteh mich nicht falsch, ich finde es gut, dass du kommentierst. Aber du tust es zuviel bzw. an den falschen Stellen. Erkläre das, was nicht sofort ersichtlich ist, wo du komplizierte Dinge tust und erkläre, warum du sie tust.


    Und ich muss Twice teilweise Recht geben, auchw enn ich es freundlicher formuliere^^ Solange du für dich programmierst, ist deutsch ok, aber wenn du das mal in einem Team machst oder jemand anderem zeigen willst, ist englisch zum einen professioneller und es verstehen auch viel mehr Leute.

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird

  • Ich muss Twice ebenfalls recht geben. Wer kein Englisch kann wird es sehr schwer haben im Bereich der Programmierung. Alle Klassen und die (meisten) dazugehörigen Hilfen sind auf Englisch.

  • @Twice GerLiquid
    Klar kann man die .cs Sachen mit dem Text-Editor öffnen, nur hat man dann keine farbige Hervorhebung, aber muss ja nicht sein^^.


    hangman
    Das hab ich mir schon gedacht, klar weiß ich, dass das eigentlich überflüssig ist, aber damals als ich vor 3-4 Jahren PHP angefangen hab,
    hab ich in dem Buch in dem ich gelesen hab, dass so mitgelernt, also lieber zu viele Kommentare, als zu wenig.
    Es kann auch sein, dass ich solche Sachen wie "Nummer um 1 erhöhen" noch schreibe, weil wir in der Schule C++ behandeln
    und da mein Lehrer meint, ich bin schon so weit wie die Oberstufe, die anderen jedoch nicht und da die wirklich Probleme haben,
    kommentiere ich da auch immer sehr ausführlich (für die Leute dann), also ist quasi Gewohnheit.


    Aber ich weiß, dass viele hier sehr viel besser im Programmieren sind (ich beschäftige mich vorerst nur mit der Konsole, bis alle Sachen 100% sitzen).


    PS: Ich kann Englisch, aber wollte es in dem Quelltext auf deutsch machen, damit man die Sachen schneller durchlesen kann.
    I will follow your advices from now and when I'm doing a project again I might post it here and then you can check if I improved :).


    Also danke an alle, falls sich noch jemand meldet, auch schon mal Danke im Voraus.

  • Ich habe zwar absolut keine Ahnung von Coden, aber das Englisch passt ;)
    Also kein Grund da irgendwas zu diskutieren oder sonstwas :)


    Ja, ich führe Selbstgespräche. Es gibt einfach Momente, da brauche ich den Rat eines Experten.

  • So ist zwar nicht lange her, aber hab noch mal was gemacht.
    Diesmal ein einfaches VierGewinnt in der Konsole (wieder erst mal nur Spieler gegen Spieler).
    Hab versucht die Tipps mit den Kommentaren zu beherzigen und hab auch diesmal alles
    in Englisch geschrieben^^.
    Würde mich erneut über eine Rückmeldung und Meinung von euch freuen.


    Hier der Link zu Virus-Total (auch wenn ich nicht weiß, ob es hierfür nötig ist^^): http://www.virustotal.com/file…e85d1d6f786048-1313002237


    Guten Abend wünsch ich noch :).

  • Habe mir mal kurz dein VierGewinnt angeschaut. Sieht sehr gut aus !
    Du könntest dir ein wenig tipp Arbeit sparen indem du nicht immer die kompletten if-Blöcke machst. Wenn nur ein Argument (Befehl) im if-Block steht.


    z.B.

    Code
    1. if (this.grid[startRow, startCol] == this.Token)
    2. rtlHits++;
    3. if (rtlHits == 4)
    4. return Player.Winner;



    Und bei so vielen if Abfragen / for Schleifen immer das Ende einer for Schleife makieren. Und wenn die if mal länger ist und verschachtelt also eine if in einer if mit einem else + finaly und throw exeptions, da sollte man auch das ende einer if anzeigen.
    Also so z.B.



    Jetzt kannst du dir mal den Minimax Algorithmus anschauen. Damit auch mal ein Spieler alleine spielen kann ;)


    Wiki: Link
    Algorithmus der Woche: Link

  • Ich würde grundsätzlich bei if Anweisungen Klammern setzen. Sobald eine zweite Anweisung dazukommt, brauchst du sie sowieso und wenn sie nicht da sind, wunderst man sich, warum es immer schiefgeht.


    Auch finde ich das //for unnötig. Wenn er konsequent einrückt, sieht er, was er da schließt.
    Deine beiden Tipps werden allgemein als schlechter Stil angesehen. Aber so schlimm ist es nicht. Nur wenn man es nicht so macht, sollte man sich nicht dahin umgewöhnen.

    Dieser Beitrag wurde noch nie editiert, zuletzt von »hangman« (Heute , 13:37)



    1355?mode=raw


    Skill ist, wenn Luck zur Gewohnheit wird