W każdym zawodzie niezwykle ważnym elementem wykonywanej pracy jest warsztat. Warsztat w rozumieniu narzędzi oraz metodyki. Naturalnym jest, iż nie ma uniwersalnego rozwiązania, zadowalającego wszystkich programistów. Każdy z nas ma inne przyzwyczajenia, doświadczenie a nawet tok myślowy prowadzący do rozwiązania problemu. Niemniej kilka powtarzających się obszarów można wyodrębnić i stworzyć z nich warsztat programisty PHP. Powinien on składać się z:

  • IDE – współczesne IDE posiadają szereg narzędzi przyspieszających prace nad projektem. Te niewielkie oszczędności czasu w perspektywie całego dnia potrafią znacząco zwiększyć wydajność programisty. Wystarczy wspomnieć o generowaniu szablonów klas, automatycznym deploy’u na serwer, wbudowanej konsoli, wbudowanych narzędziach systemów kontroli wersji, integracji z systemem zadaniowym czy podpowiadaniu składni.
  • testy – każdy duży projekt potrzebuje testów. Wiem, zajmują dużo czasu, wymagają samodyscypliny i są nudne. Jednak bez nich późniejsze utrzymanie projektu to koszmar, a każda zmiana w kodzie może spowodować nieprzewidziane konsekwencje.
  • debuger – debugowanie aplikacji jest integralną częścią życia zawodowego programisty. Od sposobu debugowania uzależniony jest czas potrzebny na wykrycie “wąskich gardeł” oraz sprawdzenie przepływu aplikacji. Debugować można na dwa sposoby – var_dump (bardzo popularny i dający mierne efekty) lub Xdebug (albo coś podobnego) dostarczający pełni informacji o badanym projekcie. Co więcej, debuger pozwala wykonywać kod wiersz po wierszu i na każdym kroku sprawdzić aktualny stan aplikacji.
  • framework – nie ma projektu, który nie rósłby z czasem. Im większy projekt, tym więcej jest potrzebnych ludzi do jego utrzymywania. Jeśli od początku będzie stosowany popularny framework, czas wdrożenia nowej osoby znacząco się skróci. Ponadto korzystanie z frameworka wymusza stosowanie przyjętych zasad programowania co z kolei przekłada się na wyższą jakość kodu.
  • system kontroli wersji – czasy, w których programista przechowywał na dysku “historię” projektu, minęły bezpowrotnie. Wersjonowanie pozwala w błyskawiczny sposób przywrócić projekt do dowolnego stanu oraz prześledzić wprowadzane zmiany. Niezaprzeczalną zaletą systemu kontroli wersji jest możliwość podzielenia dużego projektu na podprojekty i utrzymywanie ich jako osobne repozytoria.
  • system zadaniowy – miejsce do spisywania zadań do wykonania. Jeśli nad projektem pracuje więcej osób, jest to doskonały sposób na śledzenie zmian w projekcie oraz informowanie innych członków zespołu o postępie prac.
  • wiki – często zapomniany element układanki, mimo iż tak samo ważny jak poprzednie. Centralne miejsce do dokumentowania projektu, będące jednocześnie obowiązkową lekturą nowoprzybyłych członków zespołu.

Do powyższych punktów należy dodać jeszcze jeden, należący do tzw. umiejętności miękkich – brak klapek na oczach lub bardziej profesjonalnie – otwarty umysł. Świat się nie kończy na PHP i jeśli można zrobić coś szybciej/lepiej/taniej w innej technologii, to nie ma powodu, aby tego nie zrobić.