ustimenko (ustimenko) wrote,
ustimenko
ustimenko

Category:

Code review на коленке


Ревью кода -- очень полезная штука и делать его можно разными способами [1]. Однако лучше его делать с помощью инструментов. Минус их только в том, что это отдельные, новые инструменты, которые в случае платных (напр. CodeCollaborator) стоят денег, а в случае бесплатных -- неудобны и долги в настройке. Недавно меня посетила идея, как сделать это же самое без отдельных инструментов, а тем, что у нас у всех есть под рукой (не ручка и бумага!).
Методология подходит больше для распределенных систем управления версиями: mercurial, git, bazaar. Общая идея -- фичи (баги, таски) разрабатываются в отдельных ветках, а-ля gitflow [2], а потом публикуются на некий сервер -- можно даже центральный. Когда у нас в gitolite`е права настроены, что можно все, кроме develop`а и master`а, тогда не страшно. Комменты, которые пишет тот, кто код просматривает, пишутся  в стиле TODO, только со своим тегом. Например "BLA":
$ourcoolcode = 123;
// BLA Что это тут у нас такое?
echo $ourcoolcode;
Любая современная IDE`шка умеет экстрактить TODO`шки, а затем и фильтровать их. Это точно умеет eclipse и netbeans -- phpstorm и прочие платные обязаны просто.
В итоге можно меняться комментами в ветке, пока всё не станет ясно и они не кончатся. По окончании процесса, когда код станет лучше, ветку можно смело stash`ить и merge`ить в основную (develop).
Плюсы:
  • используются абсолютно родные инструменты
  • всё изначально разделено
  • все проблемы видны сразу и IDE`шки в этом нам помогают
Минусы:
  • наколеночность
ps: М.б. это -- велосипед и есть что-то проще/лучше?
_________________________________________________________________________
[1] http://en.wikipedia.org/wiki/Code_review
[2] http://nvie.com/posts/a-successful-git-branching-model/

Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments