Wpis z mikrobloga

Jako #programista30k z 16-letnim stażem, głównie w projektach związanych z szerokim web-devem ale też integracją produktu z urządzeniami mobilnymi, zewnętrznymi serwisami, internet of things pragnę podzielić się listą największych wg mnie błędów jakie popełniają firmy technologiczne na którymś z etapów swojego istnienia.

1. Migracja monolitu do SOA.
W większości przypadków przynosi więcej szkody i niepotrzebnych kosztów niż utrzymanie solidnie zaimplementowanego monolitu. Zazwyczaj inicjowana na pewnym etapie życia produktu przez grupę doświadczonych inżynierów znudzonych codzienną pracą z monolitem i szukających wyzwań pozwalających im zdobyć nowe doświadczenie. Potrzeba tej zmiany jest argumentowana zazwyczaj lepszą w teorii skalowalnością systemu, łatwiejszym deploymentem i utrzymaniem wszystkich serwisów. W praktyce podobną skalowalność dużo łatwiej osiągalną przez dołożenie zasobów można uzyskać zostając przy monolicie. Zazwyczaj taka migracja dokłada tylko problemów z architekturą sieciową i integracją wszystkiego w jedną całość, dochodzi konieczność utrzymania brokera eventów i asynchronicznej komunikacji, etc. Przy braku odpowiednich nakładów świetnych inżynierów: zarówno programistów i devopsów firmy dokładają sobie tylko niepotrzebnego skomplikowania całości, nie wspominając o kosztach przepisania całości z monolitu na SOA co samo nie przekłada się na zysk firmy.

Z mojego doświadczenia w 99% przypadków dobrze napisany monolit, najlepiej napisany w podejściu: Loosely Coupled Monolith będzie o wiele korzystniejszym, prostszym i tańszym zarówno w implementacji jak i utrzymaniu rozwiązaniem.

Pokuszę się nawet o stwierdzenie, że przepisywanie monolitu na SOA w zasadzie nigdy nie może wyjść dobrze a pozwolić sobie na używanie tej architektury mogą sobie tylko wielcy gracze, dysponujący nieograniczonymi zasobami zarówno finansowymi jak i ludzkimi, pozwalającymi na napisanie a nie przepisanie wszystkiego od nowa przez wiele niezależnych teamów, każdy odpowiedzialnych tylko i wyłącznie za jeden serwis. Firma powinna również posaiadać dedykowany, doświadczony team devopsów to stworzenia i utrzymania architektury sieciowej dla SOA (niezależnie czy w cloudzie czy na serwerach dedykowanych)

2. Wdrażanie modnych rozwiązań na siłę - szlagierowy przykład to używanie GQL zamiast REST do API
Wdrażane z pobudek podobnych do migracji do SOA - chęć użycia i nauczenia się nowej technologii.
Problemy w zasadzie te same. W przypadku GQL jest to komplikowanie prostych rzeczy, problemy z optymalizacją zapytań i eliminacją problemu N+1, które w GQL rozwiązuje się w sposób nietrywialny jak ma to miejsce w api REST.
Często śmieję się z firm, które na siłę wrzucają GQL mając tylko jednego i to swojego klienta tego API, API które do tego nie zmienia się często. GQL ma w zasadzie sens tylko w projektach, które udostępniają różnorakie podzbiory API różnym klientom, co nie przeszkadza programistom wdrażać tego rozwiązania w prostych projektach tym samym robiąc klasyczny "strzał z potężnej armaty jaką jest GQL do muchy, jaką jest ich prosty w założeniach projekt"

3. Naiwne myślenie, że wytwarzanie oprogramowania skaluje się liniowo względem ilości inżynierów.
W przybliżeniu jest tak faktycznie do pewnego rozmiaru firmy. Słowem 2 programistów wykona pracę 2x szybciej niż 1, czy nawet 6 wykona ją 2x szybciej niż 3, ale od powiedzmy 5 programistów przestaje się to tak prosto skalować ponieważ dochodzi znacząca praca polegająca na po pierwsze podziale pracy między zespoły a po drugie komunikacji między nimi czy wreszcie po 3 scaleniu tej pracy. Najgorsze, że nawet doświadczeni managerowie czy tech-leadzi często zakładają że mając zespół 50 osób, dobiorą kolejne 50 osób i zrobią pracę 2x szybciej. Otóż często zrobią tę pracę nawet trochę wolniej.

#programowanie #pracbaza #pracait #it
  • 86
  • Odpowiedz
@damianooo8: urzekła mnie twoja analiza i to jak bardzo jest mi wszystko jedno co myślisz. Swoje zdanie mam, swoje przepracowałem, swoje umiem a na mirko nie będę się za nadto rozpisywał poza jak to nazywasz "banałami" bo i to nie czas i nie miejsce na bardziej wnikliwe podejście do problemu. A o moje ego się nie martw, nie wymaga podbudowy, o mechanizmach psychologicznych nawet się nie wypowiadam bo aż kisnę z
  • Odpowiedz
Kolega chyba myli SOA z mikroserwisami, a to nie do końca jest to samo


@e_m_p: och, czepiamy się nomenklatury, jak zapewne wiesz jedno jest rozwinięciem drugiego ale u podstaw leżą dokładnie te same koncepcje a granica pomiędzy kiedy jedno staje się drugim jest dosyć umowna i mimo, że da się znaleźć książkowe definicje jednego i drugiego to w praktyce w profesjonalnym środowisku zapewne nie raz spotkałeś się z tym, że używa
  • Odpowiedz
jest pierwszy p0lak robak z bólem dupy o czyiś stan posiadania, tylko w #!$%@? takie rzeczy są możliwe


@seanconnery: Robakiem intelektualnym to jesteś ty, skoro rozumujesz krytykę tylko w ramach bólu dupy i hejtu.
  • Odpowiedz
@seanconnery: Od kilku lat obserwuję mirko i zauważyłem że to między innymi tuba do łechtania ego dla ludzi z IT. Tych aspirujących mitomanów, oraz tych prawdziwych którym nie wychodzi na innych płaszczyznach więc sobie muszą odbić w internecie. Sam taki byłem więc daję sobie prawo do brutalnej krytyki.

Nie tylko ja zauważyłem że wpis autora jest przeintelektualizowany. Poza tym szanujący się człowiek z klasą nie mówi publicznie o swoich zarobkach, a
  • Odpowiedz
@damianooo8 gościu wkleił tag, śledzony przez wielu ludzi, których interesują tego typu treści xdd jak kogoś boli, że ktoś zarabia 6k euro miesięcznie, a on musi tyrać na magazynie (btw nie widzę nigdzie szydery ze strony opa w stosunku do tych osób) to niech go sobie wrzuci na czarno i po problemie. a co do chwalenia się to niektórzy odczuwają dodatkową satysfakcję z dzielenia się sukcesami z innymi na jakimś gównoportalu i
  • Odpowiedz
komercyjnie


@wargi-sromowe-mniejsze:

Dzisiaj: mikroserwisy są najlepsze!
Jutro: dlaczeg mikroserwisy nie zawsze są najlepsze!

Dzisiaj: tylko TDD
Jutro: TDD jest martwe

Generalnie się zgadzam. Także uważam, że jedną z większych bolączek naszej branży są nowe i modne technologie, które każdy chce wdrażać bez zastanowienia. Ilu devów przy tym się namęczyło i osiwiało!

Co do:
1. Racja, chociaż oprócz dodawania zasobów ważne jest:
- odpowiedni cache na wielu poziomach
- dobry projekt. Nawet
  • Odpowiedz
@qusqui21: Kolega miał taki "solidny" monolit w Polskiej firmie zaczynającej się na C na początku swojej kariery.
Pracowało nad nim 50 osób przez 5 lat, release i puszczenie testów trwało 8 godzin XD takie wielkie to było bydle
A wejście tam nowego pracownika i ogarnięcie tego kolosa od razu można włożyć między bajki.

Pracuję teraz w mikroserwisach i jest to o wiele łatwiejsze. Mały zespół 5 osób ogarnia kilka serwisów, wdrożenie
  • Odpowiedz
@wargi-sromowe-mniejsze: mniejszy exp ale zgadzam sie w 100%
A dokladniej to 1) i 2) zapomnialem jak sie to ladnie nazywa, ale ogolnie chodzi o to ze nowi/znudzeni programisci wiedzą, że teraz trendy jest xyz wiec chca sie tego nauczyc/byc na biezaco i forsuja rozwiazania ktore sa "trendy" (a zeby np. latwiej zlapac kolejna robote).
Ogolnie to cos w stylu resume need skills problem / fashion driven development / technology-driven decision making.
  • Odpowiedz
@wargi-sromowe-mniejsze: gql faktycznie miał taki okres, ale gorsze podejście to doktrynalne nie używamy bo modny, a potem patrzysz na potężnego cmsa napisanego w next gdzie build trwa godzinę a przy SSRze strona się praktycznie zawiesza, bo do fetchu danych z hygrapha używali resta zamiast gql xD i na pytanie o jakiś ADR, mówią, że gql był yet another revolution i nie użyli xD
  • Odpowiedz
@obieq: przeciez to nie tylko programisci lubia nowinki, biznes tez lubi jak im podlejesz wszystko chmura, AI najlepiej na blockchainie. #!$%@?, ze wcale nie potrzebuja.
  • Odpowiedz
@qusqui21: no w sumie zgadza sie i ten cały scam tzn scrum. U nas sie napalili tak na to ze teraz 9.5h tygodniowo na spotkaniach spedzamy zamiast 3 xD
  • Odpowiedz
@obieq: sama idea stojaca za scrumem jest spoko, tylko wiedza jak go ugryzc jest mizerna wsrod scrum masterow, developerow, stakeholderow. A to musi byc mocny lead, ktory to ogarnia po prostu.
  • Odpowiedz
Poza tym szanujący się człowiek z klasą nie mówi publicznie o swoich zarobkach


@damianooo8: szanujący się człowiek z klasą nie pisze na wykopie. Nawet tu nie zagląda :)
  • Odpowiedz
@wargi-sromowe-mniejsze Co do pogoni za wdrażaniem nowinek, to najlepsze są te firmy, co tworzą nowy produkt we frameworku wymyślonym tydzień temu, zreleasowanym wczoraj a opuszczonym za 2 dni xd A potem płacz, że nie mogą miesiącami znaleźć devów do #!$%@? framework xd
  • Odpowiedz