Pisząc tą serie z tygodnia na tydzień czasem wybranie ciekawych tematów bywa wyzwaniem. Dlatego też tak bardzo lubię końcówkę roku – czas podsumowań, na który materiały zbiera się przez poprzednie dwanaście miesięcy.
W zeszłym roku wybierałem najlepszy tekst z każdego miesiąca, w tym podszedłem do tematu nieco inaczej i zzagregowałem te pozycje opublikowane w 2022, które przeczytało (lub polubiło) w vived.io najwięcej osób.
Zasady są dwie. Po pierwsze – nie znajdziecie na tej liście tekstów dotyczących konkretnych frameworków, bibliotek czy języków, ma ona charakter technologicznie-agnostyczny. Po drugie – nie znajdziecie na nim newsów, nie będzie więc choćby nieustającej dramy z Twitterem i Elonem Muskiem. Tak na odświeżenie, bo do tego typu rzeczy pewnie będziemy wracać przez cały 2023.
Dlatego też bez zbędnego przedłużania – zapraszam do lektury!
1. Why I Like Using UUIDs on Database Tables
To jest fascynujące, że w 2022 dalej jednym z najlepiej czytających się tekstów jest ten zastanawiający się nad tym, jak powinny budowane być identyfikatory encji w bazach danych. Nie zmienia to jednak faktu, że temat ten jest gorący (ze wględu na publikację w 2021 do naszego przeglądu nie załapał się konkurencyjny You don’t need UUID, który ciągle czytał się w 2022 jak szalony)
I teraz zastanawiam się tylko, czy ludzie czytali artykuł dlatego, żeby realnie dowiedzieć się zalet stosowania UUID w bazach danych, czy dlatego że nie mogli uwierzyć, że ktoś lubi je na tyle, aby napisać o tym artykuł.
Zainstaluj teraz i czytaj tylko dobre teksty!
2. How to design better APIs
Pozycja numer dwa kontynuuje tematy „praktyczne” – kolejnym tekstem, który bardzo przypadł do gustu naszym czytelnikom był ten poświęcony tworzeniu dobrego API. Prawda jest taka, że (podobnie jak w wypadku UUID) tego typu publikacji jest trochę, ale publikacja Ronalda Blüthla wydaje się zdobywać serca tym, jak bardzo „akcjonowalną” jest każda z przedstawionych porad.
I chociaż pewnie znalazłbym bardziej pogłębione teksty dotyczące designu API, a każdy z poruszonych przez Ronalda punktów mógłby doczekać się własnego artykułu, to jednak właśnie w tej prostocie i byciu gotową „checklistą” do odhaczenia tkwi jego siła.
3. Machine learning roadmap: 5 Steps to a successful career
Mało rzeczy w 2022 było tak na językach wszystkich, jak szeroko rozumiany Machine/Deep Learning, o czym wie każdy czytelnik tych regularnych przeglądów. Dlatego nie dziwi fakt, że coraz więcej ludzi przejawia zainteresowanie tematem. Nie jest to co prawda jakiś niespodziewany zwrot dla roku 2022, a raczej kulminacja dłuższego trendu, ale w epoce ChatGPT, Dall-E i ogólnego szału na generatywne AI, ML-owe FOMO trzyma się w programistyczne silnie.
A sam tekst Machine learning roadmap: 5 Steps to a successful career ma to do siebie, że nie wpada zbyt mocno w pułapki z powyższego komiksu, tylko dość uczciwie przedstawia (bardzo szeroki) zakres tematów, które należy zgłębić w celu pozostania specjalistą od projektów ML-owych. Coś dla siebie znajdą też w nim jednak Ci, którzy po prostu chcą lepiej zrozumieć czym ten cały ML się w praktyce je.
4. 13 Projects You Can Do to Become a Web3 and Blockchain Master – Beginner to Expert
Widać, że trawa jest zawsze zieleńsza po drugiej stronie drogi, ponieważ kontynuujemy tematy związane ze zmianą ścieżki kariery.
Kiedy tylko zdarza mi się pytać programistów o ich stosunek do szeroko rozumianego Web3 i Crypto, większość osób reaguje jakbym właśnie obraził im matkę, babkę i ogólnie oni to się brzydzą. To właśnie artykuł wytyczający ścieżkę od zera do sprawnego programisty Crypto okazuje się być jednak czwartym najlepiej czytającym się tekstem. Mnie to szczególnie nie dziwi, bo publikacja (choć trochę IMHO zbyt pbieżna), to jednak inspiruje i pokazuje, do czego tak naprawdę może przydać się Blockchain i w jakich typach projektów najbardziej uwidaczniają się jego specyficzne cechy.
Więc z tym Crypto to chyba jak w poniższym memie:
Aczkolwiek może się okazać, że całość „klikała się” jeszcze przed tym, jak FTX wywalił się mocno na twarz i krypto znowu stały się „The Villain Of This Story„.
5. Algorithms you should know before you take system design interviews…
…oraz Top 30 System Design Interview Questions and Problems for Programmers and Software Engineers
Tutaj trochę oszukuje, ale jako, że to ja właściwie ustalam zasady, w punkcie piątym połączyłem ze sobą dwa artykuły, dotyczące jednak jednej kwestii – rekrutacji.
W moim personalnym rankingu technologicznych tematów za które najbardziej zapamiętamy 2022 – oprócz wspomnianych już szturmu Generatywnego AI oraz wielkiej porażki wizerunkowej Krypto, której zgotował społeczności FTX – nie mogło zabraknąć zwolnień w branży, które zwłaszcza w drugiej połowie roku nie schodziły z nagłówków. Wiadomo, na razie jest to problem głównie Stanów Zjednoczonych (choć nie tylko), głównie w branży tak zwanych Scale-Upów (choć nie tylko), ale nie pozostawia wątpliwości, że w jakiś sposób podskórnie te wydarzenia zaburzyły istniejące dotychczas poczucie bezpieczeństwa.
Powyższe pewnie sprawia, że nawet najodważniejsi chętniej zaglądali we wszelkiej maści pomoce rekrutacyjne, a stąd bliska droga do popularności takich właśnie tekstów jak Algorithms you should know before you take system design interviews czy Top 30 System Design Interview Questions and Problems for Programmers and Software Engineers. A jak już i tak łamię zasady dając więcej niż jeden artykuł, to dorzucę jeszcze Preparing for the Systems Design and Coding Interview z poprzedniego roku, które pozostaje moim docelowym tekstem jeśli chodzi o przygotowywanie się do rekrutacji, zwłaszcza na bardziej seniorskie pozycje.
6. Do you really need a Staging environment?
Coś się w tym roku nazbierało nam nieintuicyjnych rad. Ale właśnie z takich kontrowersyjnych koncepcji rodzą się najlepsze artykuły.
Staging environment wydaje się być oczywistym fragmentem każdej infrastruktury, do tego stopnia, że przestaliśmy sobie zadawać pytania, po co nam ten cały staging jest. Na szczęście w branży są ludzie jak Luca Rossi, który postanowił przyglądnąć się obietnicom dawanym przez staging, zmierzyć się z tym, jak ich realizacja wygląda w rzeczywistości oraz spojrzeć na wynikające ze stagingu koszty. Proponuje on też alternatywy, takie jak choćby Remote Dev Environments, o których w 2022 było głośno ze względu na ogłoszenia dostawców chmurowych.
Jeżeli więc robicie Staging „bo tak się u nas robi”, warto się z publikacją zapoznać.
To jest tekst, który osobiście polecam – oprócz tego, że jest on pełen ciekawych, nieoczywistych porad, to jednocześnie zostały one podane w bardzo czytelnej i łatwej w konsumpcji formie.
7. DevOps is a failure
Kontynuując tematy DevOpsowe, będzie trochę o niezrealizowanych obietnicach.
Jestem w tej branży chwilę i pamiętam jak DevOps – jako trend – zaczynał się dopiero kształtować. Dlatego też ciągle w głowie mam przełamywanie barier, zmiany w procesie „dowożenia” rzeczy na produkcje i ogólnie obietnica mocniejszej iteracyjności. Dzisiaj jednak dużo częściej mówiąc „DevOps” mamy na myśli administratora AWS-a.
Podobne przemyślenia ma twórca DevOps is a failure, Lee Briggs. Narzeka on na to, że rewolucja, która miała zmienić kulturę firm, zjadła własne dzieci. Już zresztą sam cytat z artykułu
DevOps is about people on the operations side of the fence trying to convince Developers to do things their way
pokazuje, że wróciliśmy po prostu do regularnego przeciągania liny. Jestem absolutnie daleki od takiego pełnego odrzucenia dorobku DevOps, bo tak naprawdę branża wiele z proponowanych praktyk wchłonęła bardzo szeroko. Na pewno jednak termin został mocno zawłaszczony i może się okazać, że aby rewolucja trwała powstać muszą inne.
I choć akurat tutaj rozwiązania proponowane przez autora nie do końca do mnie trafiają, to już samo wskazanie problemu pozwala czasem zrobić krok w dobrym kierunku.
8. Things I Wish I’d Known Earlier In My Career
Tak jak w wypadku tematów rekrutacyjnych, tak i inne tematy karierowe były w 2022 bardzo popularne. Wyraźnie widać, że jest grupa ludzi, która lubi świadomie podchodzić do swojej ścieżki kariery, gdyż co roku w zasadzie całą taką dziesiątkę można by wypełnić tylko i wyłącznie tego typu treściami.
W tym roku królowały zdecydowanie dobre rady – mało kto był w stanie ulec urokowi tytułu Things I Wish I’d Known Earlier In My Career od Smashing Magazine, gdzie Vitaly Friedman prezentuje szereg rad, które chciałby usłyszeć od kogoś zaczynając swoją karierę. Dodatkowa porada, dla wielu pewnie dość nieintuicyjna – „nigdy nie ignoruj rekrutera” – przyszła zaś od Alexa Chessera.
Ogólnie tematy karierowe niezmiennie stanowią „topkę” najczęściej czytanych treści – dlatego jeśli chcecie zgłębić temat, to zapraszam do (otwartej w 2022 🤩) sekcji „Discover” na vived.io.
9. The Code Review Pyramid
Mówią, że jeden obrazek może zastąpić tysiąc słów. Gunnar Morling postanowił zjeść ciastko i mieć ciastko – jego Code Review Pyramid to w zasadzie infografika pełna opisów i checklist, nieco podobna słynnej Piramidce Testów. W wizualny sposób przedstawia ona, które elementy Code Review według autora są najważniejsze i na których powinniśmy (jako recenzenci) spędzać najwięcej czasu.
W sam raz do wydrukowania sobie na ścianie i rzucenia okiem za każdym razem, gdy chcemy się komuś wypomnieć nawias klamrowy w złej linijce.
Zainstaluj teraz i czytaj tylko dobre teksty!
10. CUPID—for joyful coding
Na koniec będzie nieco dłużej, bo żeby lepiej zrozumieć, dlaczego o CUPID było początkiem roku głośno, potrzebna jest pewna baza: znajomość terminu SOLID, oraz postaci pana Dana Northa. Dlatego też zaczniemy od pewnego “wyrównania poziomu”.
SOLID to (cytując Wikipedię):
mnemonik zaproponowany przez Roberta C. Martina, opisujący pięć podstawowych założeń programowania obiektowego: zasady jednej odpowiedzialności (single responsibility), zasady otwarte-zamknięte (open-close), zasady podstawienia Liskov (Liskov substitution principle), zasady segregacji interfejsów (interface segregation principle) oraz zasady odwrócenia zależności (dependency inversion principle)
W skrócie, mówimy tutaj o zbiorze pewnych praktyk, które przez lata uznawane były za symbol dobrego kodu. SOLID świetnie zgrywał się z językami (i kodem) obiektowymi (zwłaszcza “klasyczną” Javą) – świat jednak poszedł mocno do przodu. Od mniej więcej dekady zauważyć można powrót do łask podejścia bardziej funkcyjnego, a także choćby języków, które nie mają pojęcia co to interfejs, a co dopiero ich segregacja. I tutaj na biało wchodzi Dan North – wzięty popularyzator Agile i dobrych praktyk programistyczny (oraz organizacyjnych), przy tym naprawdę rewelacyjny mówca. Poszczególne literki w CUPID składają się na:
- Composable (Kompozowalny) – czyli pozwalający na składanie go z mniejszych kawałków
- (cechujący się) Unix philosophy – czyli robiący jedną rzecz dobrze
- Predictable (Przewidywalny) – nie zaskakuje użytkownika
- Idiomatic (Idiomatyczny) – dający “naturalne” odczucia (względem języka)
- Domain-based – używający języka, jakim posługuje się dana domena
Cóż, może nie wywaliło mnie z bucików, ale jest to rzeczywiście pewnego rodzaju kodyfikacja pewnych dobrych praktyk.
Jeżeli chcecie więc wiedzieć, co stanęło za decyzją o zamieszczeniu w ramach nowego mnemonica właśnie tych, a nie innych zasad, zapraszam do lektury. Sam równocześnie zastanawiam się, czy CUPID ma szanse na zdetronizowanie SOLIDa (od czasu premiery raczej nie było o nim głośno), czy ten ostatni dalej będzie gwiazdą niezliczonych procesów rekrutacyjnych.
I to by było na tyle!
W imieniu całej załogi Vived życzę Wam szczęśliwego Nowego Roku 2023!