Słownik inżynierski

Indeks słownika z alfabetycznym paskiem i krótkimi hasłami

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?”

Powiązane: Spider, Scrapy

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.

Powiązane: Coupling, Observer

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.

Powiązane: GitLab, SSH

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

Powiązane: Git, SSH

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.

Powiązane: Scrapy, Venv

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.

Powiązane: Crawler, Scrapy

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.