Kontrola wersji
Ponieważ pracujesz w zespole, w twoim najlepszym interesie jest, aby przejść do czegoś rozproszonego. Twoimi kandydatami są Git i Mercurial. Oznacza to, że Twój zespół może zatwierdzać lokalnie bez przerywania projektu, ale nadal śledzić swoją pracę, a następnie przekazywać te zatwierdzenia do centralnego serwera. Jest także znacznie szybszy i ma mniej konfliktów scalania, ponieważ kod jest śledzony raczej jako zestawy zmian niż wersje. Przeczytaj przewodnik hginit (napisany przez współzałożyciela przepełnienia stosu nie mniej), a zrozumiesz nieco więcej o tym, czym jest DVCS. http://hginit.com/
Powinieneś także użyć repozytorium do wdrożenia zamiast rsync lub ftp.
Rozwój oparty na testach
W zależności od tego, co robisz, testowanie może zmarnować dużo czasu. Nie twierdzę, że powinieneś go całkowicie pominąć, w przypadku mniejszych projektów to narzut. Jeśli piszesz bibliotekę lub duży projekt długoterminowy, napisz dla niego testy. Testy pomogą w fazie konserwacji. Pamiętaj, że TDD nie może znaleźć wszystkich twoich błędów. Będą problemy z doświadczeniem użytkownika, problemy z układem, problemy z wydajnością i tak dalej.
Debugowanie
Xdebug jest w zasadzie twoim jedynym wyborem tutaj. Dobrze integruje się z Netbeans. Jeśli czujesz potrzebę drukowania zmiennych, powinieneś użyć pliku dziennika. Użyj funkcji dziennika frameworków, jest to znacznie bezpieczniejsze w produkcji.
Planowanie / diagramy
Jeśli używasz dobrego frameworka, nie powinieneś zbytnio robić szczegółowych diagramów. Zachowaj prostotę i pracuj w krótszych cyklach wydawania, łatwo jest zaplanować więcej. Wymagania i specyfikacje projektu na pewno się zmienią, więc nie spędziłbym na nich całego twojego czasu. Pamiętaj, że specyfikacja kodu JEST na najbardziej szczegółowym poziomie.
Użyj narzędzia do śledzenia błędów (patrz poniżej), aby podzielić specyfikację na zadania, które możesz przypisać członkom zespołu. Użyj centralnego narzędzia do dokumentowania projektów, narzędzie do śledzenia błędów prawdopodobnie będzie mieć wiki.
Możesz użyć narzędzia takiego jak Mysql Workbench do projektowania schematów baz danych w diagramach i eksportowania ich jako SQL.
Ramy i OOP
To chyba najważniejsza część. Znajdź popularną platformę, która będzie wspierać szybki rozwój i ponowne użycie kodu. Niektórym się nie spodoba, że to mówię, ale ramy powinny dyktować sposób, w jaki pracujesz. Powinien zapewniać strukturę, aby jeden programista mógł przełączać projekt i dokładnie wiedzieć, gdzie jest kontroler dla określonej strony, jakie dokładnie są zmienne szablonu i jak wykonać zapytanie do modelu. Niektóre frameworki pozwalają tutaj na zbyt dużą elastyczność i zauważysz, że programiści nie zawsze używają frameworku w ten sam sposób. Lubię filozofię python; powinien istnieć jeden oczywisty sposób na zrobienie wszystkiego. Dlatego lubię django i szyny, są dość uparte i to oznacza, że mogę spojrzeć na czyjś kod i zrozumieć, co on robi. Symfony wygląda tutaj jak najlepsza opcja,
Istnieje wiele pytań „jakie ramy” dotyczące przepełnienia stosu, takich jak to:
/programming/2648/what-php-framework-would-you-choose-for-a-new-application-and-why
Śledzenie
błędów Uczyń swój zespół dobrym narzędziem do śledzenia błędów stworzonym dla programistów. Nie używaj czegoś zbyt uproszczonego, jak basecamp. Redmine i Unfuddle to dwa przykłady doskonałych programów do śledzenia błędów, mogą również śledzić czas i integrować się z twoimi repozytoriami. Twój zespół powinien używać tego narzędzia do komunikowania się w kwestiach zamiast e-maila lub komunikatora. Ułatwia to nowemu deweloperowi, gdy dostępna jest historia błędów i dokumentów. W tym artykule dokładnie wyjaśniono, co powinien zrobić każdy dobry moduł do śledzenia błędów i dlaczego. http://www.joelonsoftware.com/articles/fog0000000029.html