W ostatniej pracy dla janusza spotkałam się w kodzie PHP z użyciem słowa kluczowego trait
Nie z użyciem traitu o którym w dokumentacji PHP jest napisane że pozwala na code reuse i jest odpowiednikiem znanego z C++ wielobazowego dziedziczenia.Wtedy byłby zdefiniowany trait, w tracie funkcje, które są potrzebne w różnych klasach, a których nie można odziedziczyć po wspólnym przodku, a następnie w każdej z nich use NaszTrait; I miałoby to sens. Piszący kod "innowator" zrobił inaczej, traktując traity chyba jako możliwość podzielenia kodu jednej klasy na kilka plików, coś co kiedyś robiło się za pomocą niepolecanego sposobu include . W każdym razie te traity , które tam się znajdowały były ściśle powiązane z logiką klasy która ich używała, nie było sensu ich wykorzystywać gdziekolwiek powtórnie.
Sztuka dla sztuki bym powiedziała, ale zarówno piszący to geniusz jak i nadzorujący niewyje* junior mogli (nie)zgodnie z prawdą twierdzić że w projekcie używali traitów
Co ciekawe wcale to nie jest bardzo nowa właściwość PHP, ale chyba mało popularna
Podobnie było z opisywanym kiedyś przeze mnie tu na forum przypadkiem użycia wyjątków w c# do sterowania normalnym przebiegiem programu wyjątki kompletnie bez sensu
o co chodzi z tym podejsciem? to nawet nie jest overengeeniering. To jest głupota
Zaczynam podejrzewać że rzeczoni juniorzy widzą gdzieś przykład. Np w dokumentacji do PHP. Przykład ma zobrazować najprostsze użycie danej rzeczy, więc jest pokazane:
- definicja traitu
- definicja klasy go używającej
tego co jest napisane powyżej i poniżej już nie przeczyta, wystarczy że ma przykład i myśli że już zgłębił temat. Czyżby trend który należałoby nazwać example driven programming?