Frage von Dereta, 77

Strukturierung von Sourcecode. Wie macht ihr das?

Hey leute :)

Ich habe ein kleines Problem,

wenn ich Websiten entwickle oder Programme schreibe, habe ich bereits nach 2-3 Wochen das Problem das ich am liebsten mein ganzes Projekt(e) über den haufen werfen würde und komplett von vorne anfangen würde.

Ich vermute das ich dies tue weil ich es nicht schaffe meinen Code ordentlich zu Dokumentieren und zu Organisieren.

Deswegen wollte ich fragen wie Ihr das bei euren Projekten/Programmen macht. Wie ihr es Organisiert (vorbereitung, dokumentierung etcpp..) Wie ihr es verwaltet (Online Platform, Ordner (Wenn ja wie Struktuiert ihr es) Wie verwaltet ihr es Online? Wenn ihr z.B. updates für euere Website entwickelt, wie testet ihr diese? Ladet ihr z.B. eure Updates direkt auf eure Website hoch also schaltet es direkt live. Oder benutzt ihr davür eine Subdomain oder gar einen anderen webspace? Oder einfach nur einen Unterordner auf eurer Haupt Website.

(Vorzugsweise für die Webentwicklung)

Gerne auch mit Beispielen :)

Vielen lieben Dank

Benjamin

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von MonkeyKing, 24

Das ist ein weites Thema. Man kann es unter dem Begriff "best practices" festmachen - es gibt für alle Teilbereiche der Organisation von Sourcecode erprobte Praktiken. Das hier rein zu schreiben würde hier zu weit führen. Hier nur ein paar Ansatzpunkte:

- Formatiere den Code ordentlich - das bedeutet in erster Linie sauberes Einrücken von Elementen.

- Benenne deine Variablen sinnvoll. Alle Variablen ausser solche die wirklich nur für kurze zwischenrechnungen verwendet werden (die können auch $a oder $b heissen) sollten einen Namen haben aus dem man seine Funktion ablesen kann. Eine Liste von Usern z.B. $users usw. Schleifenvariablen werden mit $i, $j, $k usw. benannt.

- Kommentiere die Codeteile die wirklich schwer verständlich sind. Ansonsten sollte gut geschriebener Code sich in erster Linie selber kommentieren.

- Benutze so etwas wie PHPDoc um zum Beispiel Funktionsdeklarierungen zu dokumentieren. 

- Ganz wichtig: Benutze ein Code Repository. Also Git oder Subversion, ich empfehle Git. Damit kannst du jeden Schritt der Weiterentwicklung nachvollziehen und im Zweifelsfall auch rückgängig machen.

- Beschäftige dich mit Entwurfsmustern (Programming Pattern). Das wichtigste Pattern in der Web-Entwicklung ist das Model-View-Controller Pattern (MVC)

- Sorge für eine logische Ordnerstruktur

- Arbeite mit einem Framework - schreibe nicht deinen ganzen Code von null auf neu sondern nutze ein Framework wie z.B. Yii in PHP.

- Schreibe automatisierte Tests

Antwort
von LeonardM, 53

Ich schreibe meine programme und webanwendungen auf die ich in dem post auch eingehe eigentlich vorwiegend immer auf einem lokalem entwicklungslaptop. Eingesetzt wird aus bequemlichkeit ubuntu. Die software für db,webserver,php sind aber die selben die ich in der Produktionslinie auch einsetze. Das ist mir wichtig. Ich persönlich dokumentiere bzw kommentiere meinen code eigentlich nur sehr sehr sehr selten. Kleinere bugfixes etc mache ich live und neuerungen die noch zum test ausstehen werden intern besprochen und getestet (abgeschottet von der öffentlichen version) und entstehen von der quelle her eigentlich auch wieder nur lokal am entwicklungslaptop. Funktions und sicherheitstests folgen eigentlich immer dann wenn das modul fertig ist (& insofern vorhanden die anderen module sofern sie eine abhängigkeit darstellen ebenfalls fertig sind.)

Antwort
von triopasi, 49

Dokumentieren tue ich eigentlich nichts - der Code ist ja nur für mich und guter Code sollte sowieso sprechend genug sein, sodass Doku/Kommentare fast ganz unnötig werden. Was ich in C# mache und in PHP jetzt auch vermehrt: DocComments für Klassen/Methoden dazuschreiben!

Zur Versionsverwaltung nutze ich inzwischen Subversion. Habe nur meine aktuellen Projekte da drauf zur Zeit, aber werde da ältere - wenn ich sie mal bearbeite - auch hochladen. Getestet wird alles offline - habe in meinem XAMPP Order zig Projekte und auch die Datenbanken dazu - alles lokal. Wenn alles getestet ist und es geht, dann wird es hochgeladen auf das live-System. Dazwischen liegen aber meist einige SVN-commits ;)

Arbeite z.Zt an etwas komplexerem (viele Klassen und Vererbung etc.), da habe ich mir dann auch mal paar UML-Diagramme grob hingemalt - einfach um vorher zu sehen was wohin kommen sollte..

Aber ich denke eher dein Problem ist der Code selbst, oder?


PS: Stichwort "Refactoring".. ab und zu muss man einfach mal den Code verbessern statt weiter zu entwickeln ;)

Kommentar von Dereta ,

Nein :D Das Problem ist nicht der Code, sondern eher die Benennung der Funktionen/Variablen und natürlich auch Parametern. 

Also indirekt blicke ich nach 2-3 Wochen noch durch. Aber dann verliere ich auch oft einfach das Interesse, weil ich mir den Berg an arbeit den ich noch vor mir habe anschaue und dann geht die Lust halt einfach verloren. Und ich weiß nicht wie ich das auf dauer ändern kann. 

Habe locker schon 20-30 Projekte so angefangen aber nie beendet.

Egal ob Websiten, Programme oder eben andere Projekte..

Vielen dank für alle Antworten

Grüße Benjamin

Kommentar von triopasi ,

Ja das ist doof. Du musst ALLES ordentlich benennen.. $a, $b, $c bringt nichts. Habe teilweise auch echt lange Funktionsnamen, aber dafür weiß ich, was die Funktion macht!

Konzentriere dich auf einige, die was sinnvolles machen ;) 

Kommentar von kingbongo ,

Ein solides Framework verwenden das klare Strukuren diktiert und kein Freestyle Spagehetti Programming betreiben bei dem man nach 2 Wochen nicht mehr durchblickt.

Webdevelopment richtig angewandt ist hart.

symfony.com/download

Kommentar von triopasi ,

Es muss nicht immer ein Framework sein... Geht auch ohne gut...

Man kann seine Variablen/Methoden/Dateien auch mit nem Framework falsch benennen....

Kommentar von kingbongo ,

Ich gehe davon aus das mehr als 2 Views gerendert werden sollen, bzw 3 Funktionen aufgerufen werden.

Kommentar von triopasi ,

Ja ach.. Aber wenn du das alles schlecht bennenst wird der Code deshalb auch nicht besser - nur weil das FW paar Sachen vorschreibt... Und manche Dinge sind ohne FW auch einfach leichter...

Kommentar von kingbongo ,

Man soll sich auch an die conventions des Frameworks halten (alle solinden Frameworks haben conventions) dann passiert sowas auch nicht

Kommentar von triopasi ,

Ja, aber ich brauch kein FW was mir vorschreibt "bennene alles ordentlich".. das kann ich auch ohne.

Kommentar von kingbongo ,

Nein, dann hast du auch noch nie wirklich an einem "Projekt" gearbeitet, conventions gehen über "benennungen" von Methoden hinaus...

Kommentar von triopasi ,

Uhm.. doch?

Das Problem des Fragestellers ist, dass er seine Variablen/Funktionen etc falsch benennt und kA mehr hat was was ist - das kann mir auch ein Framework nicht aufzwingen. Wenn ich das nicht machen will (oder kann), dann mach ich's auch mit FW falsch.

Und wenn ich meine Sachen benennen kann, dann kann ich das auch ohne FW.

Kommentar von kingbongo ,

Ja dann benenn du mal deine Sachen (sobald der andere Programmierer draufguckt sagt der nur noch WTF)

Kommentar von triopasi ,

Du hast das Problem des Fragestellers nicht verstanden, oder?


Oder du kannst nur mit FW programmieren - das kann auch sein..

Kommentar von kingbongo ,

Wenn er schon mit der lächerlichen Bennenung von Variablen probleme hat, so gibts hier noch ganz andere Dinge mit denen er Probleme bekommen wird... hier wird ein FW helfen, aber jeder so wie er meint.

Und ja, ich pack ohne ein FW im Rücken nix an.

Kommentar von triopasi ,

Bei risen Projekten sollte man ein gutes Konzept oder FW haben - aber wer nie ohne programmieren konnte, sodass man den Code auch nach 2 Wochen noch lesen kann, der wird auch mit scheitern. Und genau deshalb halte ich ein FW beim Fragesteller erstmal für unnötig. Zumal man bei einem FW auch nicht weniger Code hat und diesen umso besser strukturieren muss - auch an den stellen an denen es nicht vom FW vorgeschrieben ist!!

Antwort
von wolfgang1956, 2

Die hiesigen Tipps gelten auch sinngemäss für das Entwickeln von Webseiten:

http://de.wikipedia.org/wiki/Clean_Code

Das angegebene Buch sollte früher oder später vollständig in den grauen Zellen des Hirns verankert sein! Besser und prägnanter kann man es nicht formulieren!

Keine passende Antwort gefunden?

Fragen Sie die Community