понедельник, 14 марта 2011 г.

Perl::Critic + Subversion = внедрение единых практик кодирования в команде

Язык Perl хорошо известен той степенью свободы (a.k.a. TIMTOWTDI), которую он даёт программисту в выборе способа решения той или иной задачи. У этой медали, к сожалению, есть и оборотная сторона, которая может проявиться при командной разработке крупных проектов. Если в команде нет единых практик кодирования и каждый из разработчиков придерживается принципа TIMTOWTDI, то новичку в таком коллективе не позавидуешь.

В 2005 году активный участник Perl-сообщества Дамиан Конвей (Damian Conway) опубликовал книгу Perl Best Practices, в которой собрал и структурировал 256 рекомендаций по написанию понятного, надёжного и поддерживаемого Perl-кода. Краткую шпаргалку с выжимкой из книги можно скачать отсюда.

Годом позже, Jeffrey Thalhammer и группа товарищей выпустила Perl::Critic — гибкий и расширяемый фреймворк, позволяющий автоматизировать проверку Perl-кода на предмет его соответствия большей части рекомендаций из книги Конвея, а также многих других полезных практик.

Perl::Critic подаётся под разными соусами: во-первых, в комплекте с модулем поставляется одноимённая утилита — perlcritic, во-вторых, проверку кода можно оформить в виде тестов с помощью Test::Perl::Critic либоTest::Perl::Critic::Progressive, в-третьих, критик легко интегрируется в VIM и Emacs.

В этом рецепте я расскажу о том как проверять Perl-код на лету при коммите в Subversion-репозиторий. Bon Appétit!

Читать дальше на habrahabr.ru →

вторник, 1 марта 2011 г.

Pulling Strings with Puppet: Configuration Management Made Easy

Pulling Strings with Puppet: Configuration Management Made Easy // 2008
James Turnbull

Puppet - набирающая популярность система централизованного конфигурирования серверов или иначе говоря, continious datacenter automation tool. Конфигурация описывается на специализированном декларативном языке (который в свою очередь базируется на Ruby) и размещается на Puppet-сервере. Клиенты (Puppet-агенты) периодически опрашивают сервер и загружают настройки, если они обновились. Скачав свою конфигурацию, клиентская машина пытается её применить. Важно отметить, что в случае если фактическая конфигурация клиентской машины по каким-то причинам разойдётся с эталонной, то клиентская машина сама попытается её откорректировать без обращения к серверу.

Puppet (марионетка англ.) умеет устанавливать пакеты, запускать/останавливать/мониторить сервисы, загружать конфигурационные файлы (в т.ч. с использованием шаблонов ERB), создавать пользователей и группы и т.д.

Нельзя не отметить, что Puppet ещё достаточно молодой продукт. В связи с этим, книги по данной тематике очень быстро устаревают. Так версия Puppet, описываемая в данной книге 0.22.4 (2007 год) довольно сильно отличается от текущего состояния 2.6.5 (2011 год). Тем не менее, книга будет полезна тем, кто ищет решение для задачи централизованного конфигурирования серверов.

Ещё один отзыв

Оценка по шкале ИМХО: 4