Как стать автором
Обновить

Некоторые инженерные практики для улучшения качества web application на PHP

Время на прочтение2 мин
Количество просмотров4.5K
Этот топик мой ответ на жалобу одного человека, что «баги достали».

Для начала, никакая методология положения не спасет. Начинать нужно с инженерных практик – внедрив их и почувствовав уверенность в своем коде можно внедрять любую методологию.

Первые задачи могут быть такие:
  • Обеспечить интеграционное тестирование, чтобы каждое обновление на production не было головной болью.
  • Обеспечить регрессионное тестирование – чтобы выявленные ошибки не возникали опять (отслеживались автоматически).


На мой взгляд, напрашивается внедрение Continuous Integration. Я не знаю, как ты сейчас собираешь проекты, но это делается не IDE, а с помощью тулов вроде Ant. Тот же Ant запускает автоматические тесты. Да, тесты начать писать это не очень просто, но ведь не нужно сразу все охватывать – внедрение CI точно не сделает в ваших проектах дополнительных багов.

1. Самая лучшая статья про CI – это Мартина Фаулера: www.martinfowler.com/articles/continuousIntegration.html#EveryCommitShouldBuildTheMainlineOnAnIntegrationMachine

2. Дальше – презентация «A Quick Start to Continuous Integration» — правда на примере phpUnderControl: sebastian-bergmann.de/archives/818-A-Quick-Start-to-Continuous-Integration.html

3. Презентация о тестах PHPUnit и Selenium «Quality Assurance in PHP Projects»:
sebastian-bergmann.de/archives/817-Quality-Assurance-in-PHP-Projects.html

Вот конкретные инструменты – вроде эти нормальные, но сам смотри:
1. xinc code.google.com/p/xinc — CI для PHP
2. Phing – типа Ant для PHP
3. PHPUnit — www.phpunit.de
4. Selenium — en.wikipedia.org/wiki/Selenium_(software) – тестирование интерфейсов, интегрируется с PHPUnit
5. SVN

Ты говорил, что не представляешь как писать тесты – даже на самом сайте PHPUnit куча отличных статей: www.phpunit.de/wiki/ArticlesAndPresentations.
А вообще хороший обзор Testing & QA на сайте фирмы МкКоннела:
construx.com/Page.aspx?nid=208

В общем, я написал этот документ не потому, что не верю, что ты можешь найти тулы в инете Просто хочу поддержать тебя, показать, что ничего катастрофического нет в твоей ситуации и несложно начать внедрять грамотную инженерию.

Просто возьми это на вооружение и попробуй для начала на каком-нибудь тестовом коде, поюзай процесс CI, а потом внедряй в проекты (лучше всего в один какой-то). Но вообще практика всех этих билдов и т.п. очень полезна, хотя бы потому, что потом проще применять любую методологию – ведь инструменты уже работают.

Я говорю о CI, т.к. считаю эту практику самой первой для внедрения. Всякие там метрики кода, проверка качества кода и т.п. только потом будут полезны (если вообще будут нужны). Ну а тесты писать нужно учиться (никто ведь не заставляет сразу в проект пихать) – материала в инете достаточно, в т.ч. для PHP.

Удачи! Если будут какие-то идеи можно обсудить.
Теги:
Хабы:
+39
Комментарии57

Публикации

Изменить настройки темы

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн