Sluit Logo DX Solutions

Code complexity. Spreken we wel dezelfde taal?

22 september 2016 - Jelle
De code achter een webapplicatie

De term ‘code complexity’ doet als niet-programmeur waarschijnlijk geen belletje rinkelen. Nochtans is het voor ons developers een term waar we toch wel aandacht moeten aan besteden. Niemand leest graag een boek met vijftien verschillende lettertypes en tien verschillende kleuren. Right?

 

Zo is het ook voor programmeurs. Het gros van de programmeurs houdt er vaak zijn eigen ‘code stijl’ op na. Wanneer je als enige programmeur aan een project werkt, dan maakt dit niet zoveel uit. Maar wanneer je als programmeur in teamverband gaat werken, of gaat bijdragen aan opensourceprojecten, dan wordt het wel interessant om zoveel mogelijk te proberen dezelfde stijl en opmaak te gaan gebruiken. Hierdoor zal de code ook vaak minder complex worden en gemakkelijker te begrijpen zijn wanneer je als programmeur op een nieuw project terechtkomt.

 

PSR-standaarden

 

Een eerste interessante set van afspraken zijn de PSR-standaarden (voluit: PHP Standard Recommendations). Deze bestaan uit een aantal regels die je als programmeur kan volgen op vlak van code style. Dit gaat onder meer over de plaats van accolades en wanneer we die moeten gebruiken, waar je spaties moet plaatsen, volgorde van keywords, naamgeving van de variabelen enzoverder.

 

De meest courante standaarden hiervoor zijn hier PSR-1 en PSR-2.
Via deze link lees je meer over deze PSR-1 en PSR-2 standaarden.

 

Analysetechnieken

Naast de richtlijnen voor goede code, zijn er ook andere technieken om de door ons geschreven code te gaan analyseren:

  • unit or integration testing
  • manual code review
  • static analysis

 

Unit or integration testing

Hierbij gaan we onze code onderwerpen aan een aantal testscenario’s. Een goed voorbeeld hiervan is PHPUnit, waarbij we zelf handmatig onze applicatie gaan testen op een aantal zaken om zeker te zijn dat deze geen fouten zal bevatten.

 

Manual code review

Hierbij wordt alle code stap voor stap bekeken door iemand met voldoende kennis van zaken. Bij DX-Solutions doen wij dit onder de vorm van pull requests, waarbij we elkaars code beoordelen. Zo leert iedereen van elkaar!

 

Static analysis

Static analysis zijn geautomatiseerde testen die we gaan uitvoeren op onze code. Hiermee kunnen wij bijvoorbeeld syntax errors gaan detecteren, overtredingen op code conventions (zie PHPCodeSniffer) of tal van andere zaken zoals bugs, suboptimale code, te gecompliceerde expressies of ongebruikte parameters, methodes of properties.

Voor deze laatste zijn bijvoorbeeld PHP Mess Detector beschikbaar of voor wie nog een stap verder wil gaan is er ook GrumPHP; dit zorgt ervoor dat we onze code niet kunnen committen naar de repository zonder geslaagd te zijn voor de ingebouwde tests!

 

Conclusie

De hierboven opgelijste tips kunnen erg handig zijn bij het ontwikkelen van kwalitatieve code. Deze opsomming is natuurlijk niet limitatief, er zijn nog tal van zaken die we niet vernoemden en die zeker ook interessant kunnen zijn voor elke programmeur. Heb je zelf ook tips? Deel ze gerust in de comments!