robime.it práve organizuje sériu večerných workshopov s Ľubošom Bosákom. Ľuboš pracoval v amazon.com ako softvérový inžinier a neskôr ako manažér vývoja a chce svoje skúsenosti zdieľať s ďalšími developermi. Tí, ktorí ste nemali príležitosť zúčastniť sa prvého workshopu prečítajte si krátke zhrnutie o dizajne komponentov.
Počas dvojhodinového workshopu sa samotného kódu ani nedotknete, zato budete vtiahnutí do procesu, ako rozmýšľať o programovaní a navrhovaní aplikácii. Cieľom je účastníkom pomôcť uvedomiť si pravidlá pri definovaní komponentov. Na prvý pohľad jasný koncept rozdeliť software na komponenty si však žiada hĺbkovú analýzu problému, pýtať sa správne otázky, mať proces.
Interface a implementácia
Pri vývoji software-u je kľúčový návrh interface-u, jednoducho povedané aký životný problém aplikácia rieši, čo má vlastne robiť. Ak hľadáte riešenie na zatáčanie auta, tak interface bude volant, ak na spomaľovanie auta, bude to pedál brzdy. Až v momente, keď máte interface navrhnutý, začína proces implementácie. To sú už riešenia a optimalizácie na základe možnosti a požiadaviek, hardwarových, biznisových, očakávanej používanosti…atď. Preto v F1 monoposte nemáte rovnaký volant ako v tatrovke :-) Ľuboš vám pomôže, ako správne rozmýšľať, aby ste implementáciu nepostavili nad interface.
Komponenty
Ak sa nad tým prvoplánovo zamyslíte, komponent je časť celku, ktorá sama o sebe niečo robí. V princípe nie je veľmi čo dodať. Pri návrhu software však nemôžete podceniť, čo daný komponent bude robiť a v akých vzťahoch bude s inými komponentmi. Na workshope sa Ľuboš teoretický aj praktický zaoberá rozdelením monolitického software-u na komponenty. Delením vzniknú vrstvy – frontend, biznis vrstva a dátová vrstva. Každá z nich má svoje priority, svoj interface aj implementáciu.
Relačné databázy
Jeden zo zvyčajných problémov software-u pri raste sú relačné databázy. Ich jednoduchosť a rýchlosť sa v určitom momente zmenia na nočnú moru. Ako s ňou pracovať a optimalizovať je pri rastúcom projekt nevyhnutné. Čakať a myslieť si, že problém nenastane nemá zmysel, treba sa pripraviť!
Čo dodať na záver? Ľuboš si dáva záležať, aby dôsledne vysvetlil koncept komponentov. To, čo sa prvých pár minút zdá jednoduché sa po chvíli zmení na náročnú myšlienkovú abstrakciu. Vďaka nej však budeme môcť vidieť váš projekt z novej perspektívy. Teória, praktické príklady určite obohatí aj chuť Ľuboša diskutovať o vašich konkrétnych problémoch.
Prečítajte si aj rozhovor s Ľubošom Bosákom: Nikto nás neučil ako rozmýšľať o programovaní samotnom