• @Odbor - technicky má oprávnění mazat
  • @ALL má oprávnění číst
  • @Celostatni forum má oprávnění nahrávat
  • @Registrovani priznivci má oprávnění nahrávat
  • lukas.novy nemá žádná oprávnění

Standard pro nové aplikace Pirátů

Piráti pracují s širokou škálou software, který byl psán a spravován dobrovolníky. V minulosti vznikl velký technologický dluh, který se postupně daří odstraňovat. Jako prevence podobných problémů v budoucnu slouží tento seznam základních požadavků pro dobrý softwarový projekt a jeho nasazení.

Tyto standardy by měl dodržovat každý, kdo chce nasazovat nové aplikace, ať už jde o dobrovolníka, dodavatelskou firmu či propagátora konkrétního existujícího software.

Pokud chcete vytvořit nějakou aplikaci, rozmyslete, jak splníte požadavky. S hotovým návrhem, nebo žádostí o pomoc, se můžete obrátit na Koordinátora technického odboru, případně na další členy TO (Martin Rejman, Jitka Novotná).

Fáze návrhu aplikace

  • Zadání problému Konkrétní popis toho, k jakému účelu má aplikace sloužit, včetně příkladů.
  • Designové rozhodnutí Zdůvodnit rozhodnutí výběru konkrétních knihoven, dalších projektů apod. Příklad: blog, nástroj, i prostý text stačí.
  • API Cílem je sdílení dat mezi aplikacemi - je třeba určit, která data se mají poskytovat, a to ve strojové podobě. Ideální forma aplikací může být tedy oddělený “data provider” a “end-user GUI” (modularita). současná api
  • Opensource Preferovaná SW licence: MIT, Apache 2, LGPL, GPL, ve vyjimečných případech se dají vyuzít i nesvobodné licence, pokud bude mít Pirátská strana práva na software i k datům. Chceme omezit riziko vzniku závislosti na neudržovaných / proprietárních / licenčně nevhodných technologiích a produktech. Preferujeme použití rozšířeného opensource před psaním vlastních projektů.
  • Technologie Při výběru technologií zohledňujeme, zda je vhodná, má budoucnost, máme na ni kapacity. Příklady: Operační systém: Linux, nejčastěji CentOS či Debian. Jazyky: Python, node.js, Ruby, php. Databáze: Postrgesql, mariaDB, případně lze použít elastic search.
  • SSO Pracuje-li aplikace s uživateli, tak nesmí zakládat vlastní, ale použít přihlášení přes SSO (Single-Sign-On server běžící na adrese auth.pirati.cz).
  • HW požadavky Definovat požadavky na výkonnost aplikace, škálování na počet uživatelů, souběžných činností, load balancing.
  • Pirátský vizuál Aplikace by měly mít jednoté UI/UX odpovídající grafickému manuálu
  • Intuitivnost Jednoduché intuitivní uživatelské rozhraní.
  • Data Data ukládat do systémů, které jsou zálohované, tj. např. do databází. Variantou lokálního ukládání dat jsou bezstavové aplikace, které lze nasadit např. paralelně pro zvýšení výkonu.
  • Zákonné požadavky Analýza ochrany osobních údajů/GDPR, případně dalších zákonných požadavků.
  • Důvěryhodnost Ideální je mít v době, kdy představujete projekt, již nasazenou minimalistickou verzi. Nahradit to lze poukázáním na jiné již dokončené vaše projekty.

Fáze implementace aplikace

  • Testy Unit testy v samotném kódu - zejména za účelem zabránění vzniku budoucích problémů při předávání vytvořené aplikace jinému vývojáři či správci. U některých projektů může unit testy nahradit skutečnost, že je software už široce rozšířený.
  • Dokumentace Vysvětlení architektury projektu, složitějších myšlenek. Deployment dokumentace - závislosti, postup nasazení, a podobně. Ideálem je samopopisný kód s inline dokumentací v místech, kde je třeba (více informací je lépe). Snadno předatelný kód. V případě rozsáhlých projektů je nutné mít i administátorskou a uživatelskou dokumentaci.
  • Event-hooks vstupní a výstupní události pro komunikaci mezi aplikacemi. Řeší případy, kdy se změní data v jiné aplikaci a ostatní aplikace se o tom musí dozvědět. Příkladem je single-logout v SSO Keycloak (tj. odhlášení uživatele na pokyn Centrální identity.
  • Vizuál šablonování end-user UI pro případ změny designu aplikace
  • Verzování Verzování zdrojového kódu, označování stabilních části pro případný roll-back. Continous integration.

Postup deploymentu & testování

  • Kontejnery Pro nasazení preferujeme použítí technologie Docker.
  • Napojení na stávající systémy.
  • Testovaní Aplikaci budou testovat klíčoví uživatelé (AO, PO, …) a menší testovací skupinky. Je třeba provést bezpečnostní audit na nasazené verzi.
  • Testování výkonnosti Ověření výkonnosti aplikace, škálování na počet uživatelů, souběžných činností.
  • Prezentace Zapracování toho, jak se bude aplikace používat, do stávajících procesů strany. Příprava nových návodů pro procesy ve straně.

Fáze produkčního nasazení & údržby

  • Deploy postup údržba navrženého deployment postupu
  • Aktualizace Reagování na nové verze knihoven.
  • Prezentace Nasazení návodů. Představení projektu cílové skupině.
© Piráti, 2018. Všechna práva vyhlazena. Sdílejte a nechte ostatní sdílet za stejných podmínek. Podmínky použití.