Difference between revisions of "Codestijl"

From A-Eskwiki
Jump to: navigation, search
 
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.
Line 5: Line 7:
 
* 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>)
 
* 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>.

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.

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, niet CsvPagina.
  • PHP-constanten als true, false en null zijn zonder hoofdletters.

Naamgeving

  • Code is Nederlandstalig, dus gebruik Nederlandse woorden. Ga hierin ook weer niet te ver: BlaView::tabel() ipv BlaView::table() maar BlaView ipv BlaBlik.

Overig syntaxgeneuzel

  • Doxygen-commando's zijn met @: @brief, @param bla, @returns, enz.

Control flow

  • De HTMLPage maak je aan in de controller, de view returnt HTMLObjecten die je erin kan stoppen.
  • Als je wilt je checken of iets NULL is, gebruik dan altijd is_null().
  • Gebruik Responses ipv stateful functies.
  • Gebruik new $blaPage() ipv Page::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).