2012-04-07 7 views
17

Ich entwickle seit 2006 TYPO3-Projekte und Projekte werden größer und komplexer. Die Einrichtung einer einfachen CMS-Site mit einem Kontaktformular und einem Nachrichteneintrag ist Routine.Wie man große TYPO3 Projekte managt & entwickelt?

Gerade jetzt beendeten wir ein größeres Projekt: Eine Plattform für ein internationales Unternehmen mit unzähligen Erweiterungen: Anmeldung & Registrierung, Nachrichten, Auflisten Datenbankeinträge, dynamische Kontaktformulare, Umfragen & Statistiken, Intranet-Funktionen: Dokument & Download hochladen, mehrere Backend-Einstellungen für TCA-Modifikationen usw.

Die Projektmanager haben sich bei uns Entwicklern aufgeregt, weil manchmal, nachdem wir auf Funktion X fertig waren und später die Funktion Y auf den Dev-Server übertrugen, die Funktion X unterbrochen wurde. Dies stand im Zusammenhang mit TypoScript-Einstellungen, Erweiterungsabhängigkeiten, Versionsfehlern oder manchmal einfachen Programmierfehlern und Tippfehlern. Ich weiß, wie die letzteren kümmern, aber im Allgemeinen:

Aus Ihrer Erfahrung:

Wie können wir ein fehlersicheres System in TYPO3 zu entwickeln, in der alles in der Hand und Erweiterungen don funktioniert nicht in die Quere kommen? Mit anderen Worten: Wie können wir Funktionalitäten (Erweiterungen) sichern und isolieren - und diese Interdepency-Probleme vermeiden?

Wir arbeiten in einem DEV-Team mit zwei Entwicklern, und wir verwenden bereits:

  • Subversion Repository
  • Lokale DEV-Server für die Entwicklung & Prüfung
  • Externe TypoScript Konfigurationsdateien, aufgeteilt in einzelne Dateien für jede Nebenstelle

Edit f oder Bountyhunters:

Was ich suche ist eine Best-Practice-Zusammenfassung, die diese Themen umfassen könnte:

  • Allgemeine Workflow-Gewohnheiten
  • Allgemeine Codierung Gewohnheiten
  • Zuverlässigkeit unserer Subversion verpflichtet (oder Git)
  • Komponententest (PHPUnit, Selen?)
  • Bereitstellung (Ich habe noch nicht herausgefunden, wie automatisierte Bereitstellung kann er lp us)
  • TypoScript Best Practices
+0

Verwenden Sie eine der vielen automatischen Bereitstellungssysteme. Sehen Sie sich die englisch und dev Mailinglisten Archive an. Ähnliche Threads werden häufig angezeigt. – pgampe

+0

Danke - leider konnte ich in der englischen Mailingliste nichts zu "automatische Bereitstellung" finden, werde aber weiter schauen. Kannst du ein System für PHP/TYPO3 empfehlen? Wir denken bereits daran, PHPUnit und Selenium zum Testen zu verwenden, ich nehme an, dass dies auch eine wichtige Verbesserung sein könnte. – Mateng

+0

Werfen Sie einen Blick hier: https://usetypo3.com/good-practices-in-projects.html – Daniel

Antwort

24

Probleme, die wir in großen TYPO3-Projekten finden konnten, sind nicht viel anders als jedes Entwicklungsprojekt.

Allgemeine Praktiken:

Häufige TYPO3 Praktiken:

Weitere Referenzen:

Extensions komplexe TYPO3-Installation verwalten helfen könnte:

Nutzung moderner Projektmanagementmethoden & Tools

  • Scrum, Kanban, Lean Entwicklung Prinzipien
  • Bugtrackers wie Redmine, Trac

Bücher:

+0

Das sieht wie eine umfangreiche Sammlung aus, danke. Ich benutze eigentlich selten Konstanten, eher Setup - ein Detail gelernt.Haben Sie persönlich die Erweiterung phpunit verwendet, die in Oliver Klees Folien erwähnt wird? – Mateng

+0

Persönlich verwende ich es jedes Mal, wenn ich einige komplexe Projekte/Erweiterungen zu entwickeln habe. –

+1

UPDATE: Eine Liste empfohlener Erweiterungen für das TYPO3-Installationsmanagement wurde hinzugefügt. –

3

ich absolut recommmend mit PHPUnit für Unit-Tests starten, aber nicht vergessen, Unit-Tests wirklich darüber, wie Sie den Code in erster Linie zu erstellen, nicht in der Regel etwas, das Sie später hinzufügen. Aber natürlich, besser spät als nie.

Sie sollten einen Build-Server wie jenkins/hudson oder atlassian bamboo einrichten. Letzteres ist ziemlich nett und integriert sich in Zend Studio, was meiner Meinung nach die bessere Wahl ist, wenn man in PHP entwickelt.Im Allgemeinen werden die atlassian Produkte für Software-Projekte weit verbreitet. (Jira + confluence + greenhopper insbesondere)

+0

Tanks für Ihre Eingabe. Wie wir in Netbeans entwickeln - ist Bamboo immer noch eine gute Wahl, da es noch kein Bamboo Netbeans Plugin gibt? Wäre es effizient, ohne Netbeans-Integration genutzt zu werden? Wird ein Setup dieser Art auch für TYPO3-Umgebungen empfohlen? – Mateng

+0

Sicher. Bamboo ist ein eigenständiges Produkt und die Integration ermöglicht es Ihnen, Kommentare und Hinweise zu erhalten, wo der Build direkt in den Code fehlgeschlagen ist. Sie können natürlich alles auf der Webseite sehen und ich denke sogar, dass sie eine Handy-App dafür haben. Aber nimm mein Wort dafür nicht, schau dir ihre Videos an. – jornare

2

Ich würde auch empfehlen, phpunit auf jenkins einzurichten - siehe http://jenkins-php.org/ als Vorlage, obwohl ich gutes Feedback über Teamcity gelesen habe. Dann, abhängig von dem Code, den Sie schreiben, Setup-Unit-Tests (für rohen PHP-Code, vielleicht ein bisschen mit Mocks), Integrationstests (API-und Modul-Konnektivität) und Systemtests (Selen).

Sobald Sie es nach jedem Build ausgeführt haben, können Sie sicher sein, dass mindestens die abgedeckten Funktionen funktionieren. Das Problem besteht jedoch darin, dass Sie mehr Zeit für das Schreiben von Tests und deren Unterstützung sowie für das Nachdenken über testbaren Code benötigen. Bedenken Sie auch, dass Sie nicht alles abdecken können - das ist nicht der Punkt. Sie müssen kritische Pfade abdecken.