Słownik inżynierski

Ten słownik wyjaśnia terminy używane w dokumentacji crawlerów, Pythona, infrastruktury, chmury i wzorców projektowych. Jest przeznaczony dla osób, które uczą się słownictwa projektowego i potrzebują krótkich, praktycznych wyjaśnień.
Coupling
Coupling oznacza stopień zależności pomiędzy elementami kodu.
Wysoki coupling sprawia, że zmiana jednego komponentu często wymusza zmiany w innych komponentach. Niski coupling ułatwia testowanie, wymianę i ponowne użycie kodu.
Powiązane: Decoupling, Observer
Crawler
Crawler to program, który automatycznie odwiedza strony internetowe, podąża za linkami i odkrywa strony lub dane.
W projekcie wyszukiwarki lub ingestii danych crawler odpowiada na pytanie: „które strony odwiedzić jako następne?”
Decoupling
Decoupling oznacza rozdzielenie komponentów tak, aby mogły zmieniać się niezależnie.
We wzorcu Observer źródło emituje zdarzenie, a obserwatorzy reagują na nie bez bezpośredniej zależności od źródła.
DNS
DNS, czyli Domain Name System, zamienia nazwy domen, takie jak example.com, na adresy IP. Dzięki temu przeglądarki, serwery i inne urządzenia mogą odnajdywać usługi w internecie.
DNS można traktować jak książkę adresową internetu.
Docker
Docker pakuje aplikację razem z bibliotekami, zależnościami i konfiguracją systemową potrzebną do jej uruchomienia.
Taki pakiet nazywa się kontenerem. Kontener ułatwia uruchamianie aplikacji w taki sam sposób na laptopie, serwerze CI lub hostingu produkcyjnym.
Powiązane: Kubernetes
GCP
GCP oznacza Google Cloud Platform. To platforma chmurowa Google do uruchamiania aplikacji, przechowywania danych, korzystania z baz danych, wdrażania kontenerów i wynajmowania infrastruktury przez internet.
Powiązane: Terraform, OpenTofu
Git
Git to system kontroli wersji. Zapisuje historię zmian w plikach, ułatwia pracę na branchach i pozwala wielu osobom pracować nad tym samym projektem bez nadpisywania sobie zmian.
GitLab
GitLab to platforma do hostowania repozytoriów Git, issue, merge requestów, pipeline’ów CI i dokumentacji projektowej.
W onboardingu GitLab służy do sklonowania projektu, pracy z kodem i śledzenia zadań.
Kubernetes
Kubernetes, często skrócony do K8s, zarządza kontenerami na jednym lub wielu serwerach.
Docker uruchamia kontenery. Kubernetes planuje ich uruchamianie, skaluje je, restartuje i łączy w większy system.
Powiązane: Docker
MongoDB
MongoDB to baza NoSQL, która przechowuje dane jako elastyczne dokumenty podobne do JSON, zamiast klasycznych wierszy i kolumn.
Przykładowy dokument użytkownika:
{
"name": "Alice",
"age": 25,
"email": "alice@example.com",
"skills": ["Python", "Docker"]
}
MongoDB organizuje dane w ten sposób:
MongoDB
-> Database
-> Collection
-> Document
MyPy
MyPy to statyczny checker typów dla Pythona. Sprawdza błędy związane z typami przed uruchomieniem kodu.
Powiązane: Ruff
Observer
Observer to behawioralny wzorzec projektowy używany wtedy, gdy jeden obiekt musi powiadomić inne obiekty o zmianie.
Obiekt tworzący zdarzenie nazywa się często subject albo publisher. Obiekty reagujące na zdarzenie to observers albo subscribers.
Praktyczny przewodnik: Wzorzec Observer w Scrapy
Powiązane: Coupling, Decoupling
OpenTofu
OpenTofu to open-source’owe narzędzie Infrastructure as Code. Pozwala opisać serwery, sieci, bazy danych i zasoby chmurowe w plikach konfiguracyjnych, a potem tworzyć i zarządzać nimi automatycznie.
OpenTofu powstało jako fork Terraform po zmianie licencji Terraform w 2023 roku. Projekt należy do Linux Foundation i zachowuje workflow znany użytkownikom Terraform.
Powiązane: Terraform
OVHcloud
OVHcloud, często skrócone do OVH, to francuski dostawca chmury i hostingu. Oferuje serwery, infrastrukturę chmurową, storage, sieci i usługi powiązane.
Może być alternatywą dla GCP, AWS lub Microsoft Azure.
Python
Python to uniwersalny język programowania używany do skryptów, automatyzacji, przetwarzania danych, crawlerów i backendu.
W tym projekcie Python jest używany przy crawlerach i przetwarzaniu danych.
Ruff
Ruff to szybki linter i formatter dla Pythona. Pomaga znajdować problemy w kodzie i utrzymywać spójne formatowanie.
Sprawdzenie kodu:
ruff check .
Formatowanie kodu:
ruff format .
Powiązane: MyPy
Scrapy
Scrapy to open-source’owy framework Pythona do budowania crawlerów i scraperów.
Pomaga odwiedzać strony, podążać za linkami, wyciągać dane, przetwarzać itemy i zapisywać zebrane informacje.
Powiązane: Crawler, Spider, Scrapy Middleware
Scrapy Middleware
Scrapy middleware przechwytuje i modyfikuje requesty albo response’y podczas ich przejścia przez silnik Scrapy.
Middleware przydaje się do zachowań przekrojowych: nagłówków, retry, proxy, throttlingu albo czyszczenia odpowiedzi.
Spider
Spider to klasa crawlera w Scrapy. Definiuje, gdzie zaczyna się crawlowanie i jak parsowane są odpowiedzi.
W Scrapy spider zwykle zawiera start_urls, metody parse() i logikę zwracania nowych requestów albo zebranych itemów.
SSH
SSH, czyli Secure Shell, to bezpieczny protokół do łączenia się ze zdalnymi systemami i uwierzytelniania dostępu do repozytoriów Git.
Programiści zwykle używają kluczy SSH zamiast haseł. Klucz publiczny trafia do usługi takiej jak GitLab, a klucz prywatny zostaje na komputerze programisty.
Powiązane: GitLab
Terraform
Terraform to narzędzie Infrastructure as Code. Pozwala definiować i zarządzać infrastrukturą chmurową za pomocą plików konfiguracyjnych zamiast ręcznego klikania w panelu dostawcy.
Opisujesz oczekiwany stan infrastruktury w kodzie. Terraform planuje i wykonuje potrzebne zmiany.
Powiązane: OpenTofu
Venv
venv to wbudowane narzędzie Pythona do tworzenia virtual environment.
Virtual environment to oddzielne środowisko Pythona dla jednego projektu. Pozwala instalować pakiety bez wpływu na inne projekty Pythonowe na tym samym komputerze.