Powiedzcie mi, bo jestem jeszcze młody i głupi. Jak mam zachowywać w się teamie, gdzie projekt nie ma nic wspólnego z współczesną inżynierią oprogramowania?
Między innymi zauważyłem:
- brak jakichkolwiek testów
- brak abstrakcji w klasach - po prostu klasa to bardziej namespace dla długich metod
- nadużywanie dziedziczenia (dziedziczenie już występuje, gdy klasa bazowa ma jakąś funkcję), a w rzeczywistości ani klasa bazowa ani klasa pochodna nie powinna jej posiadać (tylko zupełnie inna klasa)
- grube modele (active record na potęgę - to jednoczesnie pełni odpowiedzialność za dane, logikę i jakieś pomocnicze przeliczenia) Ja bym wszystko wydzielił z niego, tak, żeby łatwiej to testować.
- nazewnictwo czasem polskie czasem angielskie
- numerowane kolumny w tabelkach
- brak transakcji, wszystko leci na pałę
- podejście na krótką metę - typu skocz dopisz ifa i po sprawie
Wiem, że taki projekt nie jest przykładem dobrego oprogramowania i, że właściwie więcej bym się nauczył, gdybym zmienił pracę. No, ale nie chciałbym uciekać z takiego powodu. Powiedzmy, że kasa się zgadza, a ja wierzę, że praca nad legacy code wpłynie na mój skill.
Z drugiej strony widzę, że mam przed sobą nie tylko projekt do pokonania, ale również zespół, który chyba przywykł do klepania. Nie chciałbym już w pierwszych dniach mój zestaw punktów zaufania wykorzystać do krytyki i pokazywania jaki mają słaby kod, bo to było nie na miejscu.
No, ale jakieś działanie wypada podjąć inaczej z czasem szlag mnie trafi jeśli będę pisał tak jak oni.