Wie schreibe ich guten Code mit neuen Sachen? [geschlossen]

8

Ich versuche immer, leicht lesbaren Code zu schreiben, der gut strukturiert ist.

Ich habe ein besonderes Problem, wenn ich mit etwas Neuem herumspiele. Ich ändere ständig den Code, die Struktur und so viele andere Dinge. Am Ende schaue ich mir den Code an und ärgere mich darüber, wie kompliziert es wurde, als ich versuchte, etwas so Einfaches zu tun.

Sobald ich etwas fertiggestellt habe, überarbeite ich es stark, damit es sauberer wird. Dies tritt meistens nach Abschluss auf und ist ärgerlich, denn je größer der Code, desto ärgerlicher ist das Umschreiben.

Ich bin neugierig zu wissen, wie Menschen mit solchen Qualen umgehen, insbesondere bei großen Projekten, die von vielen Menschen geteilt werden.

Reza M.
quelle
2
Leider genauso wie Sie.
Bobson

Antworten:

11

Solange Sie umgestalten, machen Sie es richtig.

Bedenken Sie Folgendes: Sie können jederzeit eine Lösung für das Problem finden. Mit der Zeit erfahren Sie jedoch immer mehr über das Problem, was dazu führt, dass Sie bessere Lösungen finden können. Die erste Iteration kann rückwärts sein, und die letzte ist hoffentlich elegant. Wenn Sie mit zunehmendem Wissen weiter umgestalten, werden Sie immer bessere Ergebnisse erzielen. Es gibt keine Abkürzung, um sofort zur elegantesten Lösung zu springen, ohne die Lernschritte durchlaufen zu haben, es sei denn, Sie sind bereits auf ein ähnliches Problem gestoßen, können aus früheren Problemen verallgemeinern oder haben Glück.

MrFox
quelle
4

Ich bin neugierig zu wissen, wie Menschen mit solchen Qualen umgehen, insbesondere bei großen Projekten, die von vielen Menschen geteilt werden.

  • Bestätigen Sie, dass es existiert.
  • Planen Sie die Zeit für das Prototyping.
  • Versuchen Sie, neue Dinge in Hobbyprojekten zu lernen, anstatt Produktionscode.
Telastyn
quelle
1
"hooby projects"klingt wie Code von Bill Cosby geschrieben. "Mit den IDEs und agilen Methodololidgien wissen die KIYDS nicht ... um welchen Low-Level-Code ... geht es nur." ;)
StuperUser
3
+1 für das Lernen in Hobbyprojekten anstelle von Produktionscode. Schade, dass meine Firma mich nicht dafür bezahlt, meine Hobbys zu machen :(
Paul
4

Nun, ich mache TDD mit Unit-Tests. Das gesamte TDD-Mantra dreht sich um den folgenden Zyklus: TDD-Zyklus

Da ich TDD verwende, bin ich gezwungen, Unit-Tests zu schreiben. Wenn ein Test schwer zu schreiben ist, ist dies ein Zeichen dafür, dass mein Design zu kompliziert ist und vereinfacht werden muss.

Der Zyklus endet erst, wenn Sie die Redundanz umgestalten, sodass die Umgestaltung meistens in kleinen Abschnitten erfolgt und nicht zeitaufwändig ist. Außerdem führe ich nach jedem Refactoring alle Testfälle aus, um sicherzustellen, dass ich nichts kaputt gemacht habe.

Bildquelle: http://www.javacodegeeks.com/2012/05/test-driven-development-win-win.html

Songo
quelle
1

Jeder lernt, wie man ein Programm schreibt, indem er es schreibt. Refactoring ist Teil des Prozesses, da Sie besser qualifiziert sind, es beim zweiten Durchschreiben zu schreiben. Der Trick besteht nicht darin, das Refactoring zu vermeiden, sondern es früher und häufiger zu tun. Refactor, sobald Sie ein Problem bemerken, anstatt bis zum "Ende" zu warten.

Karl Bielefeldt
quelle
1

Wenn Sie den Code geschrieben und debuggt haben, legen Sie ihn beiseite und schreiben Sie ihn erneut auf eine andere Weise. Variieren Sie die Datenstrukturen. Oder die Kontrollstrukturen. Versuchen Sie verrückte Designs. Wiederholen. Oft ist die sauberste Codestruktur nicht sofort offensichtlich, und wenn Sie verschiedene Ansätze ausprobieren, können Sie auf eine bessere Lösung stoßen.

CWallach
quelle
1

Ich habe aus meiner Praxis herausgefunden, dass ich klareren und einfacheren Code schreibe, wenn ich die Problemdomäne vollständig verstehe. Leider können Kunden oft nicht genau klären, was sie wollen, und dies ist eine normale Arbeitssituation. Wenn Sie die Domain falsch verstanden haben, wird dies in Ihrem Code wiedergegeben. Und wenn Sie ein Projektleiter sind, besteht eine Ihrer Hauptaufgaben darin, dem Kunden zu helfen, seine Geschäftslösung, die Sie implementieren sollen, neu zu sehen. Versuchen Sie also, mehr Zeit für eine Domain-Analyse zu geben, damit Sie einfacheren und klareren Code schreiben können.

Ewigkeit
quelle
Willkommen bei P.SE und vielen Dank für Ihre Antwort. Diese Frage wurde nun geschlossen.
Andrew