Difference between revisions of "Codestijl"

From A-Eskwiki
Jump to: navigation, search
 
(10 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.
 +
* 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: CSVPagina, niet CsvPagina.
+
* Heb je een afkorting zoals CSV, dan doen we CamelCase nog steeds met hoofdletters: <code>CSVPagina</code>, niet <code>CsvPagina</code>.
* Doxygen-commando's zijn met @: @brief, @param bla, @returns, enz.
+
* PHP-constanten als <code>true</code>, <code>false</code> en <code>null</code> zijn zonder hoofdletters.
* De HTMLPage maak je aan in de controller, de view returnt HTMLObjecten die je erin kan stoppen.
+
 
 +
== 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>.
 +
 
 +
== Overig syntaxgeneuzel ==
 +
* 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.
 +
* Als je wilt je checken of iets <code>NULL</code> is, gebruik dan altijd <code>is_null()</code>.
 +
* Gebruik [[Responses]] ipv stateful functies.
 +
* 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 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.

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).