Skrócony słownik programisty
Przedmowa
Eksperci branżowi tutaj, na Medium i gdzie indziej, lubią używać fantazyjnie brzmiących — mam na myśli technicznych — terminów, aby wyolbrzymić znaczenie swoich artykułów i skłonić cię do myślenia, że to, co mówią, jest w jakiś sposób bardziej prawdziwe. Jeśli zastosujesz się do podręcznikowych definicji tych terminów, prawdopodobnie kupisz niewłaściwy pomysł i spędzisz większość swojej kariery pracując ciężej, a nie mądrzej. Ten skrócony słownik programisty zawiera rzeczywiste tłumaczenia tych terminów, dzięki czemu można uzyskać dokładniejszą interpretację popularnych artykułów, wykładów i filmów.
Definicje podane w tym słowniku mogą różnić się od tych w Wikipedii, ale zapewniamy, że są one autorytatywnymi reprezentacjami rzeczywistego użycia terminów… w większości.
Definicje
rozwiązanie — Kiedy uruchamiam go na moim komputerze, przeważnie się nie psuje
testowanie — Kiedy komputer uruchamia go na moim komputerze, przeważnie się nie psuje
TDD (programowanie sterowane łzami, inaczej programowanie sterowane testami) — gdy komputer uruchamia go na moim komputerze, psuje się, więc wiem, że nie zrobiłem jeszcze rozwiązania
BDD (rozwój oparty na zachowaniu) — nie podobało mi się to, co inni nazywali TDD, więc wymyśliłem lepszą nazwę
test-first — nie podobało mi się to, co inni nazywali TDD, więc wymyśliłem dla nich lepszą nazwę
SOLID (snobistyczny zorientowany obiektowo leet i wściekły programista) — Jestem o wiele mądrzejszy od ciebie, nie jesteś nawet prawdziwym programistą
pisanie statyczne — zapisuję, co to jest, więc nie muszę pamiętać
enkapsulacja — skleiłem ze sobą dwie rzeczy, więc są jak jedna rzecz i nie można ich rozdzielić
nowoczesny — Większość ludzi nadal go używa, ale nie mój dziadek
performant — Kiedy uruchamiam go na moim komputerze, nie wydaje się wolny
wydajne pod względem pamięci — gdy uruchamiam go na komputerze, nie pojawiają się błędy związane z pamięcią
intensywnie korzystający z zasobów — wolno i/lub brakuje pamięci
planowanie — Siadamy i ustalamy datę powrotu do pracy
oszacowanie — przyglądam się ilości pracy i wymyślam szalone przypuszczenia
wzorzec projektowy — To działało dla mnie wcześniej
architektura — To działało dla mnie przed XXL
algorytm — sprawiłem, że działa wydajniej
struktura danych — ułatwiłem korzystanie z danych
konwencja nazewnictwa — Nazywam rzeczy w określony sposób i wszyscy inni też powinni
przewodnik po stylach — myślę, że wygląda to ładnie, więc każdy powinien kodować w ten sam sposób
standard kodowania — koduję w określony sposób i wszyscy inni powinni to robić w ten sposób
linter — to małe narzędzie i wtyczka IDE, które przypominają mi o każdym najmniejszym błędzie, jaki popełniam, ponieważ jest to o wiele łatwiejsze niż nauczenie się, jak robić to poprawnie
najlepsza praktyka — tak to robię i myślę, że każdy powinien
idempotent — mogę go wywoływać wiele razy i jeszcze się nie zepsuł… jeszcze
testowalny — mogę napisać dla niego testy
modułowy — dzielę to na wiele plików i dodaję importy i eksporty
dziedzictwo — podzieliłem tę rzecz na mniejsze części, aby móc złożyć je z powrotem za pomocą super kleju
kompozycja — podzieliłem to na mniejsze części, aby móc je złożyć z powrotem za pomocą taśmy klejącej
wielokrotnego użytku — skopiowałem/wkleiłem to gdzieś i nadal działało, więc nadałem mu nazwę
abstrakcja — skopiowałem/wkleiłem to gdzieś i nadal działało, więc nadałem mu fantazyjną nazwę i dodałem kilka pokręteł, żeby wyglądało kiepsko
framework — skopiowałem/wkleiłem to gdzieś i nadal działało, więc stworzyłem dla niego pakiet, dodałem pokrętła i przyciski, napisałem dokumentację i wygłosiłem wykład na fantazyjnej imprezie
czytelny — wiem, jak to wygląda, więc każdy powinien tak to napisać
skalowalny — myślę, że może to po prostu działać w przypadku znacznie większych zadań
konserwowalny — działa tak długo, jak długo nikt go nie dotyka, więc nie dotykaj go
simple — mieści się w jednej linii
łatwy — To sposób pracy, o którym Joe the Superstar Developer powiedział, że jest łatwy, więc idź go zapytać
senior — nie jestem jeszcze na emeryturze
wyższego rzędu — stało się to zbyt skomplikowane, więc podzieliłem to z grubsza na pół
buforowanie — zapisałem wynik, więc nie muszę powtarzać tego wiele razy
aync — Dzieje się tak, gdy moja pierwsza linia biegnie po drugiej
synchronizacja — Normalna
pętla zdarzeń — jestem starszym programistą, ponieważ znam pętlę zdarzeń
rekursja — przypomina pętlę, ale działa
aplikacja internetowa — To strona internetowa, ale zrobiłem ją za pomocą JavaScript
progresywna aplikacja internetowa — To jak fantazyjna zakładka z ikoną menu Start
SSR (server-side rendering) — sprawiłem, że serwer działa jak przeglądarka, więc mogę używać Reacta na serwerze, ponieważ nie znam PHP, Pythona, NodeJS, Javy, Go, C#…
CDN (sieć dostarczania treści) — napisałem za dużo kodu i ładowanie trwało wieki, więc umieściłem serwer obok użytkownika
oprzyrządowanie — Prawdziwe aplikacje mają narzędzia, aplikacje-zabawki nie
scrum — Prawdziwe firmy to mają, firmy produkujące zabawki nie
komponent — wiem, że tworzenie całych stron jest szkodliwe dla prawdziwych aplikacji, więc podzieliłem to na mniejsze części
ciągła integracja — mogę przeprowadzać testy w GitLab, aby moi koledzy z zespołu mogli zatwierdzić mój MR
ciągłe dostarczanie — mogę wdrażać swoje aplikacje z GitLab, więc nie muszę do tego używać komputera
prośba o scalenie — pokazuję moje zmiany kolegom z zespołu, aby zrobić sobie przerwę na kawę i poczekać, aż je obejrzą
optymalizacja — robię wynik 80+ w Lighthouse
minifikacja — nie wiem, jak sprawić, by to działało przy mniejszej ilości kodu, więc skracam wszystkie słowa kluczowe do pojedynczych liter i zwijam wszystkie białe znaki, mając nadzieję, że przeglądarka się nie zadławi
wanilia — myślę, że to jakaś obca technologia, która nie działa na Ziemi
separacja trosk — nigdy się nie martwię, po prostu wykonuję swoją pracę i idę do domu
zasada pojedynczej odpowiedzialności — sprawiam, że wszystko mieści się na jednym ekranie
zasada najmniejszej mocy — Nie działa bez mocy, więc dodaję przynajmniej dużo mocy
POCAŁUNEK (niech to będzie proste, głupcze) — jestem mądry, więc nie potrzebuję tego, to tylko dla głupich ludzi
DRY (nie powtarzaj się) — to święta zasada, która odróżnia prawdziwych mężczyzn od przeciętnych programistów, jeśli masz powtarzające się linie kodu, jesteś głupi i brzydki!
MVP (minimum viable product) — Produkt
termin — okres szczytowego obciążenia, którego nie należy mylić z datą zakończenia projektu
sprint — przestaję po dwóch tygodniach, ponieważ Joe, supergwiazda programista, powiedział coś o idealnej przerwie po dwóch tygodniach
zwinny — mogę zacząć kodować, zanim będę miał plan, kurwa tak!
class — Jest zły, ponieważ jest standardowy, ale jest dobry dla aplikacji korporacyjnych
OOP (programowanie obiektowe) — W ten sposób tworzysz poważne aplikacje
FP (programowanie funkcyjne) — Potrafię pisać całe aplikacje za pomocą tylko jednej linijki
wersja główna — wprowadziłem większe zmiany niż w wersji pomocniczej
minor release — wprowadziłem mniejsze zmiany niż w głównym wydaniu
zależność — Niezbędny pakiet do tworzenia prawdziwych aplikacji
Jira — nie mogę wykonywać prawdziwej pracy, jeśli nie zaloguję się w Jira… ale nadal tego nienawidzę
refaktoryzacja — nie podoba mi się to, więc robię to ładniej
dostępność — jakieś prawo mówi, że potrzebujesz większej czcionki, aby osoby niewidome mogły lepiej widzieć Twoją witrynę, i musisz używać atrybutów ARIA
responsywny — Działa na moim iPhonie i MacBooku Pro
znaczniki semantyczne — wiem, że <header>idzie na górę i <footer>na dół
klasa użyteczności — mogę kodować CSS w moim pliku HTML, ponieważ moi użytkownicy nie potrzebują buforowania i dobrze sobie radzę z edycją z użyciem wielu kursorów, i to jedyny przypadek, w którym mogę legalnie złamać DRY, mimo że jest to święta zasada
załącznik A
Jeśli naprawdę chcesz dowiedzieć się, co oznaczają te terminy, wypróbuj Wikipedię, MDN i podobne miejsca.
Załącznik B
Mówiąc poważniej, pozwólcie, że powiem wam coś, co jest prawdą. Jako programista-samouk, a zwłaszcza jako nowicjusz, miałem pewien przerażający szacunek dla ludzi, którzy używali tych terminów. W trakcie mojej kariery nauczyłem się, że 9,5 na 10 osób, które ich używają, nie wie, co właściwie oznaczają te terminy, a dziś używają ich nawet nowicjusze. Więc nie traktuj ich zbyt poważnie. Traktuj je tak poważnie, jak ten słownik. Możesz kodować, nie znając prawdziwego znaczenia więcej niż pięciu terminów na tej stronie i wykonywać swoją pracę lepiej niż wiele osób, które od niechcenia je rzucają.

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































