# Jak dnes stavím software: efektivita a řád v éře AI
👉 [[2.5.1 Software development]]
_Pohled pod pokličku mého vývojového procesu, kde "vše jako kód" není jen fráze, ale nutnost pro udržitelnost._
---
Vývoj softwaru se za poslední roky proměnil. Už nestačí jen napsat funkční aplikaci. Pokud chcete doručovat kvalitu a zároveň se nezbláznit z údržby, musíte řešit infrastrukturu, bezpečnost, automatizaci nasazování a nově i spolupráci s AI. Jako technologický partner pro různé projekty jsem hledal cestu, jak doručit robustní řešení, aniž bych pro každý projekt stavěl vše od nuly.
Výsledkem je sada nástrojů a postupů, kterou interně používám. Není to žádná revoluční novinka, spíše pragmatická evoluce toho, co v oboru funguje.
## Proč nestačí jen "začít psát kód"
Když začínáte nový projekt, láká to vrhnout se rovnou na funkce. Ale bez pevných základů se rychle dostanete do bodu, kdy trávíte více času opravováním a nastavováním než samotným vývojem. Proto jsem si vybudoval ekosystém, který mi umožňuje soustředit se na to podstatné – byznys logiku klienta.
Jde o **monorepo** (jeden repozitář pro všechno), které sjednocuje infrastrukturu, backendové služby i frontend. Cílem je mít jedno místo pravdy.
Pro menší projekty se zase může hodit jednoduchý a škálovatelný **serverless** přístup.
## Tři principy, kterých se držím
### 1. Všechno jako kód (Everything as Code)
Snažím se, aby v repozitáři bylo definováno úplně vše. Nejen samotná aplikace, ale i:
- **Infrastruktura:** Servery, databáze a sítě definované v Terraformu.
- **Konfigurace CMS:** Struktura dat a nastavení administrace jsou verzované. Žádné "klikání v adminu", které se zapomene přenést na produkci.
- **Dokumentace:** Žije přímo u kódu, takže má šanci zůstat aktuální.
### 2. Připraveno pro AI (a její kontrolu)
Moderní vývoj se neobejde bez AI asistentů. Dokáží generovat kód neuvěřitelnou rychlostí, ale to s sebou nese nové riziko. AI je skvělý sluha, ale bez dozoru může napáchat škody.
- **Důvěřuj, ale prověřuj:** Čím více kódu generuje AI, tím robustnější musí být kontrolní mechanismy.
- **Automatizované testy:** Bez dobrých testů je použití AI hazard. Každá změna musí projít sadou testů, které odhalí i nenápadné chyby.
- **CI/CD a revize:** Automatizace nasazování (CI/CD) a důsledné code reviews jsou nezbytnou záchrannou sítí. AI může navrhnout řešení, ale člověk (nebo automatizovaný proces) musí ověřit, že je bezpečné a správné.
- **Strukturovaný kontext:** Aby AI dělala méně chyb, potřebuje kvalitní zadání a kontext. Proto mám v projektech adresáře s dokumentací a pravidly, které si AI "přečte", než začne pracovat.
### 3. Modularita a události
Místo jednoho velkého monolitu stavím systém jako sadu menších, nezávislých služeb, které spolu komunikují pomocí zpráv (událostí).
- Umožňuje to snadno přidávat nové funkce bez rizika, že rozbijete ty staré.
- Jednotlivé části lze škálovat nebo vyměnit nezávisle na zbytku.
- Snadno se napojují externí systémy (účetnictví, plánování výroby atd.).
## Co to znamená v praxi?
Proč to dělám takhle složitě? Protože ve výsledku je to jednodušší.
- **Rychlý start:** Díky připraveným šablonám mám základ projektu hotový za pár dní, včetně nastavení serverů a automatického nasazování.
- **Klidné spaní:** Automatizované testy a procesy (CI/CD) hlídají, že se na produkci nedostane chyba.
- **Transparentnost:** Klient vidí, co se děje, a díky automatizaci neplatí za opakující se manuální práci.
## O čem budu psát dál
Tohle byl jen stručný úvod do mé "kuchyně". V dalších článcích bych rád rozebral konkrétní technická témata:
1. **CMS jako kód:** Jak verzovat nastavení headless CMS systémů.
2. **AI v praxi:** Jak reálně využívám AI agenty při vývoji.
3. **Život v monorepu:** Jak efektivně řídit více projektů na jednom místě.
Zajímá vás, jak tyto principy fungují v reálném světě? Sledujte tento blog.
#softwareDevelopment #everythingAsCode #AI #monorepo #vývoj