Odhad času v IT: plánování versus realita
V průběhu projektu odhady pravidelně porovnávejte se skutečností. Po dokončení každé úlohy si zapište, kolik času jste skutečně potřebovali, a porovnejte s odhadem. Tato zpětná vazba je nejcennějším nástrojem pro zlepšení. Pokud se vaše odhady systematicky liší, upravte své postupy. Buď přidáváte málo rezervy, nebo špatně odhadujete složitost. Nikdy nepracujte s tím, že se to „stihne rychleji, než to vypadá".
Při vývoji pro iOS si vždy nastavte testy hned na začátku projektu. Unit testy pro modely a integrační testy pro klíčové toky aplikace vám ušetří hodiny ladění. Xcode má vestavěné testovací prostředí, které spouští testy přímo v simulátoru. Začněte s jednoduchým testem, který ověří, že vaše funkce pro zpracování dat vrací očekávaný výsledek. Typická chyba je testovat až na konci, kdy je kód velký a špatně se izoluje. Pokud pišete testy průběžně, odhalíte chyby dříve a budete si jistější při refaktoringu.
Práce s API vypadá na první pohled jako magie. Posíláte požadavek na adresu a v odpovědi dostanete data, která můžete použít ve své aplikaci. Začít ale není těžké, pokud víte, kde hledat. Nejdůležitější je pochopit, že API není nástroj, ale smlouva. Definuje, jaká slova smíte použít, co vám server odpoví a v jakém formátu. Pokud tuto smlouvu porušíte, server vám vrátí chybu. Proto je první rekonstrukce koupelny krok za krokem vždy stejný: přečtěte si dokumentaci dané služby. I když je dlouhá, najdete v ní příklady požadavků, povinné parametry a případná omezení.
Důležité je také rozlišovat odhad pro různé typy rozhodnutí. Pokud vedení potřebuje vědět, zda se projekt vyplatí, stačí hrubý odhad s velkou rezervou. Pokud se ale chystáte na sprint, potřebujete detailní odhad pro jednotlivé úlohy. Nemíchejte tyto dvě roviny dohromady. Pro dlouhodobé plánování používejte rozpětí, ne jedno číslo. Například „tři až pět týdnů" je mnohem upřímnější než „čtyři týdny".
Někdy se stane, že breakpoint nefunguje, protože skript je minifikovaný. V takovém případě si zobrazte „pretty print" – tlačítko s lomítky, které kód rozloží do čitelné podoby. Pak už můžete nastavovat breakpointy normálně. Pozor si dejte na to, že v transpilovaném kódu, jako je TypeScript nebo JSX, se čísla řádků neshodují s originálem. Řešením je povolit source maps, které prohlížečům umožní mapovat kód na původní zdroj.
Nakonec si osvojte práci s výjimkami. V devtools máte možnost zapnout „Pause on exceptions", takže se skript zastaví přesně tam, kde výjimka vznikla. Tím odpadá procházení celého kódu a hledání podezřelých míst. Pokud chyba nastává jen při určité interakci, využijte záznamy z výkonu nebo zaznamenávání událostí. S těmito technikami už nebudete bezmocně klikat a doufat – místo toho budete chyby cíleně lovit.
Nakonec si uvědomte, že odhad je vždy o kompromisu mezi přesností a rychlostí. Věnovat odhadu hodiny času u každé maličkosti se nevyplatí. Pro běžné úlohy použijte zkušenost z minulých projektů a odhadněte rychle. U skutečně nových a rizikových částí si naopak vyhraďte více času na analýzu a případně vytvořte prototyp. Kvalitní odhad není o přesném čísle, ale o tom, že všichni zúčastnění rozumí nejistotě a mají společný základ pro rozhodování.
Na závěr jedno doporučení: nezačínejte s největším a nejznámějším API hned napoprvé. Vyberte si něco malého, ideálně bez nutnosti přihlášení, a zkuste si na něm vytvořit jednoduchého klienta, který data stáhne a zobrazí. Jakmile projdete tímto procesem od začátku do konce, budete mít představu, jak API fungují obecně. Pak už pro vás bude práce s tokeny, hlavičkami a limitami jen logickým rozšířením toho, co už umíte. A pokud se něco pokazí, nezoufejte. Chybové hlášky nejsou nepřítel, ale jediná zpětná vazba, kterou od serveru dostanete. Čtěte je pozorně a ony vás provedou.
Další oblast, kde dělají začátečníci chyby, je práce s asynchronními úlohami. SwiftUI má moderní přístup přes async/await, ale pokud přicházíte z jiného jazyka, může být lákavé použít DispatchQueue a uzavřenosti. To funguje, ale vede k nečitelnému kódu a potenciálním problémům s hlavním vláknem. Místo toho deklarujte funkci jako async a použijte await pro volání, která potřebují čas. Pokud potřebujete aktualizovat UI po návratu z asynchronní operace, vraťte se na hlavní vlákno pomocí MainActor. Tím se vyhnete zásekům a zajistíte, že se rozhraní aktualizuje plynule.
Na závěr si osvojte práci se soubory, když potřebujete odeslat data ve formátu JSON. Ruční přepisování těla požadavku je zbytečné, stačí použít proměnnou, do které načtete obsah souboru. Tento postup je méně náchylný na překlepy. Až budete mít kolekci hotovou, vyzkoušejte si spuštění z příkazové řádky. Tím získáte možnost zapojit testy barvy stěn do obýváku automatického buildu aplikace. Výsledkem je, že se o chybách dozvíte dřív, než je objeví uživatel.
If you have any issues with regards to where by and how to use https://wiki.man-Noir.com/, you can speak to us at our own site.