понедельник, 10 августа 2015 г.

Docker для PHP Разработчка. Часть 1 - Теоретическая.

Навеяно этим Docker for PHP Developers и Run a Symfony application using Docker and docker-compose. 

Первое, что приходит на ум, если говорить о виртуализации локальных окружений - Vagrant. Vagrant - это, согласно официальной документации, утилита, для создания и конфгурирования легковесных, легко воспроизводимых и портативных дев окружений. В основном Vagrant поможет вам создать витруальную машину с уникальной комбинацией ПО, сконигурированного индивидуально для каждого проекта. Этот подход предлагает решить 3 вещи:
  1. Vagrant изолирует окружение для избежания конфликтов версий ПО.
  2. Vagrant сохраняет конфигурации и версии одинаковые для каждого члена команды.
  3. Vagrant можно настроить максимально похожим к продакшен окружению.
Но, у Vagrant есть большой недостаток - он эмулирует аппаратную часть.

среда, 10 сентября 2014 г.

Сентябрьский'14 must read

The Good, the Bad and the Ugly code - Хороший код или плохой? Лично для меня хороший код обладает следующими качествами:

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

воскресенье, 24 августа 2014 г.

Августовский'14 must read

Specification By Example - развернутое объяснение BDD. В статье описаны ключевые элементы наиболее эффективного, на мой взгляд, процесса разработки коммерческого ПО в современных условиях. Два продолжения будут посвящены работе со SpecFlow и автоматизации приемочного тестирования.

Design & Process Models - видео где автор исследует процесс разработки.
Сегодня мы решаем все более сложные задачи в рамках разработки, и зачастую технические и процессные решения принимаются неверно, что приводит к неминуемой расплате. Мы часто не можем принять решения, посмотрите вокруг - сплошные вопросы "Scrum или Kanban? Как поставить процесс, чтобы не было технического долга? Как научить архитекторов вырабатывать обоснованные и правильные решения? Какие использовать процессные и инженерные практики?"
Ден Пинк - Об удивительной науке мотивации - видео, где аналитик карьерного роста Дэн Пинк исследует тайны мотивации, начиная с факта, известного учёным, но не менеджерам: Традиционная идея вознаграждения не столь эффективна, как нам кажется.

пятница, 22 августа 2014 г.

Подключение к БД MySQL по локальной сети

По-умолчанию к mysql серверу можно подключить только с локального хоста. Поэтому, первое, что нужно сделать - сказать mysql слушать всю сеть (для безопаностилучше укаать не всю сеть, а только локальную), для этого изменим параметр bind-address на 0.0.0.0 в /etc/mysql/my.cnf
# nano /etc/mysql/my.cnf
...
bind-addres = 0.0.0.0
...

# sudo service mysql restart
После этого нужно создать пользователя, который может подключаться по сети к какой-то базе:
mysql> CREATE USER 'dbuser'@'%' IDENTIFIED BY 'YOUR_PASS'";
mysql> GRANT ALL PRIVILEGES ON `YOUR_DB` . * TO 'dbuser'@'%';
mysql> FLUSH PRIVILEGES;

воскресенье, 22 июня 2014 г.

Способы тестирования унаследованного кода

  1. Отличный доклад: Модульное тестирование "нетестируемого" кода.

  2. Что делать, если хочется занятся рефакторингом части проекта, унаследованной от предыдущей команды? Покрыть эту часть тестами и спокойно переделывать все, что не нравится. Но как написать тесты, если о тестируемости кода до вас никто не заботился?
    В докладе описывается набор техник, которые помогут покрыть unit-тестами сложные части системы. Написанные тесты будут просты для понимания и легки в поддержке. Описанные техники реализованы в виде open-source библиотеки, доступной всем желающим.
    Слайды презентации Тестирование унаследованного кода в php Александра Голубева.