Skrócony słownik programisty

Mar 12 2023
Przerażające terminy ujawnione takimi, jakimi są
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.
Zdjęcie Pisit Heng na Unsplash

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ą.