Aktywne Wpisy
Embeddable +6
Po ilu CV ktoś wam odpisał? Ja już wysłałem 352 w ciągu miesiąca i mam zero odzewu. Jestem absolwentem informatyki z pół roku expa w big4 (stricte programowanie) i 2 latach w banku ( mniej programowania)
#studiait
#praca
#programowanie
#studiait
#praca
#programowanie
Wchodzisz do domu i widzisz mnie w swoim łóżku , co robisz
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
@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
@seanconnery: Robakiem intelektualnym to jesteś ty, skoro rozumujesz krytykę tylko w ramach bólu dupy i hejtu.
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
@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
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
@wargi-sromowe-mniejsze: o to to to to
czesto mam wrazenie, ze ktos sprawdza w trendach co jest modne i sie nagle w to idzie z dupy.
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.
@damianooo8: szanujący się człowiek z klasą nie pisze na wykopie. Nawet tu nie zagląda :)