9 Rzeczy o Które Warto Zadbać Zaczynając Projekt Na Drupalu
Twoja firma ma do zrobienia złożony serwis internetowy. Wybrano Drupala jako główną technologię. Żaden z programistów PHP nie robił nic wcześniej w Drupalu lub ma małe doświadczenie. Jeśli to Twój przypadek to przeczytaj ten tekst zanim zaczniesz realizację swojego projektu. Poznasz ryzyka i lepiej przygotujesz się do rozpoczęcia prac.
Poniżej znajdziesz 9 istotnych rzeczy, na które należy zwrócić uwagę przed rozpoczęciem prac programistycznych. Jeśli odpowiednio zadbasz o każdy z wymienionych obszarów to sprawnie zrealizujesz projekt.
1. Zadbaj o odpowiedni przepływ pracy w zespole
Budowa serwisów internetowych na Drupalu przez jedną osobę wygląda zupełnie inaczej niż praca zespołu. Jeśli zbudujesz zespół z freelancerów, którzy dotychczas pracowali samodzielnie z Drupalem to spodziewaj się problemów. Jeśli jest to zespół, który zna PHP, ale nie ma doświadczenia z Drupalem to spodziewaj się jeszcze większych problemów.
Przed rozpoczęciem należy ustalić wspólne zasady, wspólny sposób pracy. Do ustalenia są następujące tematy:
- Zasady pracy w repozytorium kodu (Git lubi inny)
- Standardy kodowania
- Przepływ kodu
- Przepływ bazy danych i plików
- Podział zadań w taki sposób, aby ze sobą nie kolidować i nie pracować na tych samych fragmentach kodu. Jeśli się nie da, to często się komunikować, aby nie powielać pracy.
Dzięki tym ustaleniom zespół będzie wiedział jak wspólnie pracować i skupi się na realizacji zadań programistycznych.
2. Realizuj zadania w jednym standardzie
W Drupalu często każde zadanie programistyczne można wykonać na wiele sposobów. Ważne, jest, aby ustalić wspólne zasady.
Jednym z przykładów jest sposób tworzenia treści. Warto ustalić czy treści będą tworzone z pomocą modułu Layout Builder, Paragraphs, Gutenberg czy innym podobnym rozwiązaniem. Używanie jednocześnie kilku modułów może skończyć się problemami.
Takich decyzji jest znacznie więcej w Drupalu. Warto ustalić wspólnie standardy.
Konieczny jest też system pilnowania tych zasad, np. jeśli zbliża się termin zakończenia sprintu czy etapu, to nie powinniśmy iść na skróty tylko jednak trzymać się standardów.
3. Poznaj dobrze opcje konfiguracyjne w Drupalu
Często spotykany problem jeśli zaangażujemy programistów PHP do Drupala. Zaczynają dużo zadań rozwiązywać przez tworzenie kodu. Czasem poświęcają dziesiątki godzin na tworzenie funkcjonalności, która już jest w Drupalu.
W wielu przypadkach wystarczy wejść w odpowiednie miejsce w panelu administracyjnym, kliknąć kilka razy i gotowe.
To właśnie rozbudowane opcje konfiguracyjne rdzenia Drupala i jego modułów są siłą Drupala. Pozwalają oszczędzać setki czy nawet tysiące roboczogodzin na pracach programistycznych.
Wykorzystaj gotowe opcje w Drupalu w swoim projekcie i oszczędź klientowi pieniądze.
4. Poznaj dobrze API Drupala
Poznanie API Drupala pomaga realizować wiele zadań szybciej niż używając tylko PHP.
Jeśli ktoś nie zna API Drupala, to zdarza się mu tworzenie funkcji czy klas, które już są w rdzeniu Drupala. To może okazać się marnotrawstwem czasu.
Nieznajomość API to czasem też tworzenie trudno wykrywalnych błędów. Przykładem może być dodanie przekierowania znanego z PHP header('Location: '.$newURL); w hookentityinsert. Jeśli w systemie jest wiele modułów wykorzystujących ten hook, to możliwe, że nie wszystkie się wykonają po takim dodaniu przekierowania.
Takich przykładów można znaleźć więcej. Przed rozpoczęciem prac warto zapoznać się z działaniem Drupala. Minimum to przeczytanie jednej z książek opisujących tworzenie modułów dla Drupala.
Drugim ważnym źródłem wiedzy to moduł Examples. Tutaj mamy ogromną ilość przykładów. Warto przejrzeć kody tego modułu.
5. Używaj View-mode
Tryby wyświetlania encji to bardzo przydatna funkcjonalność systemu. Pozwalają dostosować wyświetlanie treści zależnie od miejsca gdzie chcemy ją wyświetlać. Możemy zdefiniować dowolne tryby i je wielokrotnie używać.
Początkujący programiści często zamiast wyklikać kilka różnych trybów i je skonfigurować, to każdy sposób wyświetlania kodują. Nie warto. Lepiej wykorzystać gotowy mechanizm w Drupalu i szybciej ralizować zadania.
6. Twórz encje jeśli planujesz tworzyć własne tabele w bazie danych
Niektóre wymagania biznesowe wymuszają stworzenie własnych tabel w bazie danych. Pracując z Drupalem warto takie tabele dodawać do bazy tworząc jednocześnie Encje.
Otrzymujemy wtedy tabelę, która obsługiwana jest klasami Entity i możemy dane z tej tabeli łatwo integrować z całym Drupalem, np z modułem Views.
Jeśli nie użyjemy Encji to właściwie wszystko wokół tej tabeli musimy zaprogramować, np formularze czy strony wyświetlające dane.
7. Pisz testy automatyczne
Na Drupalu tworzy się najczęściej średnie i duże serwisy, które rozwijane są przez wiele miesięcy lub lat. Rozszerzając funkcjonalność może się zdarzyć, że zepsujemy coś co już działa poprawnie.
Jeśli nie chcemy regularnie ręcznie sprawdzać czy wszystko poprawnie działa to koniecznie musimy mieć napisane testy automatyczne.
Drupal ma w sobie framework PHPUnit do testów automatycznych. Można też skorzystać z innych frameworków, np Codeception oraz rozszerzenie Visualception.
8. Zautomatyzuj budowanie aplikacji i wdrożenie na serwer produkcyjny
Proces wdrażania nowych zmian na serwer produkcyjny oraz proces budowania serwisu na lokalnym środowisku programisty powinien być zautomatyzowany. Każda z osób w zespole powinna korzystać z tych samych skryptów do budowania aplikacji.
Eliminujemy wtedy problemy różnic w środowiskach, np na jednej wersji ktoś coś przestawił w konfiguracji, a na drugiej nie. Wtedy nie wiadomo co jak powinno działać poprawnie, pojawiają się nieporozumienia, niepotrzebnie tracimy czas.
Wszystkie zmiany powinny być wprowadzane przez kod. Zespół powinien używać repozytorium kodu (np. Git). Wtedy jest pewność, że na każdej instancji aplikacji mamy taką samą konfigurację.
9. Doradzaj klientowi, jeśli można zrobić coś trochę inaczej ale znacznie szybciej
Drupal ma ogromną ilość funkcjonalności i modułów dodatkowych. Za ich pomocą można zbudować ogromne serwisy internetowe.
Czasem gotowy moduł nie spełnia w 100% wymagań zapisanych w specyfikacji ale wystarczy porozmawiać o tym z klientem i najczęściej klient zgodzi się na małą zmianę, aby zaoszczędzić czas.
Podsumowanie
Powyżej wymieniłem najważniejsze rzeczy, na które powinieneś zwrócić uwagę budując pierwszy większy serwis internetowy oparty o CMS Drupal.
Programiści Drupala w Droptica doskonale wie o tych wszystkich zagadnieniach. Oszczędzamy przez to pieniądze naszych klientów i dostarczamy dużo solidnego kodu w krótkim czasie. Nie musimy skupiać się na eliminacji problemów tylko na dostarczaniu wartości klientom.
Jeśli planujesz budowę serwisu internetowego na Drupalu to koniecznie przeanalizuj wymienione wyżej potencjalne problemy, a osiągniesz zadowalające efekty.