Привет, Хабрасообщество! По итогам недавней конференции ДевКонф 2012 Хочу поделиться записями из своего блокнота, которые лично мне показались наиболее интересными и полезными.
Возможно, кто-то все это хорошо знает. Поскольку доклады проходили одновременно в нескольких залах, посетить их все было невозможно, поэтому буду рад прочитать ваши дополнения в комментариях.
В первую очередь меня интересовали темы: — развертывание системы и непрерывная интеграция (Continious Integration) — PHP 5.4, PHPUnit, Yii — тестирование в javascript
Развертывание системы и непрерывная интеграция (CI)
Развертывание системы оказалось популярной темой на конференции: было представлено 3 или 4 доклада.Для себя я описал это так: устанавливается сервер непрерывной интеграции, который, например, каждую ночь собирает ваш проект из репозитория, запускает тесты, проверяет код на возможные косяки и отправляет вам отчет. Утром вы смотрите этот отчет и сразу видите, как у вас дела с проектом.
Еще одним преимуществом является возможность в любой момент показать менеджерам готовую рабочую версию проекта, а также вы имеете четкое понимание, что готово, а что нет. Как серверы непрерывной интеграции упомянул: — Дженкинс есть множество плагинов, в т.ч.
самый важный плагин - Чак Норрис) — тимсити более приятный веб-интерфейс, чем у Дженкинса — PHPundercontrol - что-то другое Как системы сборки проектов может быть использован: — bash-скрипт — капистрано Создан для Ruby, но может использоваться и для PHP. Никаких специальных знаний Ruby не требуется.
Для Symfony существует специальная версия capifony. — пинг написан на PHP, есть много готовых задач.
Сборка описана в виде xml файлов.
Среди недостатков, которые я слышал, было отсутствие возможности отката с дефолтной поставки (нужно написать самому).
Для Тестирование PHP-кода стандартное использование PHPUnit .
В кулуарах тоже говорили о Кодецепция что он больше ориентирован на тестировщиков (об этом был разговор быстрый на хабе) Сами методы тестирования удобно писать по шаблону GIVEN-WHEN-THEN (т.е.
напрямую удаляя эти блоки с комментариями):
Для Анализ PHP-кода Есть несколько хороших инструментов, которые также можно запускать автоматически при сборке или фиксации: — Ворс (проверка синтаксиса) — PHP_CodeSniffer (соответствие стандарту кодирования) — phploc (различная статистика, такая как количество комментариев и т. д.) — PHP_Depend (анализ кода, например, расчет различных коэффициентов, таких как связность классов и т. д.) — PHP_Беспорядок Детектор (поиск потенциальных ошибок в коде) — Покрытие PHP_кода (покрытие кода тестами, поставляется с PHPUnit) — Детектор копирования/вставки PHP (догадайтесь сами :)) В счет развертывание базы данных посоветовал dbDeploy .function testMethodAbc() { //given $a = new Object(); $a->x = 123; //when $a->methodAbc(); //then $this->assertTrue($a->x); }
Миграции используются, но пишутся только в одном направлении.
В том числе и потому, что не всегда в принципе можно написать обратную миграцию (например, при удалении таблицы).
Хороший совет — протестировать базу развертывания на тестовом сервере, предварительно загрузив на него копию рабочей базы, т.к.
источником ошибок могут быть сами данные.
Ну, о последовательность развертывания проекта Я нашел эту диаграмму полезной: 1. распаковываем исходники в новую папку 2. подтянуть зависимые библиотеки 3. скачать обновления базы данных 4. перенести символическую ссылку на новую версию 5. перенести символическую ссылку на пользовательские данные 6.* запустить тесты.
в случае ошибки - откат. (для тестового сервера) 7. отправлять электронные письма пользователям/менеджерам о выходе новой версии.
Что нового в PHP 5.4
как сказал сам автор PHP 5.4 = PHP6.0 - Unicode. Основные новинки: - примеси (признаки), - используйте [] для массивов - встроенный веб-сервер Также было полезно узнать, что второстепенные выпуски 5.4.5 и 5.4.6 будут выпущены в течение следующих двух месяцев.Были интересные вопросы: Вопрос 1: Юникод. когда? А1: Может быть год, может десять лет, а может быть никогда.
Нам нужна ваша поддержка! Вопрос 2. А как насчет интеграции APC в PHP? О2: Мы работаем над этим, но APC иногда работает недостаточно стабильно.
Yii/Yii2
Было интересно пообщаться с Александром Макаровым( СэмДарк ) — один из основных разработчиков фреймворка.
Основные вопросы, которые волнуют Юи2 :
— Дата выхода Yii2 пока держится в секрете
— в команде теперь три активных участника + сообщество github, куда приглашаются все желающие поддерживать и развивать проект.
— в Yii2 ActiveRecord претерпит серьезные изменения и будет разделен на саму модель и объект Query, который заменит существующий DbCriteria
— останется только два подключения: HAS_ONE и HAS_MANY. Обещают реализовать автоматическое сохранение Связанных моделей для родительского
— в интерфейсе появится twitter bootstrap
— были еще какие-то улучшения, но я их не запомнил
Тестирование в JS
Для тестирования JS существует специальный фреймворк от Yahoo: Платформа тестирования YUI .Все это работает через Selenium, т.е.
нужно установить дополнительный драйвер.
Он даже сможет рассчитать покрытие кода для кода JS. Для имитации ответов ajax от сервера было рекомендовано Синон.
js .
Он позволяет гибко настраивать разные варианты ответа.
Также рекомендуется для небольших проектов.
jsTestDriver как более легкое решение (Selenium не нужен), но и менее функциональное.
Нижняя граница
Это все, что я получил.Считаю, что конференция была очень полезной и информативной.
Если есть что добавить, пишите.
Спасибо всем спикерам, а также организаторам за вкусные торты в перерывах.
УПД: Ссылки на некоторые отчеты и фотографии: 1. Производительность PHP (Расмус Лердорф) (Спасибо СэмДарк , листайте стрелками) 2. Дмитрий Воротилин рассказывает о Звездочках (спасибо @py3u) 3. Егор Хомяков рассказал об уязвимости в OAuth (спасибо @py3u) 4. Немного фотографий и отчет о конференции (Спасибо зизоп ) Теги: #devconf #php #JavaScript #непрерывная интеграция #разработка веб-сайтов #php #JavaScript
-
Бытый Язык
19 Oct, 24 -
Честер Карлсон – Изобретатель Ксерокса
19 Oct, 24 -
Поддельное Устройство Ble На Nrf24L01
19 Oct, 24 -
Проверка Кода: Создание Врагов
19 Oct, 24 -
Сравнение Гибких Методологий
19 Oct, 24