Projekt

Obecné

Profil

Konvence vývoje » Historie » Verze 7

Jan Kebrle, 2017-04-01 15:01

1 1 Jan Kebrle
h1. Konvence vývoje
2
3 6 Jan Kebrle
h2. Fylozofie vývoje
4 1 Jan Kebrle
5 2 Jan Kebrle
Při vývoji budou v maximální možné míře použity/vyzkoušeny "best practices" vývoje softwaru (vysoké pokrytí kódu testy, programování proti rozhraní a modularita, použití návrhových vzorů), které s rostoucí velikostí projektu nabývají na důležitosti. Cílem bude psát čistý, co nejjednodušší a nejsrozumitelnější kód. 
6 1 Jan Kebrle
7
* Kód bude členěn do malých, maximálně nezávislých logických celků (modulů/tříd) zpřístupněných rozhraním (API).
8
9 4 Jan Kebrle
* Nejdůležitější vlastnostní kódu je, aby byl snadno čitelný, udržovatelný a srozumitelný z hlediska ostatních vývojářů. Názvy proměnných/metod/tříd budou voleny s důkladným rozmyslem tak, aby byly maximálně popisné a samovysvětlující. Komentáře budou proto použity pouze v odúvodněných případech (komplikovaná či špatně čitelná funkcionalita, popis rozhraní). 
10 1 Jan Kebrle
11 4 Jan Kebrle
* Nový kód bude v ideálním případě podroben code review dalším členem/členy týmu. Tím se docílí dodržování zde uvedených konvencí a zároveď napomůže včasnému odhalení chyb, nesrovnalostí či odchylek od specifikace.    
12 1 Jan Kebrle
13
14 6 Jan Kebrle
h2. Obecné konvence kódu
15 1 Jan Kebrle
16
* Veškerý kód (názvy proměnných, tříd, metod...) bude psán v anglickém jazyce, komentáře kódu a popisy commitů budou pro srozumitelnost psány česky.
17 4 Jan Kebrle
18 5 Jan Kebrle
* Každá třída/soubor bude na začátku obsahovat komentář se jménem autora a datem vytvoření (případně popis funkcionality). Výraznější změny třídy/souboru budou společně s jejich popisem zaznamenány stejným způsobem. 
19 4 Jan Kebrle
20 5 Jan Kebrle
* Levá složená závorka následující za deklarací třídy, metody či podmínky, bude umístěna na stejném řádku, jako tato deklarace.  
21 1 Jan Kebrle
22 5 Jan Kebrle
* Odsazování kódu bude realizováno výhradně tabulátorem. Zobrazení tabulátoru jako konkrétní počet mezer si pak může každý vývojář nastavit v IDE podle své osobní preference.
23 1 Jan Kebrle
24 4 Jan Kebrle
25 5 Jan Kebrle
h2. Konvence pro jazyk Java
26
27 1 Jan Kebrle
* Při vývoji budou dodržovány standartní konvence jazyka java, popsané v tomto "dokumentu":http://www.oracle.com/technetwork/java/codeconvtoc-136057.html firmy Oracle.
28
29
* Každý modul/logický celek bude zvenčí přístupný pomocí rozhraní deklarujícího služby které poskytuje, název rozhraní bude končit slovem "Api", např.: PasswordVerificationApi. Název třídy implementující toto rozhraní bude končit slovem "Impl", např.: PasswordVerificationImpl. V případě rozhraní nezávislého na konkrétním modulu a definujícím obecnou funkctionalitu, bude pro pojmenování rozhraní použita jmenná konvence začínající písmenem "I", např.: IComparable, IPrintable.
30 5 Jan Kebrle
31
h2. Konvence jazyka PHP
32
33 6 Jan Kebrle
h2. Konvence dokumentace
34 5 Jan Kebrle
35 6 Jan Kebrle
h3. Úrovně nadpisů