Vývojářský deník 2 - Dobrý Networking

Zabiják produktivity

Začal jsem pracovat na aplikaci pro Dobrý Networking a Tomáš mi povídá. “Bude to dost práce, ale odměna bude tvůj podpis pod naší aplikací.”

Je nádherné jak dvousečná je tato informace. Ano je krásné si stát za svoji prací, dostat za ni uznání a dostat možnost ji propagovat. Na druhé straně stojí ta obava být (jak to teď vypadá) jediný programátor v projektu, který bude navíc open source, takže tlak na kvalitu zpracování je vysoký. Nepochopte mě špatně. Je to jen tlak, který si vytvářím sám na sebe, protože každá moje odvedená práce je tak trochu součástí mě a nechcete si přece kazit sám sebe nekvalitně odvedenou prací.

Všiml jsem si, jak taková vlastně malá věc může zhoršovat produktivitu. Sedět po večer u počítače a soustředit se může být náročné samo o sobě. Ale co ve chvíli, kdy musíte udělat rozhodnutí, která se můžou po dalších týdnech vývoje projevit jako nešťastná? Každé rozhodnutí svažuji daleko pečlivěji než je běžné. A to nás brzdí. Navíc, když jsem zastánce přístupu rychlé vývoje, testování a následné refaktorizace a úprav. Najednou to tyto dva týdny bylo jiné. Až moc mám v hlavě fakt, že pracuji na open sourcu. a každý bude moci můj kód zhodnotit. Tento přístup dnešním článkem měním. Moje ego nemůže stát v cestě vývoji aplikace, která pomáhá ostatním lidem. Rychlý vývoj, testování, zpětná vazba a opravy a vylepšení je můj postup na další týdny.

Miluji Typescript dokud mi nezačne překážet

Na začátku projektu se píše hodně kódu s pohledem do budoucnosti. Doufám, že mi kód, který píšu navíc, všechny interfaces, obecné komponenty a schémata usnadní vývoj v budoucnu. Podle mých zkušeností z větších projektů, dle bych Typescript je následující. Dokud se nedostanu do komplikovaných typů a schémat, které jsou komplexní na definici, tak je Typescript skvělý. Opravdu mi pomáhá jako vývojáři odchytávat chyby, které se těžko detekují. Například, při manipulaci dat mi některé jazyky dovolí v podstatě ignorovat situaci, kdy data nemám definované. Pokud to nerozbije něco v kódu dál, tak se prostě špatná definice přeskočí. Řekl bych si, že super, kdyby pak nebyl další okrajový příklad, který zabrání načtení celé stránky, kvůli špatně definovaným datům. Správné použití Typescriptu toto nedovolí. Je to takový hlídací pes, který po měl štěkne, když si chci ulehčit práci.

Rozvahy a implementace API

Hodně práci jsem strávil nad implementací základního API, abych mohl začít plnit aplikaci daty, vytvářet lépe uživatelské stránky a posouvat se ve vývoji dál. V základu je API vcelku jednoduchý a šikovný nástroj. Řeknu našemu serveru, abych dostal data o uživatelích a on mi poskytne co má ve své databázi pod hlavičkou uživatele. Podobně snadno mohu data upravovat, mazat a vytvářet nová. Zajímavější to je ve chvíli, kdy třeba chcete vytvořit událost pro Dobrý Networking. Kromě textových polí vám aplikace nabídne i rozbalovací menu, kde si vyberete téma akce. Informace o výběru témat akce se, ale museli do aplikace nějak dostat. K tomu je několik způsobů, jak to udělat. Můžeme je napsat přímo do kódu vlastně jako text, vytvořit pro ně speciální složku v kódu odkud si informace brát a nebo jim vytvořit speciální tabulku v databázi. V tu chvíli, když chce uživatel vytvořit novou událost se musím zeptat přes API databáze jaká máme uložená témata. A takových dotazů v rámci pár uživatelských kliků je několik a v tu chvíli musí programátor řešit několik věcí. API mi neumí odpověď okamžitě, bude mít nějaké zpoždění. Já musím vyřešit, aby se uživatel nepokoušel nic vyplňovat. Také musím zajistit, že všechny dotazy proběhly správně a mám všechna data. Pak teprve je mohu poslat na správná místa a nechat uživatele vytvořit akci. A otázka nad kterou jsem se zamýšlel zní. Je lepší vytvořit standardní API a řešit následky, které jsem popsal výše a nebo připravit speciální API pro vytváření události, které by na jeden dotaz dodalo všechna data, která potřebuji. Zvolil jsem přístup se standardním API. Kdy byste použili přístup číslo dvě?

Obrazovka pro vytvoření eventu vytvořil Milan Honců.

Cesta k MVP a UX testování

Není na co čekat. Cesta k MVP musí být rychlá stát co nejméně prostředků. Níže jsou ukázky z aktuálního stavu. V podobném duchu teď bude vývoj plynout dál. Dokončí tato velmi snadno vypadající aplikace a na ní se bude testovat aplikační funkce. Budeme testovat, že se za různých okolností dá přihlásit do aplikace. Uživatel může vytvořit novou událost. Budeme testovat možnosti, které má organizátor akce a jak vidí akci ostatní uživatelé. Čeká nás neustály pokrok a posun kupředu. Každý den malý krůček blíže k Dobrému Networkingu.

Next
Next

Vývojářský deník 1 - Dobrý Networking