Versionskontrolle
Da Sie in einem Team arbeiten, liegt es in Ihrem Interesse, dass Sie sich für etwas Verteiltes entscheiden. Ihre Kandidaten sind Git und Mercurial. Dies bedeutet, dass Ihr Team lokale Commits durchführen kann, ohne das Projekt zu unterbrechen, aber dennoch die Arbeit verfolgen und diese Commits dann auf den zentralen Server übertragen kann. Es ist auch viel schneller und hat weniger Zusammenführungskonflikte, da der Code als Änderungssätze und nicht als Überarbeitungen verfolgt wird. Lesen Sie den Hginit-Leitfaden (nicht weniger vom Mitbegründer von Stack Overflow geschrieben) und Sie werden ein bisschen mehr darüber verstehen, was ein DVCS ist. http://hginit.com/
Sie sollten das Repository auch für die Bereitstellung anstelle von rsync oder ftp verwenden.
Testgetriebene Entwicklung
Je nachdem, was Sie testen, kann dies viel Zeit kosten. Ich sage nicht, dass Sie es komplett überspringen sollten, für kleinere Projekte ist es Overhead. Wenn Sie eine Bibliothek oder ein großes Langzeitprojekt schreiben, schreiben Sie unbedingt Tests dafür. Die Tests helfen in der Wartungsphase. Beachten Sie, dass TDD nicht alle Ihre Fehler finden kann. Es wird Probleme mit der Benutzererfahrung, Layoutprobleme, Leistungsprobleme usw. geben.
Das Debuggen von
Xdebug ist hier im Grunde Ihre einzige Wahl. Es lässt sich gut in Netbeans integrieren. Wenn Sie das Gefühl haben, Variablen jemals ausdrucken zu müssen, sollten Sie eine Protokolldatei verwenden. Verwenden Sie die Framework-Protokollfunktion, dies ist in der Produktion viel sicherer.
Planung / Diagramme
Wenn Sie ein gutes Framework verwenden, sollten Sie nicht zu viele detaillierte Diagramme erstellen müssen. Halten Sie es einfach und arbeiten Sie in kürzeren Release-Zyklen, es ist leicht zu überplanen. Die Anforderungen und Spezifikationen eines Projekts müssen sich ändern, damit ich nicht all Ihre Zeit damit verbringe. Denken Sie daran, dass die Code-IS-Spezifikation auf der detailliertesten Ebene ist.
Verwenden Sie Ihr Bug-Tracking-Tool (siehe unten), um die Spezifikation in Aufgaben zu unterteilen, die Sie den Teammitgliedern zuweisen können. Verwenden Sie ein zentrales Tool, um die Projekte zu dokumentieren. Der Bug-Tracker wird wahrscheinlich ein Wiki haben.
Mit einem Tool wie Mysql Workbench können Sie Datenbankschemata in Diagrammen entwerfen und als SQL exportieren.
Frameworks und OOP
Dies ist wahrscheinlich der wichtigste Teil. Finden Sie sich ein beliebtes Framework, das die schnelle Entwicklung und Wiederverwendung von Code unterstützt. Einige Leute werden es nicht mögen, wenn ich das sage, aber ein Rahmen sollte bestimmen, wie Sie arbeiten. Es sollte eine Struktur bereitstellen, damit ein Entwickler das Projekt wechseln und genau wissen kann, wo sich der Controller für eine bestimmte Seite befindet, was genau die Vorlagenvariablen sind und wie das Modell abgefragt werden soll. Einige Frameworks bieten hier zu viel Flexibilität, und Sie werden feststellen, dass Entwickler das Framework nicht immer auf die gleiche Weise verwenden. Ich mag die Python-Philosophie. Es sollte einen offensichtlichen Weg geben, alles zu tun. Aus diesem Grund mag ich Django und Rails, sie sind ziemlich eigensinnig und das heißt, ich kann mir einen anderen Code ansehen und verstehen, was er tut. Symfony scheint hier die beste Option zu sein.
Es gibt viele Fragen zum Thema "Welches Framework" wie diese:
/programming/2648/what-php-framework-would-you-choose-for-a-new-application-and-why
Bug Tracking
Holen Sie sich für Ihr Team einen guten Bug-Tracker, der speziell für Entwickler entwickelt wurde. Verwenden Sie nicht etwas über vereinfacht wie Basecamp. Redmine und Unfuddle sind zwei Beispiele für exzellente Bug-Tracker. Sie können auch die Zeit verfolgen und sich in Ihre Repositories integrieren. Ihr Team sollte dieses Tool verwenden, um über Probleme und nicht über E-Mail oder Sofortnachrichten zu kommunizieren. Dies erleichtert neuen Entwicklern die Arbeit, wenn bereits eine Liste mit Fehlern und Dokumenten vorhanden ist. Dieser Artikel erklärt genau, was ein guter Bug-Tracker tun muss und warum. http://www.joelonsoftware.com/articles/fog0000000029.html