0 votes
Jak postupovat při schvalování konkrétní licence Nejprve si udělejte inventuru všech závislostí. Nestačí projít přímé balíčky, protože licence se dědí i z tranzitivních závislostí. Použijte nástroj pro generování seznamu licencí, ale výsledek berte jako vodítko, ne jako hotové rozhodnutí. U každé licence si ověřte tři věci: zda vyžaduje zveřejnění zdrojového kódu, zda obsahuje patentovou klauzuli a zda řeší odpovědnost za škody. Teprve potom rozhodněte, zda kód můžete použít v uzavřeném produktu, nebo zda ho musíte izolovat do samostatné služby.

Permisivní licence, mezi které patří například MIT, BSD nebo Apache, obvykle vyžadují jen zachování autorských práv a textu licence. U Apache navíc platí ustanovení o patentech a o označení změněných souborů. To znamená, že smíte kód uzavřít, upravit a dál prodávat, pokud dodržíte podmínky. Copyleftové licence, jako GPL nebo AGPL, jdou dál: odvozené dílo musí zůstat pod stejnou licencí. U AGPL se povinnost zveřejnění vztahuje i na software provozovaný po síti, což je pro řadu firemních backendů zásadní rozdíl.

Redux je navržený tak, že většinu logiky lze ověřit bez jakéhokoli integračního prostředí. Reducer je čistá funkce: dostane stav a akci, vrátí nový stav. Žádné API, žádná databáze, žádný prohlížeč. Pokud tomu tak není, problém není v testech, ale v návrhu. Prvním krokem je proto rozdělit kód na dvě části: čistou logiku přechodů stavů a vedlejší efekty, které patří do middlewaru nebo thunků.

U asynchronních testů platí dvě pravidla. Vždy vrať slib z testu, aby ho runner počkal. A vždy ošetři obě větve – úspěch i chybu. Typická chyba je testovat jen stav po dokončení, ale ne to, co se stalo během čekání. Ověř, že se dispatch volá ve správném okamžiku a že se po chybě neposílá akce pro úspěch. Pokud používáš thunk, testuj ho jako obyčejnou funkci; žádný store k tomu nepotřebuješ.

Výběr licence pro firemní projekt nezačíná u seznamu zkratek, ale u otázky, kdo ponese odpovědnost za případné vady a jak se bude software dál šířit. Open source licence jsou nástroje, které určují, co smíte s kódem dělat, co musíte zachovat a co musíte zveřejnit. Rozdíl mezi permisivní a copyleft licencí se projeví až ve chvíli, kdy kód kombinujete s vlastním nebo s kódem třetí strany.

Než začnete řešit větve a Pull Requesty, musíte se domluvit na jedné větvi, která je vždy nasaditelná. Říkejte jí klidně main nebo master, ale musí platit, že obsahuje jen to, co je otestované a připravené jít na produkci. Do této větve nikdo neposílá commity přímo. Každá změna jde přes novou větev a kontrolu. Pokud tohle není jasné, dřív nebo později se stane, že si dva lidé přepíší práci a dohledávání zabere celý den. Název pracovní větve by měl nést informaci: typ změny a krátký popis, například oprava-prihlaseni nebo nova-fakturace. Vyhněte se názvům typu test, vetev2 nebo jmeno-prijmeni.

Asynchronní akce bez serveru Async akce nejsou nic jiného než funkce, které postupně volají dispatch. K jejich testování nepotřebuješ běžící backend. Stačí vytvořit falešný dispatch a falešnou funkci, která vrací slib. Zavolej thunk s těmito závislostmi a ověř, které akce byly odeslány a v jakém pořadí. Pokud thunk používá axios nebo fetch přímo v těle, bude se testovat obtížně. Řešením je předat klienta jako argument nebo použít injektáž závislostí.

Prvním krokem je udělat si inventuru toho, co už máte. Sepište si, jaké dovednosti a znalosti ve vašem týmu skutečně jsou. Ne jen formální kvalifikace, ale i to, kdo umí seřídit konkrétní zařízení, kdo rozumí surovinám a kdo dokáže řešit krizové situace. Zjistíte, že některé znalosti jsou vázané na jediného člověka. To je riziko. Podpora rozvoje pak nespočívá v tom poslat všechny na kurz, ale v tom cíleně předávat znalosti mezi lidmi. Zaveďte pravidelné krátké schůzky, kde si operátoři předají zkušenosti z uplynulého týdne. Není to formální školení, ale sdílení toho, co funguje a co ne.

Agilní metodiky se v českých vývojářských týmech často zavádějí špatně: vedení nařídí Scrum, tým dostane tabuli s barevnými papírky a po dvou měsících se všechno vrátí do starých kolejí. Problém nebývá v metodice, ale v tom, že se přehlédne rozdíl mezi formálním zavedením a skutečnou změnou způsobu práce. Scrum není sada schůzek, je to způsob, jak tým řeší nejistotu. Pokud to někdo pochopí jako reporting pro management, výsledkem je jen další vrstva byrokracie.

Nejdřív pochopte, co Scrum řeší Scrum stojí na třech rolích: Product Owner určuje priority, Scrum Master odstraňuje překážky a vývojový tým dodává inkrement. V české praxi se nejčastěji rozpadá první role. Product Owner bývá zároveň vedoucí oddělení nebo obchodník, který nemá čas na zpětnou vazbu od uživatelů. Výsledkem je backlog plný požadavků od různých zájmových skupin a tým neví, co je skutečně důležité. Řešení je jednoduché, i když nepříjemné: Product Owner musí mít rozhodovací pravomoc a musí být dostupný. Když to nejde zajistit, Scrum v této podobě nemá smysl a je lepší zvolit lehčí přístup.
ago by (120 points)

Your answer

Privacy: Your email address will only be used for sending these notifications.
...