Difference between revisions of "Codestijl"
From A-Eskwiki
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Omdat we nog genoeg fietsenstallingen hebben, hebben we hier een korte opsomming van wat we mooie stijl vinden. | Omdat we nog genoeg fietsenstallingen hebben, hebben we hier een korte opsomming van wat we mooie stijl vinden. | ||
+ | |||
+ | == Witruimte en uitlijning == | ||
* Indentatie is een tab, en doorgaan van regels is twee tabs. | * Indentatie is een tab, en doorgaan van regels is twee tabs. | ||
* Regels langer dan 80 karakters zijn lelijk maar niet verboden. Dus, wees niet bang om statements en expressies over meerdere regels te verdelen. | * Regels langer dan 80 karakters zijn lelijk maar niet verboden. Dus, wees niet bang om statements en expressies over meerdere regels te verdelen. | ||
* Na een blok (functiedefinities, <code>if</code>, <code>foreach</code> etc.) komt precies één witregel. | * Na een blok (functiedefinities, <code>if</code>, <code>foreach</code> etc.) komt precies één witregel. | ||
+ | * Openingshaakjes van blokken zijn verplicht en komen op de regel eronder. (Dus <code>→ if (...)\n→ {\n→ → ...</code>) | ||
+ | |||
+ | == Hoofdletters == | ||
* Klassen zijn UpperCamelCase en functies, variabelen enzo zijn lowerCamelCase. | * Klassen zijn UpperCamelCase en functies, variabelen enzo zijn lowerCamelCase. | ||
* Heb je een afkorting zoals CSV, dan doen we CamelCase nog steeds met hoofdletters: <code>CSVPagina</code>, niet <code>CsvPagina</code>. | * Heb je een afkorting zoals CSV, dan doen we CamelCase nog steeds met hoofdletters: <code>CSVPagina</code>, niet <code>CsvPagina</code>. | ||
+ | * PHP-constanten als <code>true</code>, <code>false</code> en <code>null</code> zijn zonder hoofdletters. | ||
+ | |||
+ | == Naamgeving == | ||
* Code is Nederlandstalig, dus gebruik Nederlandse woorden. Ga hierin ook weer niet te ver: <code>BlaView::tabel()</code> ipv <code>BlaView::table()</code> maar <code>BlaView</code> ipv <code>BlaBlik</code>. | * Code is Nederlandstalig, dus gebruik Nederlandse woorden. Ga hierin ook weer niet te ver: <code>BlaView::tabel()</code> ipv <code>BlaView::table()</code> maar <code>BlaView</code> ipv <code>BlaBlik</code>. | ||
+ | |||
+ | == Overig syntaxgeneuzel == | ||
* Doxygen-commando's zijn met @: <code>@brief</code>, <code>@param</code> bla, <code>@returns</code>, enz. | * Doxygen-commando's zijn met @: <code>@brief</code>, <code>@param</code> bla, <code>@returns</code>, enz. | ||
+ | |||
+ | == Control flow == | ||
* De <code>HTMLPage</code> maak je aan in de controller, de view returnt <code>HTMLObject</code>en die je erin kan stoppen. | * De <code>HTMLPage</code> maak je aan in de controller, de view returnt <code>HTMLObject</code>en die je erin kan stoppen. | ||
* Als je wilt je checken of iets <code>NULL</code> is, gebruik dan altijd <code>is_null()</code>. | * Als je wilt je checken of iets <code>NULL</code> is, gebruik dan altijd <code>is_null()</code>. | ||
* Gebruik [[Responses]] ipv stateful functies. | * Gebruik [[Responses]] ipv stateful functies. | ||
* Gebruik <code>new $blaPage()</code> ipv <code>Page::getInstance('$bla')</code> | * Gebruik <code>new $blaPage()</code> ipv <code>Page::getInstance('$bla')</code> | ||
+ | * PHP-code die vanuit Benamite wordt aangeroepen, hoort op zijn minst in een functie, zo niet in een methode van een Controller-klasse. | ||
+ | * Heb je toch top-level PHP-code die wordt aangeroepen vanuit Benamite, doe dan geen exit/die, maar gewoon return. | ||
Vul je andere favoriete pet peeves hier in! | Vul je andere favoriete pet peeves hier in! | ||
− | Als je | + | Als je met (bestaande) code bezig bent die zich niet helemaal houdt aan deze stijl, fix dat dan (minstens in de methode waar het om gaat). |
[[Category:WebCie]] | [[Category:WebCie]] |
Latest revision as of 20:40, 29 April 2018
Omdat we nog genoeg fietsenstallingen hebben, hebben we hier een korte opsomming van wat we mooie stijl vinden.
Contents
Witruimte en uitlijning
- Indentatie is een tab, en doorgaan van regels is twee tabs.
- Regels langer dan 80 karakters zijn lelijk maar niet verboden. Dus, wees niet bang om statements en expressies over meerdere regels te verdelen.
- Na een blok (functiedefinities,
if
,foreach
etc.) komt precies één witregel. - Openingshaakjes van blokken zijn verplicht en komen op de regel eronder. (Dus
→ if (...)\n→ {\n→ → ...
)
Hoofdletters
- Klassen zijn UpperCamelCase en functies, variabelen enzo zijn lowerCamelCase.
- Heb je een afkorting zoals CSV, dan doen we CamelCase nog steeds met hoofdletters:
CSVPagina
, nietCsvPagina
. - PHP-constanten als
true
,false
ennull
zijn zonder hoofdletters.
Naamgeving
- Code is Nederlandstalig, dus gebruik Nederlandse woorden. Ga hierin ook weer niet te ver:
BlaView::tabel()
ipvBlaView::table()
maarBlaView
ipvBlaBlik
.
Overig syntaxgeneuzel
- Doxygen-commando's zijn met @:
@brief
,@param
bla,@returns
, enz.
Control flow
- De
HTMLPage
maak je aan in de controller, de view returntHTMLObject
en die je erin kan stoppen. - Als je wilt je checken of iets
NULL
is, gebruik dan altijdis_null()
. - Gebruik Responses ipv stateful functies.
- Gebruik
new $blaPage()
ipvPage::getInstance('$bla')
- PHP-code die vanuit Benamite wordt aangeroepen, hoort op zijn minst in een functie, zo niet in een methode van een Controller-klasse.
- Heb je toch top-level PHP-code die wordt aangeroepen vanuit Benamite, doe dan geen exit/die, maar gewoon return.
Vul je andere favoriete pet peeves hier in!
Als je met (bestaande) code bezig bent die zich niet helemaal houdt aan deze stijl, fix dat dan (minstens in de methode waar het om gaat).