První unit test bez zbytečných nervů
페이지 정보

본문
Začněte tím, že si připravíte testovací soubor ve stejném adresáři jako produkční kód, případně v oddělené složce podle konvence vašeho projektu. Jako první napište test pro nejjednodušší případ: funkci, která sčítá dvě čísla nebo vrací délku řetězce. Použijte standardní testovací framework vašeho jazyka – nemusíte si vymýšlet vlastní infrastrukturu. Většina jazyků má vestavěné nástroje, které stačí importovat.
Při psaní prvního testu se vyhněte používání reálných databází, souborů nebo síťových volání. Tyto závislosti testy zpomalují a dělají je nestabilními. Místo toho použijte jednoduchá vstupní data přímo v kódu testu. Pokud funkce vyžaduje externí službu, navrhněte ji tak, aby se dala nahradit falešnou implementací – tím se vyhnete častému problému, kdy testy selhávají kvůli prostředí, ne kvůli chybě v kódu.
Nejprve si definujte jednoduchý model pro asynchronní stav. Místo několika samostatných polí použijte jeden objekt s klíči: data, status, error. Status může nabývat hodnot 'idle', 'loading', 'success' a 'error'. Tím získáte jednotný přístup ke všem asynchronním operacím. Například místo `isLoading`, `isError`, `data` a `errorMessage` budete mít jeden objekt `slice` s poli `data`, `status` a `error`. Tento model pak použijte pro všechny API volání v aplikaci.
Pamatujte, že GraphQL není náhrada za REST – jsou to nástroje pro různé účely. Často se používají i společně, kdy GraphQL slouží jako BFF (backend for frontend) nad REST službami. Při výběru se zamyslete také nad týmem: pokud vaši kolegové neznají GraphQL, začněte RESTem a GraphQL přidávejte postupně. Nezapomeňte, že obě technologie mají skvělou dokumentaci a řadu knihoven, takže si nejste jisti, zkuste si prototyp.
Časté chyby a jak zařídit malou kuchyni se jim vyhnout Jednou z nejčastějších chyb je mutace globálního stavu. Pokud funkce mění proměnnou mimo svůj rozsah, vznikají vedlejší efekty, které vedou k nepredikovatelnému chování. Řešením je předávat hodnoty jako parametry a vracet nové hodnoty. Například místo abyste upravovali pole pomocí `push`, raději vytvořte nové pole pomocí spread operátoru a na konci ho přiřaďte. Tím zajistíte, že původní data zůstanou nedotčena a testování bude jednodušší.
Dalším častým problémem je nedostatečné označení autorství. I když si vyberete permisivní licenci, musíte vždy uvést původního autora v souboru s licencí a v hlavičkách zdrojových kódů. Vynechání této povinnosti může vést k právním sporům. Nezapomeňte také, že pokud chcete svůj projekt distribuovat pod více licencemi (například komerční a open-source), musíte mít explicitní souhlas všech přispěvatelů. Bez toho je duální licencování nelegální.
Při výběru zvažte i komunitu, kterou chcete přilákat. Permisivní licence přitahují více firem a vývojářů, kteří chtějí kód využít v proprietárních produktech. Copyleftová GPL je zas oblíbená u nadšení pro svobodný software, ale může odradit komerční zájemce. Pokud váš projekt slouží jako knihovna, vyhněte se GPL, protože by to donutilo každého uživatele knihovny uvolnit svůj kód – místo toho použijte LGPL (slabý copyleft), která umožňuje připojení knihovny k uzavřenému softwaru.
Důležité je také psát komentáře tam, kde to dává smysl, ale ne na každém řádku. Komentáře mají vysvětlovat „proč", ne „co" – to by mělo být jasné z názvů. Pokud zjistíte, že potřebujete komentář k vysvětlení složité logiky, je to signál, že kód by měl být refaktorován. Místo komentáře vytvořte funkci s výstižným názvem, která logiku zapouzdří.
Práce s asynchronními akcemi v Reduxu často vede k nepřehlednému stavu, kde se mísí data, načítání a chyby. Typickým problémem je, že každá akce má vlastní flag pro loading, error a samotná data. Výsledkem je duplicitní logika a složitá údržba. Řešením je sjednotit strukturu stavu tak, aby každý typ asynchronní operace měl jeden konzistentní tvar, který se dá snadno testovat a znovu použít.
Jak se rozhodnout podle typu projektu Pokud vyvíjíte veřejné API, kde data konzumuje mnoho nezávislých klientů, REST je bezpečná volba. Jeho jednoduchost a široká podpora nástrojů usnadňují integraci. Naproti tomu pro interní nástroje, kde tým zná přesné potřeby a data se často mění, oceníte GraphQL. Typický příklad: e-shop s mnoha filtry – GraphQL vám umožní kombinovat parametry v jednom dotazu, zatímco REST by vyžadoval složité query parametry a vlastní logiku.
Pro komerčně přátelské projekty je vhodná mírná licence, jako je například MIT nebo BSD. Tyto licence umožňují téměř libovolné použití, včetně začlenění do placeného softwaru, a to za předpokladu, že zachováte původní copyright a licenční text. Pokud chcete, aby kdokoli mohl váš kód použít, ale nechcete řešit právní složitosti, sáhněte po takzvaných permisivních licencích. Naopak pro projekty, kde chcete, aby odvozená díla zůstala otevřená, zvolte licenci copyleftovou, typicky GPL. Ta vyžaduje, aby každý, kdo váš kód šíří, poskytl i zdrojový kód svých úprav a to pod stejnou licencí.
If you cherished this report and you would like to get more information concerning prohlédnout kindly pay a visit to the web-site.
- 이전글파워약국 남성 건강정보, 정기검진에서 확인할 항목 26.08.22
- 다음글Ordnung zu Hause: Wie ich aus meiner kleinen Wohnung ein gemütliches Zuhause gemacht habe 26.08.22
댓글목록
등록된 댓글이 없습니다.
