Słownik zawierający przydatne pojęcia występujące w świecie programowania.
Oprócz haseł i skrótów dotyczących samego programowania, w słowniku umieszczone są także pokrewne określenia z innych dziedzin, które w jakiś sposób są z nim powiązane. Mam nadzieję, że dzięki temu uda się stworzyć miejsce, które będzie poruszało większość zagadnień z jakimi na co dzień można się spotkać.
Ponieważ pojęć jest bardzo dużo, nowe definicje będą na bieżąco dodawane.
Agile
Metoda wytwarzania oprogramowania, w której kolejne funkcje aplikacji dostarczane są co jakiś czas. Zakłada częsty kontakt z klientem i reagowanie na pojawiające się zmiany.
API (ang. Application Programming Interface)
To zestaw reguł i sposobów komunikacji pomiędzy różnymi programami albo częściami systemu. Dzięki API jedna aplikacja może korzystać z danych lub funkcji udostępnianych przez inną, bez potrzeby znajomości jej wewnętrznej implementacji.
Abstrakcja
To sposób upraszczania złożonych elementów programu przez pokazanie tylko tego, co najważniejsze, i ukrycie zbędnych szczegółów. Dzięki abstrakcji łatwiej zrozumieć działanie systemu i pracować na wyższym poziomie ogólności.
Algorytm
To uporządkowany zestaw kroków prowadzących do rozwiązania konkretnego problemu. W programowaniu algorytm opisuje, co i w jakiej kolejności trzeba zrobić, aby osiągnąć oczekiwany wynik.
Architektura monolityczna
To sposób budowy aplikacji, w którym cała logika systemu działa jako jeden spójny program. Takie podejście bywa prostsze na start, ale wraz ze wzrostem projektu może utrudniać rozwój i wdrażanie zmian.
Architektura mikroserwisowa
To podejście, w którym aplikacja składa się z wielu mniejszych usług odpowiedzialnych za konkretne obszary działania. Poszczególne mikroserwisy mogą być rozwijane i wdrażane niezależnie od siebie.
Asynchroniczność
To sposób wykonywania operacji bez blokowania dalszego działania programu na czas oczekiwania na wynik. Dzięki temu aplikacja może w tym samym czasie obsługiwać inne zadania, na przykład pobieranie danych lub reakcję na działania użytkownika.
Autoryzacja
To proces sprawdzania, do jakich zasobów i działań użytkownik ma dostęp po zalogowaniu. Autoryzacja odpowiada za określenie uprawnień, a nie za samo potwierdzenie tożsamości.
Autentykacja
To proces potwierdzania tożsamości użytkownika, na przykład za pomocą loginu i hasła. Jej celem jest odpowiedź na pytanie, kim jest osoba próbująca uzyskać dostęp do systemu.
Adapter
To wzorzec projektowy pozwalający połączyć ze sobą elementy o niepasujących do siebie interfejsach. Adapter działa jak warstwa pośrednia, dzięki której istniejący kod może współpracować z innym komponentem bez dużych zmian.
Agregat
To pojęcie wywodzące się z DDD, oznaczające grupę powiązanych ze sobą obiektów traktowanych jako jedna całość. Agregat pomaga pilnować spójności danych i określa granice zmian w modelu domenowym.
Anemic Domain Model
To model domenowy, w którym obiekty przechowują głównie dane, a logika biznesowa znajduje się poza nimi, najczęściej w osobnych serwisach. Takie podejście upraszcza strukturę na pierwszy rzut oka, ale często prowadzi do rozproszenia odpowiedzialności.
Anti-pattern
To pozornie sensowne rozwiązanie problemu, które w praktyce prowadzi do złych skutków, na przykład utrudnia rozwój albo pogarsza jakość kodu. Anti-patterny są przeciwieństwem sprawdzonych dobrych praktyk.
Atomic Design
To sposób projektowania interfejsów, w którym widok buduje się z małych, wielokrotnego użytku elementów. Podejście to porządkuje pracę nad UI i ułatwia zachowanie spójności w większych projektach.
Audit Log
To zapis zdarzeń pokazujący, kto, kiedy i co zrobił w systemie. Audit log pomaga śledzić historię zmian, analizować incydenty i spełniać wymagania związane z bezpieczeństwem lub zgodnością.
BDD (ang. Behavior Driven Development)
Sposób wytwarzania oprogramowania, który łączy w sobie zasady TDD (rozpoczęcie od napisania testu) i podejście DDD (nacisk na jak najwierniejsze odwzorowanie rzeczywistości).
W tym podejściu, aplikacja rozwijana jest na podstawie wymagań użytkownika w formie tzw. user stories, które opisują w jaki sposób aplikacja powinna się zachować w konkretnych sytuacjach.
Opiera się na schemacie given, when, then. Przykład poniżej.
Given: będąc na stronie internetowej portalu aukcyjnego
When: po wpisaniu nazwy przedmiotu w wyszukiwarkę
Then: powinienem otrzymać listę aukcji oferujących szukany przedmiotBUG
Potoczne określenie błędu występującego w aplikacji, który uniemożliwia lub powoduje problemy w jej działaniu.
Backlog
To uporządkowana lista zadań, pomysłów i wymagań dotyczących produktu lub projektu. Z backlogu zespół wybiera elementy, które będą realizowane w kolejnych etapach pracy.
Backend
To część aplikacji działająca po stronie serwera, odpowiedzialna między innymi za logikę biznesową, komunikację z bazą danych i obsługę żądań z frontendu. Użytkownik zwykle nie widzi backendu bezpośrednio, ale korzysta z jego działania.
Branch
To osobna gałąź historii zmian w repozytorium, pozwalająca rozwijać nową funkcję albo poprawkę bez ingerowania od razu w główną wersję projektu. Po zakończeniu pracy branch można połączyć z inną gałęzią.
Baza relacyjna
To rodzaj bazy danych, w której informacje przechowywane są w tabelach połączonych relacjami. Taki model ułatwia porządkowanie danych, ich wyszukiwanie i zachowanie spójności pomiędzy różnymi elementami systemu.
Benchmark
To test lub zestaw testów służących do mierzenia wydajności programu, fragmentu kodu albo całego systemu. Benchmarki pomagają porównywać rozwiązania i sprawdzać, czy zmiany rzeczywiście poprawiają szybkość działania.
Boilerplate
To powtarzalny kod albo gotowy szablon, który trzeba umieścić w projekcie, aby uruchomić określoną strukturę lub rozwiązanie. Boilerplate przyspiesza start, ale jego nadmiar może utrudniać czytelność aplikacji.
Code Review
To praktyka polegająca na przekazaniu napisanego przez siebie kodu do oceny przez innego członka zespołu.
Pozwala to w dużej mierze na wykrycie i poprawienie ewentualnych błędów przed wprowadzeniem zmian do aplikacji, zachowanie dobrej jakości kodu i stanowi dobre wskazówki dla obydwu stron.
CI/CD (ang. Continuous Integration / Continuous Delivery)
To zestaw praktyk związanych z automatyzacją budowania, testowania i wdrażania aplikacji. CI odpowiada za częste integrowanie zmian w kodzie, a CD za ich sprawne i bezpieczne dostarczanie na kolejne środowiska.
Clean Code
To podejście do pisania kodu w taki sposób, aby był czytelny, prosty do zrozumienia i łatwy w utrzymaniu. Chodzi między innymi o sensowne nazwy, małe metody, unikanie zbędnej złożoności i dbanie o spójność całego projektu.
Cache
To mechanizm przechowywania danych tymczasowo w szybszym miejscu, aby przy kolejnym użyciu nie trzeba było pobierać ich od zera. Cache przyspiesza działanie aplikacji i zmniejsza obciążenie innych elementów systemu.
Commit
To zapisanie zestawu zmian w repozytorium wraz z informacją opisującą, co zostało zrobione. Commit pozwala śledzić historię projektu i wracać do wcześniejszych etapów pracy.
Container
To odizolowane środowisko uruchomieniowe zawierające aplikację i jej zależności. Dzięki kontenerom łatwiej osiągnąć spójne działanie programu na różnych maszynach i środowiskach.
CSS (ang. Cascading Style Sheets)
To język służący do opisywania wyglądu stron internetowych. Za pomocą CSS można definiować kolory, układ elementów, odstępy, animacje i sposób wyświetlania interfejsu na różnych urządzeniach.
Callback
To funkcja przekazywana do innej funkcji po to, aby została wywołana później, zwykle po zakończeniu określonej operacji. Callbacki są często używane przy obsłudze zdarzeń i pracy asynchronicznej.
Chmura obliczeniowa
To model korzystania z zasobów takich jak serwery, bazy danych czy storage przez internet, bez konieczności utrzymywania wszystkiego samodzielnie na własnej infrastrukturze. Chmura ułatwia skalowanie i szybkie uruchamianie usług.
CLI (ang. Command Line Interface)
To interfejs tekstowy pozwalający obsługiwać program za pomocą komend wpisywanych w terminalu. CLI jest często wykorzystywane przez programistów do uruchamiania narzędzi, skryptów i zadań administracyjnych.
Closure
To funkcja, która zachowuje dostęp do zmiennych ze swojego zewnętrznego zakresu nawet po zakończeniu działania funkcji, w której została utworzona. Closure jest często wykorzystywane do enkapsulacji danych i budowania bardziej elastycznych konstrukcji.
CQRS
To podejście polegające na rozdzieleniu operacji odczytu danych od operacji ich modyfikacji. CQRS pomaga lepiej dopasować model do różnych potrzeb systemu, szczególnie gdy zapis i odczyt mają inną złożoność.
Cron
To mechanizm służący do uruchamiania zadań automatycznie według ustalonego harmonogramu. Cron przydaje się na przykład do wysyłki raportów, czyszczenia danych albo wykonywania zadań cyklicznych.
DRY (ang. Don't Repeat Yourself)
Jedna z dobrych praktyk programowania, która mówi o tym, aby nie powielać kodu, który realizuje te same funkcje. Założeniem jest tworzenie kodu, który napisany raz będzie mógł zostać użyty wielokrotnie przez różne części aplikacji.
DevOps
To podejście łączące rozwój oprogramowania i jego utrzymanie. Zakłada bliską współpracę pomiędzy osobami piszącymi kod a tymi, które odpowiadają za infrastrukturę, wdrożenia i stabilność systemu.
DDD (ang. Domain-Driven Design)
To podejście do tworzenia oprogramowania, w którym nacisk kładziony jest na jak najwierniejsze odzwierciedlenie procesów, rzeczywistości, założeń biznesowych w implementacji.
Debugowanie
To proces szukania przyczyn błędów w aplikacji i analizowania, dlaczego program nie działa zgodnie z oczekiwaniami. Debugowanie może obejmować śledzenie kodu krok po kroku, sprawdzanie wartości zmiennych i analizę logów.
Dependency Injection
To sposób dostarczania obiektowi jego zależności z zewnątrz zamiast tworzenia ich bezpośrednio w środku klasy. Takie podejście ułatwia testowanie, rozwój i wymianę poszczególnych elementów systemu.
Deployment
To proces wdrożenia aplikacji albo nowej wersji zmian na wybrane środowisko, na przykład testowe lub produkcyjne. Deployment obejmuje przygotowanie kodu do działania i jego udostępnienie użytkownikom.
Docker
To narzędzie służące do tworzenia, uruchamiania i zarządzania kontenerami. Dzięki Dockerowi można łatwo odtworzyć środowisko aplikacji niezależnie od komputera lub serwera, na którym działa.
DTO (ang. Data Transfer Object)
To obiekt wykorzystywany do przenoszenia danych pomiędzy różnymi częściami aplikacji albo pomiędzy systemami. Jego zadaniem jest uporządkowane przekazanie potrzebnych informacji bez umieszczania w nim logiki biznesowej.
Data Lake
To miejsce przechowywania dużych ilości danych w różnej postaci, także nieuporządkowanej. Data lake pozwala gromadzić dane z wielu źródeł, zanim zostaną później przetworzone albo przeanalizowane.
Deadlock
To sytuacja, w której dwa lub więcej procesów lub wątków blokuje się wzajemnie i żaden z nich nie może ruszyć dalej. Deadlocki są groźne, bo mogą zatrzymać działanie części systemu.
Deserializacja
To proces odtwarzania danych z formatu tekstowego lub binarnego do postaci obiektów albo struktur używanych przez aplikację. Deserializacja jest odwrotnością serializacji.
Endpoint
To konkretny adres w API, pod którym dostępny jest określony zasób albo operacja. Endpoint wskazuje, gdzie aplikacja ma wysłać żądanie, aby pobrać dane lub wykonać daną akcję.
Encja
To obiekt reprezentujący ważny element domeny biznesowej, który posiada własną tożsamość i może zmieniać swój stan w czasie. Encje często odpowiadają takim pojęciom jak użytkownik, zamówienie czy produkt.
Exception
To wyjątek sygnalizujący, że podczas działania programu wystąpił problem wymagający obsługi. Dzięki wyjątkom aplikacja może reagować na błędy w bardziej kontrolowany sposób niż przez natychmiastowe przerwanie działania.
Event Storming
To warsztatowa technika modelowania procesów biznesowych oparta na wspólnym rozpisywaniu zdarzeń zachodzących w systemie. Event Storming pomaga lepiej zrozumieć domenę i znaleźć granice pomiędzy odpowiedzialnościami.
Framework
To platforma programistyczna służąca do budowy aplikacji. Definiuje powstawanie aplikacji pewnym w ustalonym modelu i dostarcza wielu gotowych rozwiązań i udogodnień, przez co ułatwia tworzenie aplikacji.
FIRST
Zasada wywodząca się z TDD. Definiuje pięć cech jakie powinny posiadać testy jednostkowe.
F (Fast) - powinny być szybkie. Od momentu uruchomienia testu do jego zakończenia nie powinna upłynąć więcej niż jedna sekunda.
I (Independent) - powinny być niezależne. Każdy test powinien dać się uruchomić w dowolnej kolejności.
R (Repeatable) - powinny być powtarzalne. Uruchomienie tego samego testu wiele razy za każdym razem powinno dać ten sam wynik.
S (Self-Checking) - powinny być samo sprawdzające. Wynik testu powinien być określony automatycznie, bez konieczności jego interpretacji.
T (Timely) - powinny być pisane w tym samym czasie co kod aplikacji, przed wdrożeniem na środowisko produkcyjne.
Feature Flag
To mechanizm pozwalający włączać lub wyłączać określoną funkcję w aplikacji bez potrzeby wdrażania nowej wersji kodu. Feature flagi są przydatne przy testowaniu zmian, stopniowym udostępnianiu funkcji i bezpiecznym rollbacku.
Frontend
To część aplikacji, z którą użytkownik ma bezpośredni kontakt, na przykład widok strony internetowej lub interfejs aplikacji. Frontend odpowiada za prezentację danych i obsługę interakcji użytkownika.
Fallback
To rozwiązanie awaryjne używane wtedy, gdy podstawowy mechanizm nie zadziałał albo jest chwilowo niedostępny. Fallback pozwala ograniczyć skutki błędu i utrzymać ciągłość działania aplikacji.
GUI (ang. Graphical User Interface)
To graficzny interfejs, który pozwala na komunikację użytkownika z system komputerowym. Najczęściej obsługiwany jest myszką lub dotykiem.
Git
To system kontroli wersji służący do śledzenia zmian w kodzie i współpracy wielu osób nad jednym projektem. Pozwala tworzyć branche, łączyć zmiany i wracać do wcześniejszych wersji plików.
GraphQL
To język zapytań do API oraz sposób komunikacji z backendem, który pozwala klientowi dokładnie określić, jakich danych potrzebuje. Dzięki temu można ograniczyć przesyłanie zbędnych informacji i lepiej dopasować odpowiedź do potrzeb aplikacji.
HTML (ang. HyperText Markup Language)
Hipertekstowy język znaczników służący do tworzenia dokumentów, które są ze sobą połączone hiperłączami. Zawiera wiele znaczników, na przykład znacznik B określający, że tekst ma być wytłuszczony. Jego najpopularniejsze zastosowanie to tworzenie stron WWW.
HTML nie jest językiem programowania.
Hashowanie
To proces zamiany danych na ciąg znaków o stałej długości przy użyciu funkcji skrótu. Hashowanie wykorzystuje się między innymi do bezpiecznego przechowywania haseł i sprawdzania integralności danych.
HTTP (ang. HyperText Transfer Protocol)
To protokół komunikacyjny używany do wymiany danych w sieci, szczególnie pomiędzy przeglądarką a serwerem. Określa sposób wysyłania żądań i odbierania odpowiedzi, na przykład przy otwieraniu stron internetowych lub korzystaniu z API.
Hotfix
To szybka poprawka wprowadzana zwykle po wykryciu ważnego problemu na działającym systemie. Hotfix ma usunąć błąd możliwie szybko, bez czekania na większy cykl wydawniczy.
IDE (ang. Integrated Development Environment)
Jest to aplikacja służąca do tworzenia oprogramowania, na przykład NetBeans, Eclipse lub IntelliJ.
Interfejs
To zestaw metod lub reguł określających, w jaki sposób można korzystać z danego elementu programu. Interfejs opisuje, co jest dostępne, ale nie definiuje szczegółów samej implementacji.
Idempotencja
To cecha operacji, która daje ten sam efekt końcowy niezależnie od tego, ile razy zostanie wykonana z tymi samymi danymi. Idempotencja jest ważna szczególnie w API i systemach rozproszonych.
Immutable Object
To obiekt, którego stanu nie można zmienić po jego utworzeniu. Zamiast modyfikować istniejący obiekt, tworzy się nowy, co ułatwia przewidywanie działania programu i ogranicza skutki uboczne.
Indeks w bazie danych
To struktura pomocnicza przyspieszająca wyszukiwanie danych w tabelach. Indeksy poprawiają wydajność odczytu, ale ich nadmiar może spowolnić zapis i zwiększyć koszt utrzymania bazy.
JUnit
Jest to framework służący do tworzenia testów jednostkowych w języku Java.
JavaScript
To język programowania szeroko wykorzystywany w tworzeniu stron i aplikacji internetowych. Pozwala dodawać interaktywność w przeglądarce, a także budować backend i narzędzia działające poza nią.
JWT (ang. JSON Web Token)
To format tokenu używanego często do przekazywania informacji o zalogowanym użytkowniku pomiędzy klientem a serwerem. JWT pozwala przenosić dane w podpisanej formie, dzięki czemu można zweryfikować ich autentyczność.
KISS (ang. Keep it Simple, Stupid)
Dobra praktyka programowania mówiąca o tym, aby unikać zbędnych komplikacji w kodzie, tak aby był możliwie jak najprostszy, dający się łatwo przeanalizować i zrozumieć.
Klasa
To wzorzec opisujący budowę obiektów w programowaniu obiektowym. Klasa definiuje, jakie dane i zachowania będą miały tworzone na jej podstawie obiekty.
Kompilator
To program tłumaczący kod źródłowy napisany przez programistę na postać zrozumiałą dla komputera. W zależności od języka wynik może być kodem maszynowym, kodem pośrednim albo inną formą gotową do uruchomienia.
Kubernetes
To platforma służąca do zarządzania kontenerami i ich uruchamianiem w większej skali. Ułatwia między innymi wdrożenia, skalowanie aplikacji i utrzymanie dostępności usług.
Konwencja
To ustalony sposób nazywania, organizowania albo zapisywania elementów w projekcie. Konwencje pomagają utrzymać spójność kodu i ułatwiają współpracę wielu osób nad jednym systemem.
Legacy Code
To istniejący już kod, który działa w projekcie od dłuższego czasu i często jest trudny do zmiany albo zrozumienia. Zwykle brakuje w nim testów, aktualnej dokumentacji albo wiedzy o powodach, dla których został napisany właśnie w taki sposób.
Logger
To mechanizm lub narzędzie służące do zapisywania informacji o działaniu aplikacji. Logi pomagają analizować błędy, śledzić przebieg operacji i diagnozować problemy na różnych środowiskach.
Load Balancer
To mechanizm rozdzielający ruch pomiędzy wiele serwerów lub instancji aplikacji. Dzięki temu system lepiej radzi sobie z większym obciążeniem i jest bardziej odporny na awarie pojedynczych elementów.
MoSCoW
To metoda wykorzystywana w zarządzaniu projektami kategoryzująca priorytety wymagań.
M (MUST) - opisuje wymagania, które muszą zostać dostarczone
S (SHOULD) - opisuje wymagania, które jeśli to możliwe powinny zostać dostarczone
C (COULD) - opisuje wymagania, które nie są krytyczne, ale byłoby dobrze jeśli zostałyby dostarczone
W (WON'T) - opisuje wymagania, które za zgodą klienta mogą zostać dostarczone w przyszłościMock
To sztuczny obiekt wykorzystywany najczęściej w testach do udawania zachowania prawdziwej zależności, na przykład serwisu, bazy danych albo zewnętrznego API. Pozwala sprawdzić działanie kodu bez potrzeby uruchamiania wszystkich elementów systemu.
Merge
To połączenie zmian z jednej gałęzi repozytorium do innej. Merge pozwala przenieść efekty pracy nad funkcją, poprawką albo eksperymentem do głównej linii rozwoju projektu.
Middleware
To warstwa pośrednia przetwarzająca żądania i odpowiedzi pomiędzy różnymi częściami aplikacji. Middleware może odpowiadać na przykład za autoryzację, logowanie, obsługę błędów albo modyfikację danych.
Migracja bazy danych
To zmiana struktury bazy danych wykonywana w kontrolowany i wersjonowany sposób. Migracje pozwalają rozwijać schemat bazy razem z aplikacją i odtwarzać te same zmiany na różnych środowiskach.
NoSQL
To grupa baz danych, które nie opierają się na klasycznym modelu relacyjnym znanym z SQL. Często wykorzystuje się je do przechowywania dużych ilości danych o elastycznej strukturze, na przykład dokumentów, par klucz-wartość albo grafów.
OOP
To paradygmat programowania polegający na tworzeniu obiektów i wywoływaniu metod tak, aby współdziałały ze sobą. Przykładowe języki wspierające to podejście to C#, Java i Python.
ORM
Sposób odwzorowywania obiektów i powiązań między nimi na tabele i relacje istniejące w bazie danych.
Obiekt
To konkretny element utworzony na podstawie klasy w programowaniu obiektowym. Obiekt posiada własne dane i zachowania, z których można korzystać w kodzie.
OpenAPI
To standard opisu API pozwalający w czytelny sposób zdefiniować dostępne endpointy, parametry, odpowiedzi i schematy danych. OpenAPI ułatwia dokumentowanie i integrację z usługami sieciowymi.
Paginacja
Polega na podziale treści i umieszczaniu jej na kolejnych stronach. To częste rozwiązanie w sklepach internetowych, gdzie kolejne produkty w danej kategorii umieszczane są na następnych stronach w celu poprawy czytelności i uniknięcia długiego czasu wczytywania.
Pull Request
To propozycja wprowadzenia zmian w kodzie do głównej gałęzi projektu. Najczęściej zawiera zestaw commitów, opis zmian i miejsce do przeprowadzenia code review przed połączeniem ich z resztą aplikacji.
Polimorfizm
To cecha programowania obiektowego pozwalająca traktować różne obiekty w podobny sposób, jeśli spełniają ten sam kontrakt. Dzięki temu jedna operacja może działać na wielu typach obiektów bez potrzeby pisania osobnej logiki dla każdego z nich.
Pagination Cursor
To sposób paginacji, w którym kolejne dane pobiera się na podstawie specjalnego wskaźnika określającego miejsce dalszego odczytu. Cursor pagination dobrze sprawdza się przy dużych zbiorach danych i częstych zmianach w tabelach.
Pair Programming
To sposób pracy, w którym dwie osoby wspólnie tworzą kod przy jednym zadaniu. Jedna zwykle pisze, a druga na bieżąco analizuje rozwiązanie, dzięki czemu łatwiej wychwycić błędy i szybciej dojść do lepszych decyzji.
Profilowanie
To analiza działania programu pod kątem wydajności, zużycia pamięci albo czasu wykonywania poszczególnych operacji. Profilowanie pomaga znaleźć miejsca, które najbardziej obciążają system.
QA (ang. Quality Assurance)
To działania związane z dbaniem o jakość oprogramowania. Obejmują między innymi planowanie testów, sprawdzanie działania aplikacji, zgłaszanie błędów i pilnowanie, aby produkt spełniał ustalone wymagania.
ROT (ang. Rule of Three)
Zasada ta dopuszcza w uzasadnionych przyczynach, posiadanie w aplikacji tego samego kodu w maksymalnie dwóch miejscach. Jeśli jednak ten sam kod wystąpi w 3 miejscach należy zastosować regułę DRY.
Refaktoryzacja
To wprowadzanie zmian w istniejącym kodzie w taki sposób, aby poprawić jego strukturę, czytelność lub łatwość utrzymania bez zmiany zewnętrznego działania aplikacji. Często obejmuje porządkowanie metod, usuwanie duplikacji i upraszczanie zależności.
REST API (ang. Representational State Transfer)
To sposób projektowania API oparty o zasoby i standardowe operacje HTTP, takie jak GET, POST, PUT czy DELETE. W praktyce REST API pozwala różnym systemom komunikować się w przewidywalny i uporządkowany sposób.
Repository
To wzorzec lub warstwa odpowiedzialna za dostęp do danych i oddzielenie logiki biznesowej od szczegółów ich pobierania oraz zapisu. Repository upraszcza pracę z bazą danych lub innym źródłem danych.
Responsywność
To zdolność interfejsu do poprawnego dopasowywania się do różnych rozmiarów ekranu i urządzeń. Responsywny widok powinien być czytelny i wygodny zarówno na komputerze, jak i na telefonie.
Rate Limiting
To mechanizm ograniczający liczbę żądań lub operacji, jakie można wykonać w określonym czasie. Rate limiting pomaga chronić system przed przeciążeniem i nadużyciami.
Rekurencja
To technika programowania, w której funkcja wywołuje samą siebie, aby rozwiązać problem przez dzielenie go na mniejsze części. Rekurencja bywa elegancka, ale wymaga uważnego kontrolowania warunku zakończenia.
Rollback
To cofnięcie wdrożonej zmiany albo powrót do wcześniejszego stanu systemu po wykryciu problemów. Rollback jest ważnym elementem bezpiecznego wdrażania i reagowania na błędy.
SOLID
To pojęcie odnoszące się do dobrych praktyk tworzenia oprogramowania. Składa się z pięciu zasad.
S - zasada pojedynczej odpowiedzialności (ang. Single-Responsibility Principle – SRP)
Zasada mówiąca o tym, że jedna klasa powinna odpowiadać tylko za jedną funkcjonalność, realizować jeden cel.O - zasada otwarte-zamknięte (ang. Open/Closed Principle – OCP)
Zasada mówiąca o tym, że poszczególne elementy aplikacji powinny być otwarte na rozbudowę, ale zamknięte na modyfikacje. Chodzi o to, żeby daną funkcjonalność programu dało się rozbudować bez modyfikacji istniejącego kodu.
L - zasada podstawiania Liskov (ang. Liskov Substitution Principle – LSP)
Definicja wygląda następująco: funkcje które używają wskaźników lub referencji do klas bazowych, muszą być w stanie używać również obiektów klas dziedziczących po klasach bazowych, bez dokładnej znajomości tych obiektów. W praktyce sprowadza się ona do właściwego wykorzystania dziedziczenia i polimorfizmu.I - zasada segregacji interfejsów (ang. Interface Segregation Principle – ISP)
Zasada mówiąca o tym, że interfejsy powinny dostarczać tylko takich funkcjonalności jakich potrzebuje implementująca go klasa. Lepiej stworzyć kilka mniejszych interfejsów niż jeden ogólny.D - zasada odwracania zależności (ang. Dependency Inversion Principle – DIP)
Zasada mówi, że wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych – zależności między nimi powinny wynikać z abstrakcji. Upraszczając, mówi ona o tym, aby w jak największym stopniu wykorzystywać klasy abstrakcyjne i interfejsy, a nie uzależniać klas od konkretnych implementacji.Scrum
To lekki framework pracy zespołowej wykorzystywany przy tworzeniu produktów, bardzo często w IT. Opiera się na krótkich iteracjach zwanych sprintami, regularnym planowaniu pracy, przeglądach efektów i bieżącym usprawnianiu sposobu działania zespołu.
Serializer
To mechanizm zamieniający obiekty lub inne struktury danych na format, który można łatwo przesłać albo zapisać, na przykład JSON. Serializacja działa też w drugą stronę, odtwarzając dane do postaci używanej przez aplikację.
Singleton
To wzorzec projektowy zakładający istnienie tylko jednej instancji danej klasy w całej aplikacji. Stosuje się go tam, gdzie wspólny punkt dostępu do jednego obiektu ma sens, choć nadużywany może utrudniać testowanie.
SQL (ang. Structured Query Language)
To język służący do pracy z relacyjnymi bazami danych. Za jego pomocą można tworzyć tabele, pobierać dane, modyfikować je i zarządzać strukturą bazy.
Stack Trace
To zapis pokazujący, przez jakie miejsca w kodzie program przeszedł przed wystąpieniem błędu. Stack trace pomaga ustalić źródło problemu i zrozumieć kontekst awarii.
State
To aktualny stan danych w aplikacji albo w konkretnym jej fragmencie. State wpływa na to, co użytkownik widzi i jak system reaguje na kolejne działania.
Sandbox
To odizolowane środowisko, w którym można bezpieczniej uruchamiać kod, testować rozwiązania albo integrować się z usługą bez ryzyka wpływu na produkcję. Sandbox ogranicza skutki potencjalnych błędów i eksperymentów.
Schema
To opis struktury danych, na przykład pól, typów i relacji pomiędzy nimi. Schemat pomaga zrozumieć, jak dane są zorganizowane i czego system oczekuje przy zapisie lub odczycie.
Sharding
To technika dzielenia dużego zbioru danych na mniejsze części przechowywane osobno. Sharding pozwala skalować systemy, które nie mieszczą się już wygodnie na jednej bazie lub jednym serwerze.
SLI (ang. Service Level Indicator)
To mierzalny wskaźnik pokazujący, jak działa usługa, na przykład pod kątem czasu odpowiedzi albo liczby błędów. SLI pomaga oceniać realną jakość działania systemu.
SLO (ang. Service Level Objective)
To cel określający, jaki poziom jakości działania usługi ma zostać osiągnięty, na przykład dostępność na określonym poziomie. SLO ustala oczekiwania wobec systemu i pomaga monitorować ich realizację.
Snapshot Test
To test porównujący aktualny wynik działania komponentu lub funkcji z wcześniej zapisanym wzorcem. Snapshot test pomaga szybko wykryć nieoczekiwane zmiany w generowanym wyniku.
Stub
To uproszczona implementacja używana najczęściej w testach zamiast prawdziwej zależności. Stub zwraca przygotowane odpowiedzi, dzięki czemu pozwala testować kod w bardziej przewidywalnych warunkach.
System rozproszony
To system złożony z wielu współpracujących ze sobą elementów działających na różnych maszynach albo w różnych usługach. Taka architektura ułatwia skalowanie, ale zwiększa też złożoność komunikacji i utrzymania.
Testy integracyjne (ang. Integration Test)
To sposób testowania całej konkretnej funkcjonalności programu. Test integracyjny sprawdza czy zależności pomiędzy poszczególnymi fragmentami aplikacji są prawidłowe i czy końcowy wynik działania jest taki jak oczekiwano.
Testy jednostkowe (ang. Unit Test)
To sposób testowania małego fragmentu aplikacji np. metody, w celu sprawdzenia czy działa ona w zakładany sposób.
TDD (ang. Test Driven Development)
Sposób tworzenia oprogramowania, w którym pracę nad funkcjonalnością zaczyna się od napisania testu jednostkowego, a dopiero potem implementacji.
Tech Debt (ang. Technical Debt)
To dług techniczny powstający wtedy, gdy wybierane są szybsze albo tymczasowe rozwiązania kosztem jakości kodu i łatwości jego dalszego rozwoju. Taki skrót często przyspiesza pracę tu i teraz, ale z czasem zwiększa koszt kolejnych zmian.
Token
To ciąg znaków wykorzystywany do identyfikacji, autoryzacji albo przekazywania określonych informacji pomiędzy systemami. Tokeny często służą do potwierdzania dostępu bez konieczności ponownego podawania loginu i hasła.
Timeout
To maksymalny czas oczekiwania na zakończenie operacji, po którego przekroczeniu system uznaje, że coś poszło nie tak. Timeout pomaga chronić aplikację przed zbyt długim blokowaniem zasobów.
Transakcja
To zestaw operacji, które powinny zostać wykonane jako jedna całość: albo wszystkie zakończą się sukcesem, albo żadna nie zostanie zapisana. Transakcje pomagają utrzymać spójność danych.
UML (ang. Unified Modelling Language)
UX (ang. User Experience)
Jest to całość wrażeń, jakich doświadcza użytkownik podczas korzystania z produktu.
VPS (ang. Virtual Private Server)
To wirtualny serwer, który powstał w wyniku podziału fizycznego serwera na kilka części.
Wzorce projektowe (ang. Design Patterns)
Zbiór uniwersalnych, łatwych do utrzymania i sprawdzonych w praktyce rozwiązań w programowaniu obiektowym dla często pojawiających się, powtarzalnych problemów projektowych.
Walidacja
To proces sprawdzania, czy dane wejściowe spełniają określone warunki i mają poprawną formę. Walidacja pomaga wychwycić błędy zanim niepoprawne dane trafią dalej do systemu.
Webhook
To mechanizm, dzięki któremu jedna aplikacja może automatycznie powiadomić inną o określonym zdarzeniu przez wysłanie żądania HTTP. Webhooki są często używane przy integracjach pomiędzy systemami.
Workflow
To uporządkowany przebieg pracy lub proces składający się z kolejnych kroków. W programowaniu i automatyzacji workflow opisuje, co ma wydarzyć się po kolei, aby osiągnąć określony efekt.
Watcher
To mechanizm obserwujący zmiany w plikach, danych albo określonych zdarzeniach i reagujący na nie automatycznie. Watchery są często używane podczas developmentu do przebudowy aplikacji lub uruchamiania testów.
XP (ang. eXtreme Programming)
Zbiór zasad dotyczących programowania w sytuacji gdy założenia aplikacji nie są do końca znane i nie można przewidzieć ich finalnego kształtu.
YAGNI (ang. You aren't gonna need it)
Dobra praktyka programowania mówiąca o tym, żeby nie tworzyć nadmiarowego kodu, który nie wiemy czy będzie przydatny w przyszłości. Chodzi tutaj też o usuwanie z aplikacji kodu, którego już nie potrzebujemy i nie dołączanie do programu zbędnych zależności.
Zmienna
To nazwane miejsce w pamięci programu, w którym można przechowywać określoną wartość, na przykład liczbę, tekst albo wynik działania funkcji. W trakcie działania programu wartość zmiennej może się zmieniać.









2 Comments
Marcin
Hej,
Dziękuję za artykuł 🙂
Mała uwaga, przy literze U zamienione miejscami są rozwinięcia skrótów dla dwóch pojęć.
kodomaniak
Dzięki za czujność! Poprawione 🙂