Když potřebujete sáhnout do kódu, IDE zvládne refaktor rychleji
Volba open source licence není formalita, kterou lze odložit na později. Rozhoduje o tom, co s vaším kódem mohou dělat ostatní, zda jej mohou použít v komerčním produktu a zda musí své úpravy zveřejnit. Špatně zvolená licence se mění na právní past, ze které se dostává jen těžko. Proto je lepší strávit hodinu čtením licenčních textů než roky řešením sporů.
Nezapomínejte ani na čekání. Mezi dokončením implementace a začátkem revize často vzniká prodleva, která se do odhadu nepočítá, ale v kalendáři zabírá místo. Stejně tak opakované revize po úpravách. Pokud tým nemá jasná pravidla, kdy je revize hotová, může se cyklus opakovat několikrát. Do odhadu pak patří i čas na druhé kolo.
Začni vztažnými body. Nastav si základní škálu odstupů, typicky násobky čtyř nebo osmi pixelů, a drž se jich všude — v paddingu, marginech, mezerách mezi prvky. Náhodné hodnoty jako 13 px nebo 27 px vytvářejí chaos, který oko zachytí, i když si ho nikdo neumí pojmenovat. Stejně tak si definuj tři až čtyři velikosti písma pro nadpisy, tělo textu a popisky. Víc úrovní znamená, že se hierarchie rozpadne a uživatel nepozná, co je důležité.
Architektura a asynchronita rozhodují o udržovatelnosti Druhým zásadním bodem je struktura projektu. Pokud všechnu logiku naházíte do view controllerů, po pár obrazovkách se v kódu přestanete orientovat. Rozdělte aplikaci na vrstvy: uživatelské rozhraní, obchodní logiku a přístup k datům. Pomůže vám to při testování i při změnách. Zároveň se naučte pracovat s asynchronním kódem. Moderní Swift nabízí async a await, které nahrazují vnořené closures. Když je použijete správně, zbavíte se pekla zpětných volání a kód bude čitelnější. Pozor ale na aktualizace rozhraní – ty patří vždy na hlavní vlákno, jinak aplikace zamrzne nebo se chová nepředvídatelně.
Většina vývojářů tráví refaktoringem víc času, než by musela, protože používají IDE jako obyčejný textový editor. Přitom stačí znát pár postupů, které jsou ve každém rozumném vývojovém prostředí dostupné přes klávesnici. Cílem není naučit se všechny funkce, rekonstrukce koupelny krok za krokem ale ty, které řeší opakující se situace: přejmenování, přesun, extrakci a hledání závislostí.
Nejčastější chyba je spojování řetězců: "SELECT * FROM uzivatele WHERE jmeno = '" + vstup + "'". Stačí zadat hodnotu, která obsahuje apostrof a další SQL příkaz, a podmínka se rozpadne. Podobně nebezpečné je vkládání čísel bez ověření, protože útočník nemusí použít uvozovky a stačí mu mezera nebo komentář. Ochrana nespočívá v tom, že zakážete apostrof, ale v tom, že vstup nikdy nebude součástí textu dotazu.
Parametrizace a prepared statements v praxi Řešením jsou parametrizované dotazy, kde se hodnoty předávají odděleně od SQL příkazu. Většina knihoven pro práci s databází to podporuje přes placeholdery, například otazník nebo pojmenovaný parametr. Správný postup je napsat dotaz s placeholdery a hodnoty předat jako argumenty. Databázový ovladač je pošle zvlášť a engine je nikdy nevyhodnotí jako SQL kód. Tím zmizí i problém s apostrofy, uvozovkami a komentáři.
Další častá chyba je spoléhání na escaping. Funkce, která přidá zpětná lomítka před apostrofy, funguje jen v některých kontextech a při špatném kódování znaků může selhat. Stejně tak nestačí omezit délku vstupu nebo použít regulární výraz jen na začátku řetězce. Bezpečnostní kontrola patří na jedno místo: do vrstvy přístupu k datům, kde se každý dotaz sestavuje jednotně. Pokud se dotazy skládají na různých místech aplikace, dříve nebo později někdo zapomene.
Základem je pochopit, že Swift není jen syntaxe. Pracuje s optionals, hodnotovými a referenčními typy a správou paměti přes ARC. Typická chyba začátečníka je vynucené rozbalení hodnoty pomocí vykřičníku. Aplikace spadne ve chvíli, kdy hodnota chybí. Místo toho používejte volitelné vázání přes if let nebo guard let a chyby řešte dřív, než se projeví za běhu.
Nezapomínejte ani na testování. Napsat pár unit testů pro klíčovou logiku je rychlejší než hodiny ručního klikání. Zaměřte se na výpočty, zpracování dat a stavové přechody. Testy vám také pomohou při refaktoringu, protože okamžitě odhalí, když něco rozbijete. Ať už vyvíjíte malou utilitku nebo rozsáhlejší projekt, disciplína v těchto oblastech rozhoduje o tom, zda aplikaci dokončíte, nebo se v ní utopíte.
Zavedení prepared statements je nutné doplnit minimálními právy databázového uživatele. Aplikace nemá mít právo mazat tabulky, měnit schéma ani číst tabulky, které nepotřebuje. Když i přes veškerou snahu dojde k chybě, omezená práva zmenší dopad. Zároveň je vhodné chybové stavy logovat a nikdy nezobrazovat koncový uživatel SQL dotaz ani chybovou zprávu databáze. Útočník tak nezíská zpětnou vazbu, podle které by ladil další pokusy.
If you loved this write-up and you would like to receive a lot more data concerning Http://Crativ.Co.kr/ kindly take a look at our web site.