Przecież SOLID to największe podstawy podstaw. Ja rozumiem, że teraz jest dużo ludzi po bootcampach którzy nie rozumieją żadnych wzorców projektów i PoEAA to dla nich biblia czarnej magii, ale nie przesadzajmy, rozmawiamy tutaj o pierwszych semestrach inżynierki - tutaj właśnie wchodzić może ta pasja, czy robisz minimum które ktoś ci dał na jakimś kursie czy rzeczywiście uczysz się więcej, poszedłeś na studiach i tam słuchałeś itp.Chociaż to może nie buc nawet konkretnie pasja, a po prostu to czy środowisko zmusza cię do samorozwoju: pewnie w wielu miejscach nie trzeba się za wiele uczyć.—I nie musisz robić tego po godzinach. We właściwie każdej firmie gdzie pracowałem były normalnie dni do nauki. Tutaj nie chodzi o więcej poświęconego czasu, a więcej uwagi i koncentracji.—Chociaż z drugiej strony przyznam, ze dla mnie np. nie ma obecnie gier komputerowych które byłyby większym funem niż HackTheBox. I tutaj może też wchodzi ta pasja, bo znam masę programistów którzy odpoczywają po pracy pykając w gierki które dla mnie wydają się mega nudne - a ja ze swoją pasją mogę jednocześnie grać sobie w HYB ktory jest dla mnie ciekawszy niż taki WoW czy CoD, a jednocześnie pomaga to mojej karierze. Win-win za free ( ͡° ͜ʖ ͡°)—Co to w ogóle za głupi pomysł, że ktoś z pasją nie będzie w stanie podjąć pragmatycznej decyzji? Chyba wręcz przeciwnie, bo będzie bardziej ogarniał jakie są możliwości.Przykład:Czy Rails to dobry framework? Nie za bardzo. Taki tam prosty MVC prowadzący do wielu złych problemów, delivery mechanism połączony z logiką biznesową itd. Trzeba mieć naprawdę specyficzny rodzaj projektu żeby wyszedł naprawdę dobry kod, musi to być dobry match - a we wszystkich innych przypadkach będzie średni. Ale czy zamierzam powiedzieć firmie, że ma go zmienić? No… nie. Bo jest cała masa właśnie takich klepaczy którzy za wiele nie rozumieją i nie zamierzają uczyć się podstaw takich jak SOLID czy DDD, i Rails daje im podstawowe narzędzie żeby coś tam mogli produkować. Wrzucimy im Packwerka żeby kontrolować zapędy kompozycyjne i narka. I dzięki temu, że wiem jakie dobre praktyki łamią Railsy to całkowicie rozumiem gdzie będą się pojawiać problemy.—I tak właśnie zostaje się seniorem i wyżej: rozumiejąc jakie konkretne ryzyko i trasę-offt się podejmuje wybierając takie, a nie inne rozwiązanie i trzeba być całkowicie 100% świadomym, a nie udawać mesjasza który pozjadał wszystkie rozumy i nie musi się od innych programistów uczyć co jest dobre a co śle; i nie wybiera się zawsze na ślepo rozwiązania które podpasuje menadżerom……jako CISO (i CIO jednocześnie) fintechu mógłbym zrobić, że deweloperzy szybciej dowodziłoby taski jakbyśmy całkowicie odrzucili NIST SP 800-218 SSDF - no, ale by wtedy było szybko! Tylko, że kurde odrzucając to jak cokolwiek złego się stanie i staniesz przez komisją FCA albo sądem to będziesz miał przesrane za olanie due care.I czasem trzeba być twardym i w ogole to powiedzieć i wyjaśnić menadżerom, bo oni sami mogą tego trade-offu nie rozumieć! Ślepe robienie dobrze menadżerowi odrzucając dobre praktyki zaprowadzi do pewnego stopnia, ale od pewnych pozycji trzeba mieć już niestety jaja ( ͡° ͜ʖ ͡°)Teraz negocjuje prioretyzacje z board of directors, na mniejszych pozycjach robiłem to z menadżerami: przecież nawet menadżerom nie zależy tylko na szybkości.—Pracowałem kiedyś w konsultingu gdzie wszyscy jechali na CA z DDD, TDD, SOLID jako całkowita podstawa itd. - było super. Trzeba kolegę zamienić i napisać nowy feature w Clojure w ktorym nigdy nie pisałeś w życiu? Nie ma problemu: dzięki DDD bez problemu ogarniesz gdzie musisz coś zmienić w domenie biznesowej z która masz styczność po raz pierwszy, CA da ci prosty framework „zacznij od obiektu domenowego, potem…”, z TDD skopiujesz sobie testy do podobnego feature’a i nawet jak zawalisz coś w kodzie to test zaświeci się na czerwono jako twój pilot, i jak będziesz musiał użyć już czegoś istniejącego to odkryjesz, że dzięki SOLID jest to sprawa wrzucenia injection. Tak samo jak podążasz za SOLID to zmiana jednego API na drugie nie powinna być problemem przez postawienie nowego repo czy gateway’a. Wymijanką bazy danych jak pracowałem dla rzadu UK i była drama z MySQL x Oracle? Pół dnia i po sprawie. Ale to był projekt w ktorym zamiast wykorzystać ORMa Railsów na ślepo użyliśmy sobie odpowiedniego patterna żeby tego ORMa oddalić od modeli jeszcze jednym poziomem abstrakcji.—I znów: jak dla mnie to są podstawy podstaw o czym tu gadamy, coś co przynajmniej 15 lat temu było podstawami na studiach inżynierskich.To jest niebywałe, że PODSTAWOWE PRAKTYKI uważane są tutaj za jakieś niepragmatyczne podejście pasjonata, lol.—Możesz mieć kogos z pasją kto gowno wie, i kogos super based. To się nie wyklucza. Pasja to nie jest poziom ani pragmatycznosci, ani znajomosci dobrych praktyk.