Schöner / Unschönder Code

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Nikx.

    Schöner / Unschönder Code

    Hey Zusammen

    Ich hab heute einen interessanten Bericht gelesen und wollte mal fragen wie ihr eure Programme macht...
    mit schnellem unübersichtlichem Code oder ausführlich beschriftetem Code?

    Echte Programmierer erstellen schnell funktionsfähigen Code, verwenden knappe Bezeichnungen, verschwenden keine Zeit auf Aussehen und unnötig lange Kommentare. Häufig entsteht durch viele Änderungen und Erweiterungen dann so genannter "Spaghetti-Code", der für nicht Eingeweihte nur mühsam und mit viel Aufwand zu verstehen ist. Dies gilt bei vielen Programmierern als besonders männlich. Echte Männer haben es halt nicht nötig, auf die Ästhetik ihres Outputs zu achten. Sie sind effizient und pragmatisch und lassen Ecken und Kanten stehen. "Girl Code" dagegen lautet das gängige Synonym für "schön" geschriebene Software, bei der stark auf Struktur, Systematik und Aussehen geachtet wird. Einrückungen sind stets akkurat gesetzt, jedes Statement steht sauber in einer Zeile und das Programm wird sorgfältig in überschaubare Teile zerlegt. So kann man durch einfaches Lesen sehr schnell den Sinn des Codes begreifen. Der gehässige Unterton in der Bezeichnung "Girl Code" drückt Verachtung aus: Wer Code schreibt wie ein Mädchen, konzentriert sich eben nicht auf das Wesentliche, sondern glättet hier und striegelt da, bis auch das letzte Pünktchen sitzt.



    Hier findet ihr den ganzen Bericht
    zeit.de/online/2008/17/schoener_code
    Gruss Mirco
    Der Nicht-Kollege, der diesen Artikel verzapft hat, hat absolut keine Ahnung.
    Wenn ich unterscheiden müsste, wären eher "Freak" und "Angestellter" dier Kategorien, wobei "Angestellter" auf die Codierungsrichtlinien abzielt, nach denen in einem "ordentlichen" Unternehmen gearbeitet werden sollte.
    Und:
    Wer übersichtlichen Code schfreibt, braucht weniger Zeit bei Codeänderungen und Projekterweiterungen, die so sicher sind, wie das Amen in der Kirche.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Naja das mit der Struktur und so...des kristallisiert sich meist am Ende heraus ;D
    Am Anfang würd ich mal behaupten, dass sogar ich mich schwer tu, da manchmal wieder rein zu kommen(übers WE)
    Während des proggens schreib ich halt so vor mich hin und erst am Ende kommentier ich dann aus, setz meine Zeileneinzüge usw...Liegt evlt auch daran, dass ich leider immer alleine werkle :/
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell

    Solaris schrieb:

    durch und durch ironischer Natur

    Das hoffe ich doch sehr stark.
    Im (semi)professionellen Umfeld haben solchen Machoismen nix zu suchen.
    Unstrukturiertes Programmieren kostet in der Wartung Zeit des/der Programmierer , Zeit kostet Geld, und unnötige Geldausgabe wird von Chefs nicht wirklich gerne gesehen.
    Ganz abgesehen davon, das anspruchsvollere Projekte häufig in Teamarbeit erstellt werden. Und Teamarbeit ohne Struktur ... da macht jeder, was er will, aber niemand, was er soll.
    Im Hobbybereich gilt in jedem Falle Ähnliches: Wer schon mal nach einem Jahr ein "Quick And Dirty" erstelltes Projekt anpassen möchte, steht vor nur mit grösserem Zeitaufwand lösbaren Aufgaben.

    EaranMaleasi schrieb:

    da Programmieren zwar eine männliche Domäne, aber keine Arbeit für "echte Männer" ist.

    :thumbsup: #mademyday

    @MircoTuor Ich sage mal so ne Mischung aus beidem ist schon ziemlich hilfreich. Ich zum Beispiel achte auf darauf, dass der Code richtig eingerückt ist, man alles schnell findet und alles am Ende funktioniert. Nur der Weg dahin ist bei mir nicht immer der direkteste. Also ich mach auch manchmal Sachen auf zwei verschiedene Sachen (also relativ inkonsistent), aber das zeichnet halt sowas aus. So wie Autoren ihren Schreibstil haben, haben halt auch Programmierer ihren Codestil. Ich würde überdies nie anfangen meinen Code mehr als nötig zu kommentieren. Nur wenn es halt wie @us4711 sagt auf die Team-Arbeit ankommt, sollte man schon versuchen einen einheitlichen Stil zu verwenden.

    Radinator schrieb:

    Liegt evlt auch daran, dass ich leider immer alleine werkle

    Willkommen im Club :thumbup:
    Wie soll das funktionieren? Kleinere Team-Projekte kommen ja öfters mal, aber die Community ist von den Mitgliedern her viel zu vielseitig, als dass man da gut zusammenarbeiten könnte. Bedenke, hinter den Usern stecken auch Menschen, die andere Dinge tun müssen und arbeiten gehen. ;) Dann macht es auch nicht jedem unbedingt Laune, im Team zu arbeiten, weil er vielleicht sein eigenes Ding machen möchte und sich nicht für das Projekt interessiert, bei dem er mitmachen soll. Und auch nicht jeder kommt unbedingt mit GitHub oder TFS klar, auch wenn das eigentlich Standard sein sollte. Wird das Team zu groß, geht das halt auf Dauer über Remote-Kommunikation nicht mehr gut, weil einfach die Abläufe evtl. durcheinanderkommen. Klar kann man kleine Gruppen bilden und jeder hat eine feste Aufgabe, ist aber dennoch gar nicht so einfach.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Naja, sowas gibt es ja öfters mal. Das sind halt kleinere Gruppen von maximal 4 Leuten oder so. Wenn man das abklärt, dann ist das in dem Rahmen schon machbar.
    Ich hatte das halt jetzt so verstanden, dass da wirklich 20 oder 30 Leute vom VBP mal zusammen was machen sollten. ;)

    Das gilt jetzt natürlich halt für die Hobby- bzw. privaten Programmierer.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    us4711 schrieb:


    Unstrukturiertes Programmieren kostet in der Wartung Zeit des/der Programmierer , Zeit kostet Geld, und unnötige Geldausgabe wird von Chefs nicht wirklich gerne gesehen.


    Tja in der Realität ist das leider oft anders. Da hat man irgendwelchen Code der über Jahre von zig Leuten weitergeschrieben und geändert wurde, die jeweils andere Stile und Techniken bevorzugten und die Devise lautet dann, mach Änderungen wie du willst, Hauptsache es geht schnell und es funktioniert. Bei derlei Software würde dann nur noch ein komplett Rewrite was bringen, aber das ist zu teuer und wird dann vermutlich nie beendet.
    Das ist meine Signatur und sie wird wunderbar sein!

    MircoTuor schrieb:

    ich meine natürlich das jene die das wollen auch freiwillig machen
    Und selbst dann ist es nicht einfach. Ich z.B. habe Apps für alle 3 Systeme mit Xamarin in C# realisiert. Wenn hier nun also ein mobiles projekt anstehen würde, wäre ich natürlich super gern dabei, doch die wenigsten wollen entweder eine andere IDE nutzen (Xamarin Studio), oder viel Geld zahlen. Deswegen würde so ein Projekt am wahrscheinlichsten mit Cordova realisiert, wo ich völlig nutzlos bin.

    Man muss eben ein Ziel definieren, den Weg dort hin definieren, und dann leute finden die sagen, "Ja, ich möchte da mitmachen und werde es so und so erledigen"
    Jap.

    Teamarbeit erfordert auch einiges an Disziplin, und definitiv eine Person welche die Leitung übernimmt. Und diese Person muss viel Zeit aufbringen.

    Zum Thema schöner Code: Ich versuche eigentlich mich an meine eigenen Regeln was Formatierung & Co. betrifft zu halten. Allerdings habe ich mir kürzlich ReSharper angeschafft, was das Ganze um einiges leichter macht.

    Mono schrieb:

    Hauptsache es geht schnell und es funktioniert

    Das ist bestimmt so, wenn Du für Auftraggeber arbeitest, die keine oder keine gut geführte IT vorweisen können, da stimme ich Dir voll zu: "Der Zweck heiligt die Mittel".
    Die professionelleren IT-Leiter haben in aller Regel ein festes finanzielles (Projekt/Jahres)-Budget, dessen Über- oder Unterschreitung deutliche Auswirkung auf die persönliche Jahresgratifikation hat.
    Und da, so bin ich mir sicher, hört dann der Spaß auf.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „us4711“ ()