Editing
Jak začít s DevOps a neztratit se v pojmech
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Než napíšete první unit test, zapomeňte na představu, že testy jsou něco navíc. Jsou to spustitelné dokumentace vašeho kódu. Začněte u malé, izolované funkce, která nemá vedlejší účinky. Ideální je čistá funkce, která přijímá vstup a vrací výstup. Vyhněte se psaní testů pro třídy s databází, souborovým systémem nebo síťovými voláními. To je integrační testování a na to budete potřebovat jiné nástroje.<br><br>Pro každou feature větev platí zásada: měla by být krátkodobá a zaměřená na jednu konkrétní funkcionalitu. Pokud potřebujete pracovat na více nezávislých úpravách, které spolu nesouvisí, rozdělte je do samostatných větví. Vyhnete se tak situaci, kdy jedna větev obsahuje směs nesouvisejících změn a je obtížné ji reviewovat i případně vrátit zpět. Pravidelně provádějte merge z hlavní větve do své feature větve, abyste minimalizovali rozdíly a usnadnili si finální merge. Tím také včas odhalíte případné konflikty.<br><br>Začněte tím, že si definujete tři oblasti, na které se budete ptát: co funguje, co nefunguje a co bychom chtěli zkusit. Tyto oblasti napište na tabuli nebo do sdíleného dokumentu a dejte každému 5–10 minut na tiché zapsání svých postřehů. Teprve poté otevřete diskusi. Tento postup zabrání tomu, aby se první řečník stal hlavním tématem a ostatní se k němu jen přidávali. Každý bod pak procházejte jednotlivě a ptejte se: „Co konkrétně jsi tím myslel?" nebo „Jak to vidíš, že bychom to mohli změnit?"<br><br>Nakonec si osvojte techniku re-estimace – přehodnocení odhadů během sprintu. Agilní týmy často dělají chybu, že odhad berou jako neměnný rozsudek. Ale pokud zjistíte, že analýza trvá déle, než se čekalo, okamžitě to komunikujte a upravte plán. Stejně tak po dokončení sprintu porovnejte odhad se skutečností a kalibrujte budoucí odhady. Tento zpětnovazební cyklus je důležitější než samotný odhad – jinak budete stále dokola opakovat stejné chyby.<br><br>Až budete mít stabilní základ, rozšiřte automatizaci na monitorování a sběr logů. Ale ani tady nehledejte nástroj, který umí všechno. Vezměte to, co už máte, a pořádně to propojte. Vytvořte jednoduchý dashboard, na který se tým dívá ráno a večer. Pokud vás něco napadne a chcete to vyzkoušet, udělejte to na malém nezávislém projektu. To je nejlepší způsob, jak se učit, protože případná chyba nepoškodí produkci. A hlavně – DevOps není cíl, ale neustálé zlepšování. Nebojte se experimentovat a měnit procesy podle toho, co tým skutečně potřebuje.<br><br>Verzování kódu při paralelním vývoji více feature větví je častým zdrojem konfliktů a ztráty času. Klíčem k efektivní práci je disciplína a jasná pravidla, která platí pro celý tým. Než začnete s jakoukoli větví, ujistěte se, že máte aktuální stav hlavní větve a že vaše lokální změny jsou založeny na stabilním bodu. Ideálně si před vytvořením nové větve stáhněte nejnovější změny z remote a vytvořte větev až z aktuálního stavu. Tím se vyhnete zbytečným konfliktům, které vznikají při mergování starých větví.<br><br>Pytest také umožňuje parametrizaci testů, což je skvělý způsob, jak otestovat mnoho kombinací vstupů bez psaní duplicitního kódu. Pomocí @pytest.mark.parametrize nadefinujete seznam hodnot a funkcí, která je postupně projde. To se hodí pro hraniční případy, jako je prázdný řetězec, nula, záporná čísla nebo prázdný seznam. Díky parametrizaci získáte lepší pokrytí a při selhání hned víte, která konkrétní kombinace nefunguje.<br><br>Odhad času v agilním vývoji je vždy kompromisem mezi přesností a rychlostí. Než začnete plánovat, rozdělte si práci na dvě základní kategorie: analytické fáze (průzkum, návrh, specifikace) a implementaci (kódění, testování, nasazení). Každá z nich má jiné riziko a nejistotu, a proto je nelze odhadovat stejným metrem. Analytika obvykle zabere méně času, ale chyba v ní se promítne do celé implementace – pokud podceníte návrh, v kódu to doženete dvojnásobně.<br><br>Praktický postup: naplánujte analytiku jako samostatný sprint před implementací, nebo jako první část sprintu. Pokud máte dvoutýdenní sprint, vyhraňte první dva až tři dny na analýzu a zbytek na kódění. Ale pozor – nikdy nenechávejte analytiku „plavat" bez časového limitu. Analytik by měl mít jasný deadline, jinak se fáze nekonečně protahuje. Deadliny ale nesmí být příliš těsné – typická chyba je, že analytik stihne návrh na poslední chvíli a vývojář nestihne zpětnou vazbu.<br><br>Pokud chcete jít hlouběji, vyzkoušejte tzv. „5 Whys" – na každý problém se ptejte pětkrát „proč", dokud nedojdete k příčině. Například: „Proč jsme nestihli deadline?" – „Protože jsme museli opravovat chyby z minula." – „Proč vznikly ty chyby?" – „Protože jsme neměli dost času na testování." – „Proč jsme neměli čas?" Takto se dostanete k systémovému problému, který se dá řešit. Typická chyba je, že se zastavíte u první odpovědi a hned skočíte k řešení.
Summary:
Please note that all contributions to Rikkiepedia may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Rikkiepedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Tools
What links here
Related changes
Page information