Automated Code Review

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Pascal081
  • Registratie: December 2013
  • Laatst online: 27-11-2024
Beste Tweakers,

Dit topic heb ik aangemaakt om jullie advies te vragen met betrekking tot het volgende:

Als PHP-programmeur werk ik dagelijk met een redelijk omvangrijke codebase. Deze codebase is door de jaren heen opgebouwd door tientallen developers. Helaas zijn sommige delen van de codebase erg slecht georganiseerd en geschreven. Deze slechte code is zich steeds verder aan het uitbreiden en moet nodig opgeschoond worden.

Het gaat inmiddels om zo'n 200 á 300 bestanden variërend van 20 tot 6000 (!) regels per bestand. Het plan is nu om een begin te maken aan het verbeteren van dit deel. Het leek mij een goed idee om gebruik te maken van automated code review (bv. CodeClimate) om eens een eerste indruk te krijgen welke bestanden de meeste aandacht vereisen. Helaas is de code te omvangrijk om dit met de CLI versie van CodeClimate te analyseren.

Op onze server hebben we GitLab geinstalleerd om commits e.d inzichtelijk te maken. Nu is het zo dat de meeste tools zoals CodeClimate alleen maar werken icm GitHub (Enterprise). Ik heb welgeteld één tooltje kunnen vinden dat werkt icm GitLab: https://github.com/mmozuras/pronto. Overstappen op GitHub is natuurlijk een optie, maar dan moet er flink betaald worden voor een privé omgeving, in tegenstelling tot GitLab, wat gratis is als je het zelf host.

Eigenlijk ben ik op zoek naar een combinatie van code versioning met automated code review, zonder dat het al te veel geld gaat kosten. Graag zou ik van jullie horen hoe jullie dit zouden oplossen. Alle ideeën zijn welkom.

Groeten,
Pascal

Acties:
  • 0 Henk 'm!

  • Mint
  • Registratie: Mei 2005
  • Laatst online: 12-10 21:56
Ik gebruik SonarQube, daar zou je eens naar kunnen kijken. :)

Acties:
  • 0 Henk 'm!

  • Pascal081
  • Registratie: December 2013
  • Laatst online: 27-11-2024
Mint schreef op donderdag 07 januari 2016 @ 11:28:
Ik gebruik SonarQube, daar zou je eens naar kunnen kijken. :)
Een eerste blik op de website geeft mij het idee dat dit wel ongeveer is wat ik zocht. Dit kan ik volgens mij gewoon installeren op de server naast GitLab.

Gebruik jij het ook om PHP/JS te analyseren? Gebruik je het vaak?

EDIT: Nog een vraag: gebruik je dit icm een build server zoals Jenkins?

[ Voor 7% gewijzigd door Pascal081 op 07-01-2016 11:41 ]


Acties:
  • 0 Henk 'm!

  • TJVB
  • Registratie: Januari 2008
  • Laatst online: 06-10 14:09
Ik weet niet wat je precies wilt testen, wij gebruiken zelf PHPCI ( https://github.com/Block8/PHPCI/ ) met o.a. de plugins voor phpmd, Code sniffer, docblock checker en lint. Vooral phpmd laat al zien waar code niet netjes gebouwd is.

Acties:
  • 0 Henk 'm!

  • Mint
  • Registratie: Mei 2005
  • Laatst online: 12-10 21:56
Pascal081 schreef op donderdag 07 januari 2016 @ 11:39:
[...]


Een eerste blik op de website geeft mij het idee dat dit wel ongeveer is wat ik zocht. Dit kan ik volgens mij gewoon installeren op de server naast GitLab.

Gebruik jij het ook om PHP/JS te analyseren? Gebruik je het vaak?

EDIT: Nog een vraag: gebruik je dit icm een build server zoals Jenkins?
Ik gebruik het niet met PHP/JS, maar met Java. Ik zag in ieder geval wel een PHP plugin staan.

In Jenkins is een aparte build job geconfigureerd na de job van de code zelf, welke SonarQube aftrapt met een Maven goal. Hoe zoiets voor PHP werkt (of kan werken) weet ik niet, daar zou je even mee moeten spelen.

De SonarQube job wordt elke nacht gedraaid (of handmatig, als dat nodig is). Hoe vaak SonarQube vervolgens gebruikt wordt om de kwaliteit van de code te verbeteren hangt af van hoeveel tijd er beschikbaar is, maar er wordt wel geprobeerd om in ieder geval de critical/major issues op te lossen.

[ Voor 16% gewijzigd door Mint op 07-01-2016 12:35 ]


Acties:
  • 0 Henk 'm!

  • Pascal081
  • Registratie: December 2013
  • Laatst online: 27-11-2024
TJVB schreef op donderdag 07 januari 2016 @ 11:44:
Ik weet niet wat je precies wilt testen, wij gebruiken zelf PHPCI ( https://github.com/Block8/PHPCI/ ) met o.a. de plugins voor phpmd, Code sniffer, docblock checker en lint. Vooral phpmd laat al zien waar code niet netjes gebouwd is.
Laat je dit draaien op een aparte server? Ik heb namelijk geprobeerd om alleen phpmd met CodeClimate CLI via Docker te draaien, maar na 4 dagen heb ik het proces maar afgebroken omdat het nog steeds bezig was.

Acties:
  • 0 Henk 'm!

  • Pascal081
  • Registratie: December 2013
  • Laatst online: 27-11-2024
Mint schreef op donderdag 07 januari 2016 @ 12:33:
[...]


Ik gebruik het niet met PHP/JS, maar met Java. Ik zag in ieder geval wel een PHP plugin staan.

In Jenkins is een aparte build job geconfigureerd na de job van de code zelf, welke SonarQube aftrapt met een Maven goal. Hoe zoiets voor PHP werkt (of kan werken) weet ik niet, daar zou je even mee moeten spelen.

De SonarQube job wordt elke nacht gedraaid (of handmatig, als dat nodig is). Hoe vaak SonarQube vervolgens gebruikt wordt om de kwaliteit van de code te verbeteren hangt af van hoeveel tijd er beschikbaar is, maar er wordt wel geprobeerd om in ieder geval de critical/major issues op te lossen.
Dat is ook wat ik voor ogen had.

Hoe lang duurt zo'n job ongeveer bij jou? Wat zijn de specs van de host waar deze job op draait en hoe groot is je codebase? Ik zou graag willen weten wat ik kan verwachten en wat ik nodig heb. Een dedicated server lijkt me in ieder geval wel handig, toch?

[ Voor 3% gewijzigd door Pascal081 op 07-01-2016 14:13 ]


Acties:
  • 0 Henk 'm!

  • Mint
  • Registratie: Mei 2005
  • Laatst online: 12-10 21:56
Pascal081 schreef op donderdag 07 januari 2016 @ 14:13:
[...]


Dat is ook wat ik voor ogen had.

Hoe lang duurt zo'n job ongeveer bij jou? Wat zijn de specs van de host waar deze job op draait en hoe groot is je codebase? Ik zou graag willen weten wat ik kan verwachten en wat ik nodig heb. Een dedicated server lijkt me in ieder geval wel handig, toch?
Specs van de server ken ik niet, dus qua requirements kan ik je niet helpen. Verder denk ik niet dat een Java codebase vergelijkbaar is met een PHP codebase, dus ik denk ook niet dat je veel aan die informatie zou hebben.

Ik denk dat je gewoon een testserver op moet zetten, je code door SonarQube laten halen door Jenkins en kijken wat voor jou acceptabel is. Kijk ook naar de hardware requirements van SonarQube.

Acties:
  • 0 Henk 'm!

  • TJVB
  • Registratie: Januari 2008
  • Laatst online: 06-10 14:09
Pascal081 schreef op donderdag 07 januari 2016 @ 14:09:
[...]


Laat je dit draaien op een aparte server? Ik heb namelijk geprobeerd om alleen phpmd met CodeClimate CLI via Docker te draaien, maar na 4 dagen heb ik het proces maar afgebroken omdat het nog steeds bezig was.
Ja, wij hebben phpci op een aparte server draaien (niet echt krachtig, het is een oude desktop die over was en zo een tweede leven heeft gekregen.)

Je kunt phpmd ook lokaal draaien met het phar bestand (zie http://phpmd.org/download/index.html en http://phpmd.org/documentation/index.html )
Pagina: 1