Slovník pojmů
Zdrojový kód
Zdrojový kód je textový zápis programu, který lidé čtou, mění, kontrolují a testují. Není automaticky totéž co repozitář, konfigurace, binární soubor nebo vygenerovaný build.
Stručná definice
Čitelný vstup pro program a pro tým.
Programovací jazyk určuje, jak mohou vypadat instrukce, deklarace, typy, funkce nebo třídy; tato pravidla popisuje jeho syntaxe. Zdrojový kód se obvykle dělí do textových souborů podle odpovědností projektu a vedle aplikačního kódu zahrnuje i testy.
Interpreter může zdrojový kód vykonávat přímo, kompilátor z něj může vytvořit jinou podobu určenou pro běh nebo distribuci. Hranice není ve všech jazycích ostrá: nástroje mohou vytvářet mezikód, cache i build artefakty. Základní rozdíl zůstává: zdroj je upravitelný vstup, nikoli hotový spustitelný program či binární soubor.
Jaký problém řeší
Umožňuje programu i lidem sdílet přesné chování.
Dobře organizovaný zdrojový kód dovoluje změny diskutovat, revidovat, automaticky ověřovat a vracet se k historii v Gitu. Repozitář pak obvykle drží kód, historii změn, vybranou konfiguraci a pravidla spolupráce; není jen synonymem pro samotný kód.
- vyjádření pravidel aplikace, datových transformací a uživatelského rozhraní
- automatizované testy a statické kontroly nad stejnou změnou
- code review a dohledání důvodu změny v historii
- sestavení nebo nasazení artefaktu z ověřeného vstupu
Praktický příklad
Co v PHP projektu zdrojový kód je a co s ním jen souvisí
Všechny uvedené soubory mohou být důležité pro projekt, ale nemají stejnou roli. Třída ve src/ a test ve tests/ jsou programový zdroj. Migrace popisuje verzovanou změnu dat. composer.json je konfigurace závislostí; composer.lock zachycuje jejich konkrétně vyřešené verze. Vygenerovaný JavaScript v public/build/ je artefakt určený pro prohlížeč.
Adresář vendor/ obsahuje nainstalovaný kód jiných balíčků spravovaných například přes Composer. Obvykle jej ručně neupravujeme jako vlastní zdroj. To, co se verzují a generuje, je týmové rozhodnutí projektu; důležité je, aby byl původ nasazovaného artefaktu dohledatelný.
Struktura projektu
shop/
├── src/Order/Order.php ← aplikační zdrojový kód
├── tests/Order/OrderTest.php ← testovací zdrojový kód
├── migrations/Version20260810.php ← verzovaná změna databáze
├── composer.json ← konfigurace projektu
├── composer.lock ← vyřešené verze závislostí
└── public/build/app.js ← vygenerovaný build pro prohlížeč
Od textu k běhu
Zdroj není poslední podobou programu
Konkrétní nástroje a kroky se liší podle jazyka a projektu, tento tok pouze ukazuje jejich obvyklé role.
- Textové soubory Vývojář zapíše instrukce, deklarace a testy v konkrétním jazyce.
- Kontroly Parser, formatter, testy nebo statická analýza vyhodnotí různé druhy problémů.
- Verzování Změna se uloží s historií, review a kontextem v repozitáři.
- Build nebo interpretace Nástroj kód vykoná, přeloží nebo z něj vytvoří distribuční artefakt.
- Nasazení Ověřená verze vstoupí do prostředí, kde program obsluhuje skutečné požadavky.
Co do něj patří
Kód, komentáře a struktura mají odlišné úkoly.
Zdrojový kód není jen řada příkazů. Jeho čitelnost vzniká i názvy, rozdělením odpovědností, typy a testovatelným návrhem.
Instrukce a deklarace
Popisují, co program dělá a jaké typy, funkce, třídy či moduly nabízí.
Komentáře
Pomáhají vysvětlit záměr, omezení nebo neintuitivní rozhodnutí. Nemají nahrazovat názvy a návrh, kterým bez komentáře nelze rozumět.
Konfigurace
Soubor může být verzovaný a nezbytný pro běh, ale například nastavení závislostí není automaticky aplikační instrukce.
Generované soubory
Build, cache nebo klient vytvořený z OpenAPI se obvykle odvozují ze zdroje. Je vhodné znát jejich původ a pravidlo obnovy.
Omezení a časté chyby
Čitelnost ani dostupnost kódu nejsou samozřejmost.
Dobrá praxe
- dohledatelný původ build artefaktu a opakovatelný postup sestavení
- smysluplné názvy, malé odpovědnosti a testy místo popisu každého kroku v komentáři
- version control pro společně spravovaný kód i jeho nezbytnou konfiguraci
- automatické kontroly, které vrací rychlou zpětnou vazbu před nasazením
Rizika
- produkční hesla, tokeny a privátní klíče ve zdrojovém kódu nebo historii
- ruční oprava vygenerovaného souboru bez změny skutečného zdroje
- zaměnění dostupnosti repozitáře za licenci k použití kódu
- komentář vysvětlující nečitelný návrh místo jeho zjednodušení
Praktická práce
Změnu je potřeba umět nejen napsat, ale i ověřit a dohledat.
Udržovaný kód dovoluje týmu bezpečně měnit program i po letech. Pomáhá, když je z názvů, testů a hranic tříd patrné, co má změna zachovat. Znalost konkrétního jazyka nestačí, pokud nikdo nerozumí, kam nová odpovědnost patří.
Pro zdrojový kód platí stejná bezpečnostní pravidla jako pro ostatní součásti projektu. Přístupy do produkce se předávají přes bezpečný mechanismus prostředí nebo správce tajemství, nikoli jako hodnoty v commitu.
Kontrola změny
Oddělte záměr, konfiguraci a výsledek sestavení.
Toto rozdělení usnadňuje review i řešení problému, kdy se chování nasazené verze liší od očekávání.
- ověřit syntaxi a typy pomocí odpovídajících nástrojů
- spustit testy chování, které změna ovlivňuje
- zjistit, zda je upraven vlastní zdroj, konfigurace nebo odvozený artefakt
- neukládat secrets ani kopie produkčních dat do repozitáře
- zachovat vazbu mezi commitem, buildem a nasazenou verzí
Časté otázky
Co zdrojový kód znamená pro projekt
Je zdrojový kód vždy veřejný?
Ne. Většina aplikačního kódu je soukromá a přístup do repozitáře se řídí rolí v týmu. Open-source projekt se zveřejňuje vědomě pod konkrétní licencí.
Je repozitář totéž co zdrojový kód?
Ne. Repozitář vedle zdrojových souborů uchovává historii změn, větve, pravidla spolupráce a často konfiguraci projektu.
Patří composer.json mezi zdrojový kód?
Je to důležitá verzovaná konfigurace PHP projektu. Neobsahuje obvykle aplikační instrukce, ale popisuje závislosti a způsob jejich načtení.
Mohu převzít kód, který je veřejně dostupný?
Pouze pokud to dovoluje jeho licence a podmínky. Veřejná URL nebo veřejný repozitář nejsou samy o sobě oprávněním k použití.
Osobní zkušenost
Kód má být čitelný při změně, nejen při prvním napsání.
V PHP projektech spojuji návrh zdrojového kódu s testy, automatickými kontrolami a bezpečným postupem nasazení.