Jak działa Laravel?
Zabierając się do pracy nad nowym projektem lub przepisania/refactoringu obecnego systemu, mamy kilka możliwości:
- pisać wszystko samemu (bo jesteśmy masochistami albo wyznawcami teorii spiskowych i nie ufamy autorom gotowych komponentów),
- piszemy część sami, posiłkując się gotowymi bibliotekami przy konkretnych problemach/funkcjach
- stawiamy na framework (np. Laravel)
Idea Laravela i innych frameworków
No tak, tylko skoro czytasz ten artykuł, to niby czemu miałbyś w ogóle rozważać Laravela, skoro nie wiesz, czym jest i jak działa. Dlatego skupię się tutaj nie tylko na wypunktowaniu korzyści, jakie daje nam framework (czyli między innymi Laravel), ale także skąd te korzyści wynikają. Oczywiście nie twierdzę, że framework to jedyna słuszna opcja w każdym przypadku. Ale od początku.
Tak jak wspominałem w poprzednim artykule z tej serii (Co to jest Laravel), stając przed kwestią rozwiązania programistycznego problemu, możemy albo napisać to rozwiązanie samodzielnie, albo skorzystać z gotowych rozwiązań (jeśli istnieją) udostępnionych w Internecie przez ludzi, którzy stanęli przed tym samym lub bardzo podobnym problemem przed Tobą (bardzo często poświęcając temu konkretnemu zagadnieniu więcej czasu niż Ty możesz) i zdecydowali się swoje rozwiązanie udostępnić innym.
Jeśli brzmi to dla Ciebie jak kusząca perspektywa, możesz rozważyć użycie frameworka dla całej swojej aplikacji. Dlaczego od razu frameworka? Ponieważ zyskujesz czas, który poświęcony musiałby być na:
- przegląd dostępnych komponentów obsługujących Twój problem
- selekcję komponentów, analizę ich różnic, konfiguracji, dostępności, bazy użytkowników, istniejących problemów czy częstotliwość aktualizacji,
- konfigurację wybranego komponentu i spięcie go z resztą Twojej aplikacji
W Laravelu (i innych frameworkach) odchodzą Ci te dylematy, przynajmniej w kwestii funkcjonalności przewidzianych dla większości aplikacji internetowych – takich jak uwierzytelnianie czy obsługa bazy danych. Autorzy frameworka wykonali tę pracę za Ciebie – nie tylko w kwestii doboru komponentów obsługujących najpopularniejsze funkcje, ale również sposobu ich współpracowania ze sobą w obrębie aplikacji i korzystania z nich przy rozwijaniu dalszych funkcjonalności.
Powiadasz, że nie planujesz jednak korzystania z zewnętrznych bibliotek i wszystko napiszesz sam? W takim przypadku też warto rozważyć frameworka. Wyobraź sobie tylko ogrom nakładu czasu i pracy, jaki będziesz musiał włożyć w przemyślenie i opracowanie choćby tak banalnej sprawy jak struktura plików i katalogów. Gdzie umieścić klasy? Co z silnikiem szablonów? Czy pliki assetowe umieszczać w folderze assets czy bezpośrednio w głównym katalogu?
Nie mówiąc już o sprawach o większym znaczeniu – np opracowanie routingu. Jakie metody, jakie klasy, jaka obsługa parametrów, jak rozwiązać przekazywanie danych, walidacja, kolejność parametrów itp – pytań jest mnóstwo, a wszystko co wymyślisz, musisz pewnie też udokumentować, bo pewnie piszesz w zespole lub kiedyś przyjdzie ktoś, kto będzie kontynuował Twoje dzieło.
Laravel zwalnia Cię z tych problemów, a zaoszczędzony czas możesz wykorzystać by skupić się na programowaniu kwestii nietuzinkowych, indywidualnych dla Twojego projektu. A propo pracy w zespole – wykorzystanie frameworka pozwala Ci łatwo dodać nowych programistów do projektu – wystarczy, że wcześniej mieli do czynienia z routingiem w Laravelu, a z pewnością poradzą sobie z routingiem w każdej innej aplikacji budowanej na Laravelu.
Tak jak wspominałem, framework nie jest idealnym wyborem dla każdego projektu. Dobry framework (a takim jest Laravel) nie narzuca Ci nic z góry, a jedynie -porównując do budownictwa – proponuje solidny fundament pod własny projekt z sugerowanymi wytycznymi, w jaki sposób budować „ściany”.