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.

Tom Sapletta
Facebooktwitterredditpinterestlinkedinmail

Author: Tom Sapletta

Łączę doświadczenie z nowymi technologiami. Od 10 roku życia jestem pasjonatem komputerów i programowania. Moim pierwszym (mikro)komputerem był ZX-Spectrum a językiem programowania: Basic. Od 2010 roku programuję zawodowo, objektowo i funkcjonalnie w architekturach monolitycznych i mikro-usługowych. Obecnie tworzę architekturę ekosystemów dla liderów rynku w firmie Softreck.