Hej, mam ostatnio trochę irytujące sytuacje w pracy. Jestem typem programisty, który stara się być świadomym technologii jakie używa i zawsze poczytam dokumentacje, good practises, blogi, forum, popytam ludzi doświadczonych w danej technologii - nie ufam bezgranicznie tutorialom.
Mamy obecnie sytuacje, gdzie musimy jak najszybciej dociągnąć wersję MVP do końca, bo biznes goni. I to jest zrozumiałe.
Mam jednak sytuacje, gdzie robiąc review naszemu team leadowi widzę, że kod działa, biznes dostaje to co chce, ale kod jest strasznie źle napisany (np javowe optionale stosowane tak jak null checki z metodami ifPresent() oraz get()). Jak piszę uwagi odnośnie tego, to dostaję odpowiedź, że wymaganie działa, więc nie traćmy czasu na robienie sztuki.
Drugi przykład był taki, że w powiedzieliśmy sobie teamowo, że używamy w React funkcyjnych komponentów i react hooków skoro tak rekomenduje facebook. Poświęciłem sporo czasu na ogarnięcie tego, zrozumienie jak zarządzać stanem, długie godziny rozkmin jak poprawnie używać tych react hooków itd. Robię teraz te komponenty funkcyjne i wszystko fajnie działa, kod wygląda lepiej. Robiłem ponownie review, gdzie był zrobiony przez team leada komponent klasowy a nie funkcyjny, więc napisałem, że postanowiliśmy inaczej .. dostałem odpowiedź, że żal tracić czasu na przerabianie dla samej sztuki bo nie ma innych profitów. Nie wspomnę o tym, ze przerabianie komponentu polegało na tym, że kodu NOWEGO zostało dopisane 98% całości .. to co było zrobione to zwrócenie JSX bez logiki.
Ja prywatnie nie mam nic do tych ludzi, są niezłymi programistami, kumają czacze, ale po prostu szlag mnie trafia jak ktoś się uważa za leada czy seniora bo ma 1-2 lata expa więcej i jest w projekcie dłużej rok, a nie promuje w zespole chęci rozwoju i jakiegoś takiego szerszego spojrzenia. Byle tylko dowieść wymagania nawet z kodem wątpliwej jakośći.
Nie daje mi spokoju to, że praktycznie nie mam argumentów przemawiających na pisanie dobrego kodu skoro wymagania biznesowe działają mega spoko na słabej jakości kodzie. Można by argumentować to długiem technicznym, ale kurde .. to nie jest źle zaprojektowany kod tylko napisany albo wg starego stylu mimo innej rekomdancji autorów liba albo nieidiomatyczny (np. optionale niezuwane w stylu funkcyjnym) albo narzędzie użyte po to, bo pozwala coś łatwo zrobić, ale generalnie jego zastosowanie jest inne.
Nie wiem, nie macie podobnych sytuacji ? Może faktycznie olać pisanie dobrego kodu .. ale z drugiej strony jak ktoś poświęci czas na ogarniecie poprawnego sposobu używania danej technologii czy libki to ten kod jest o wiele lepszy, czytelniejszy, zwięźlejszy i piszę się go krócej de facto .. ale no to nie przetłumaczysz czasem.