Сборка php-проекта с Selenium и Jenkins

В этой статье я теперь попытаюсь описать как собирать php-проект вместе и как проводить deployment так, что-бы разработчики видели прогресс и состояние здоровья проекта с помощью инструментов статического анализа кода, что-бы были видны результаты запуска unit- и selenium- тестов с результатом покрытия, что-бы проверялся принятый стиль кода. В качестве груши для битья я возьму Drupal 7.8 для анализа.

О стандартизации откровенного содержания

Поскольку я профессионально развиваю свой блог, то естественно меня начинают интересовать всевозможные детали с форматированием содержания Проблема откровенности «Откровенное» содержание (explicit content) отличается тем, что сильно влияет на психику читателя, меняя если не мировоззрение, то субъективное отношение к теме.

Интеграционное тестирование почтовых зависимостей c Postfix

Я фанатею тестированием, в последнее время — интеграционным. И всегда хочется покрыть различные области приложения — сначала простые функции юнит тестами.. потом контроллеры моками, потом API интеграционными, наконец UI системными.. но почта для меня всегда оставалась недоступным горизонтом — а ведь хочется автоматизировать и то что почта приходит правильная.. и […]

Моки в юнит-тестах

Моки это такие классы-заглушки (и соответсвенно объекты), которые позволяют избавиться от внешних зависимостей при модульном (unit) тестировании — ибо тестирование с зависимостями уже интеграционное или системное и требует больших ресурсов, состояния данных и как следствие — большей сложности. С моками же можно тестировать контроллеры, где код с большей ответсвенностью, который вызывает тяжёлые […]

Статический и динамический анализ php-кода

Автоматический анализ кода (static code analysis) очень полезен на больших проектах и он часто встраивается в серверы непрерывной интеграции. Некоторые IDE уже поставляются с простыми аналитическими инструментами, но первые всё-таки предпочтительней, потому что туда смотрит вся комманда. Всё что этот софт делает это периодически смотрит в систему версионирования (SVN) и строит график […]

Случайные сети

Случайный граф Эрдоша и Ренуи (P. Erdős, A. Renyi) начинается с фиксированного числа вершин и 0 связей между ними. Далее, выбираются случайные две вершины и между ними создаётся ненаправленная связь. Производные характеристики: p — вероятность что между вершинами есть связь. Для расчёта вероятности что заданная вершина a будет иметь степень k, можно […]

Системное тестирование с Selenium и PHPStorm

Все в округе говорят про юнит-тестирование и TDD, но основательно менять парадигму мышления и мегабайты строк кода нехватает воли, денег и времени? Временное решение — системное black-box тестирование с Selenium Server (RC). Это значит что мы тестируем не каждый класс изнутри как то делает unit-тест (т.н. whitebox-тестирование), а только UI который […]

Управление pivotaltracker задачами в PHPStorm

Продолжаем изучать среду разработки PHPStorm. На этот раз поговорим о задачах. В общем идея в том, что при разработке проекта управляющие в вашейкомпании где-то создают список того что надо сделать или исправить — это всякие инструменты типа Jira, Mantis, Redmine.. Каждая со своими особенностями в том какзадачи описываются и дальше текут в компании.

Узоры в масштабируемых системах

Это вольный перевод и дополнения статьи Ricky Ho на англицком об алгоритмах используемых в масштабировании систем и распределённом вычислении. Обратите внимание что эти модели применимы не только в программировании, но и в управлении. Балансировщик нагрузки В этой простейшей модели центральный узел (балансировщик) определяет которая машина будет обрабатывать запрос в зависимости от показателей […]