Wie geht ihr ein Projekt an?

Kopfballstar

Erfahrenes Mitglied
Ich frage weil ich das jetzt bald in meiner Firma machen muss. Wir machen CMS Systeme und die sollen jetzt auf einen einheitlichen Stand gebract werden, also mit Templates, Modularisierung etc.
Das ganze System funktioniert zwar gut aber es ist halt doch oft wirr weil es immer wieder nur kopiertwird, Php in HTML, Modularisierung und Templates -> so halb würde ich es nennen.
Aber wie gehe ich das ganze nun an? Es sind ja doch recht viele Informationen und irgendwo muss ich mich ja auch nach dem bisherigen System richten.
Vielleicht habt ihr da ein paar Tips für mich?
 
Es mag nach diesem Projektmanagementbuch klingen, aber was ich wichtig finde ist sicherlich folgendes:

Wenn du schon auch mit der Modularisierung beauftragt worden bist, solltest du wissen, was für Module dass alles gebraucht werden und du dir eine Art Checkliste machen kannst. So kannst du auch abwägen, wie dass diese untereinander 'kommunizieren' und ggf. auch Schnittstellen definieren.

Und besonders wichtig, Projekthandbuch =) Und dort immer alles schön nachführen...
 
Hm, das ist ja so ein Problem. Die Funktionalitäten existieren ja schon, sind aber so zusammengeschustert aus etlichen JavaScript, PHp und HTML Dateien. Das erstreckt sich manchmal über mehrere Dateien so das ich momentan gar nicht weiß wie ich das ganze umstricken soll, eventuell werde ich manche Module komplett neu schreiben müssen. Steh halt gerade vor einem Haufen und versuche den irgendwie zusammenzukehren. Problem ist halt auch, ich weiß zwar schon was Modularisierung etc ist. Aber praktisch habe ich noch nie ein komplettes Projekt mit Modulen und Templates aufgebaut.
 
Erstmal Herrzlichen Glückwunsch, es gibt nichts schlimmeres als von anderen schlecht entwickelten PHP Code zu entwirren (ich spreche da aus eigener Erfahrung die ich vor Jahren habe mache machen dürfen *heul*)

Dennoch:

Das erste was du machen solltest:
Arbeite bei all dem mit phpunit. PHPUnit Pocket Guide
Schreibe sehr sehr umfassend die unit tests. Auch für Dinge bei denen du der Meinung bist das sie auf jedenfall funktionieren müssten.
Es lässt sich einfacher und mit weniger Stress refactoren wenn mann den Testaufwand so gering wie möglich hält ohne jedoch halbherzig zu testen.

Finde heraus welche Daten woher kommen und wie die genutzt werden. Heisst nicht nur die GET / POST Daten sondern auch Daten aus der Datenbank, Triggervariablen usw.
Das ist ein langwieriger Prozess aber um unerwartetes Verhalten auszuschliessen / minimieren unerlässlich.

Kapsel besonders diese Trigger Variablen. Damit meine ich jenen schlechten Code der aufgrund dem Wert einer Variable die linear um einiges früher gesetzt wird verschiedene Logik auszuführen.
Ein trigger wäre bsp eine Variable $appendWhere = 1; die mehr als max 10 Zeilen vor dem Einsatz gesetzt wird. Noch schlimmer wirds wenn der Dep...ähh..Programmierer solch fiese Trigger auch noch dynamisch setzt $$do = 1; dann wird die Nachvollziehbarkeit und das umarbeiten zu einem russischen Roulette.

Kapsel deine Daten und mach sie über Properties zugänglich. Damit kannst du die Daten sehr zentral validieren.

Sobald du definiert hast welche Preconditions du hast kannst du deine API darauf aufbaun. Es ist einfacher sich auf eine konkrete Instanz einer Klasse zu einigen bei allen Modeln als auf POST/GET Daten.
Schreibe demnach die Module erst so um das sie mit diesen Datenobject arbeiten.

Wenn dies der Fall ist kannst du Modul für Modul in Ruhe schönschreiben.
 
PS: der Titel des Threads ist etwas falsch gewählt. Denn ich würde bei diesem Projekt ganz anders rangehen. Aber auf eine Art und Weise, die zu beschreiben dir nicht weiterhelfen wird ;)
Drum habe ich meine Antwort geschrieben nach dem Thread: Wie soll ich an das Projekt rangehen.

Ich persöhnlich würde so an das Projekt rangehen:
Ankündigen das mann jenes PHP gefrickelte CMS nach /dev/null schicken soll und ein bestehendes CMS das sauber entwickelt wurde und mit BSD / lgpl Lizenz entwickelt ist nehmen und anpassen.
 
Ok danke erstmal. Das ist schonmal eine Hilfe. Was mir momentan noch große Probleme bereitet sind die Module. Was liefert so ein Modul am besten zurück als Wert? Und vorallem wenn es mit anderen zusammenarbeiten soll? Z.b. Das Menü mit einer Rechteverwaltung.
 

Neue Beiträge

Zurück