Phunc / funkcjonalna implementacja PHP w teorii
W tym artykule przedstawiam powody dla których decyduję się na używanie implementacji phunc.
Phunc / funkcjonalna implementacja PHP w teorii
Zasady tworzenia
Contents
Najmniejszą zmienną jest obiekt, nie deklaruje się typów prostych, tylko obiekty
Najmniejsza funkcją jest klasa, każda nowa funkcjonalność jest implementowana jako nowa oddzielna klasy.
Istnieją tylko poprawne dane, każdy obiekt, który istnieje jest poprawny, zwalidowany w konstruktorze
Cechy kodu
- Funkcyjność
Funkcyjne programy daje wiele korzyści, neistety nie każdy język pozwala na łatwą implementację - Obiektowość
Daje przewagę w określaniu struktur modeli danych i powiązań między nimi - Funkcyjne reprezentacje klasy
Połączenie obu technik tworzenia oprogramowania daje rezultat w postaci tworzenia jak z klocków, gdzie dane i funkcje mogą być łatwo zastępowana. - Single responsibility
Poprzez tworzenia klasy jako reprezentacji jednej funkcjonalności, łatwo poprzez jej nazwę można zdefiniować jej przeznaczenie.
Dlaczego tworzenie jednej klasy/funkcjonalności jest korzystniejsze niż tworzenie klasy z wieloma metodami?
- refaktoryzacja, łatwe przenoszenie/zastępowanie pojedynczych funkcjonalności
- płaska struktura, waga struktury i koszty jej utrzymania nie są w ogóle brane pod uwagę przy tworzeniu aplikacji.
Utrzymanie, edycja, zmiana struktury jest jednym z głównych problemów przy refaktorzyacji
Przy wykorzystaniu namespace i tworzeniu małych bibliotek, nie jest problemem płaska struktura z kilkunastoma plikami w folderze.
Podczas gdy projekt rośnie i ulega specjalizacji, łatwe staje się przeniesienie jednej klasy do innego projektu, niż przenoszenie metody, lub zmiany postaci klasy.