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

Perl Medic: Transforming Legacy Code

Perl Medic: Transforming Legacy Code // 2004
Peter J. Scott

Не секрет, что львиную долю своего времени программисты тратят на поддержку и доработку уже существующего кода. В самом простом случае - это собственный код, написанный некоторое время назад. Поддерживать такой код даже приятно. Если код был написан другими людьми, то разобраться в нём - задачка посложнее. Для большей правдоподобности, предположим, что первоначальный автор программы давно уволился и сейчас недоступен. Ах, да, ещё выяснилось, что для программы которую вам нужно будет поддерживать и изменять нет ни тестов ни документации, плюс ко всему, development-окружения в котором была бы продублирована система попросту нет - рабочая система существует лишь в production-среде и то в единственном экземпляре. Правда весело? Вот вкратце мизансцена которую приводит автор книги. Конечно, не всегда всё так плохо, но лучше быть готовым к худшему сценарию.

Итак, эта книга о том, как сделать чужой Perl-проект своим и постепенно привести его в божеский вид. В целом, книга довольно интересная и построена вокруг реальных жизненных ситуаций, однако многое из того, что в 2004-м году было новаторством, сейчас либо перешло в категорию прописных истин (к примеру, возьмите use strict за правило) либо стало банальным фактом (тесты, тесты и ещё раз тесты), описанным во множестве других книг. Тем не менее, даже сейчас из этой книги всё ещё можно почерпнуть что-то новое и полезное.

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

пятница, 26 марта 2010 г.

CDArgs - перемещение по файловой системе со скоростью света

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

Для настройки CDArgs необходимо выполнить следующую процедуру:
  • Установить соответствующий пакет
  • Добавить в .bashrc трехстрочную функцию cv (её исходный текст есть cdargs(1))
  • Включить (source) в .bashrc содержимое файла cdargs-bash.sh с дополнительными функциями и автодополнением (полный путь к файлу в вашей системе опять-же смотрите в cdargs(1))
Из дополнительных удобств, определяемых в cdargs-bash.sh, следует отметить функцию mark [bookmark_name], которая добавляет текущую директорию в список закладок, а также обёртки для команд cp и mv, которые принимают имена закладок вместо имен директорий. Тем кто вместо Bash использует другой shell, расстраиваться не стоит - в cdargs(1) описаны настройки и для других оболочек.

В заключение, небольшой консольный screen-cast использования CDArgs, записанный при помощи ttyrec: cdargs-demo.txt. Для воспроизведения запустите:
ttyplay cdargs-demo.txt

вторник, 2 марта 2010 г.

Programming Web Services with Perl

Programming Web Services with Perl
Pavel Kulchenko, Randy J. Ray

Как ни печально, но это чуть ли ни единственная книга по программированию веб-сервисов на Perl. Печально прежде всего от того, что книга была издана аж в 2002 году. Понятно, что за 8 лет в такой популярной и динамично развивающейся области как веб-сервисы очень многое успело измениться.

Перспективы Perl-модуля SOAP::Lite, вокруг которого главным образом и построена книга, также не внушают оптимизма. Вот что по этому поводу говорит текущий мэйнтейнер SOAP::Lite:
Therefore SOAP::Lite needs a re-write. SOAP::Lite needs to live up the "Lite" part of its name. SOAP::Lite should be built from the ground up to conform to the WS-i's requirements. It should be built first and foremost around a wicked WSDL parser and engine. It should be made more modular so that its components can be more easily swapped out for newer and better implementations without disrupting users and developers. It should take advantage of the number of perl modules that have evolved since SOAP::Lite was conceived to reduce code complexity and obscurity.

С поддержкой протокола XML-RPC, который также охватывается данной книгой, дела обстоят намного лучше. В Perl существует несколько реализаций и по крайней мере одна из них активно поддерживается и развивается.

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

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

Балдеющие от адреналина и зомбированные шаблонами

Балдеющие от адреналина и зомбированные шаблонами
Демарко, Листер, Хрущка, Макменамин, Робертсон, Робертсон

В этой книге авторы бестселлера Peopleware ярко и иронично рассказывают о том как вовремя осознать, что проект по разработке ПО движется в пропасть и он неминуемо потерпит крах если не предпринять срочных мер. Самое парадоксальное то, что большинство участников проекта и так прекрасно понимают когда дело идёт под откос, но по разным причинам предпочитают либо отмолчаться, либо создать видимость работы, либо приукрасить положение дел пока это ещё возможно. Так зачем же книга если всем и так всё понятно? Дело в том, что очевидные вещи доказывать сложнее всего, кроме того, есть целый ряд психологических и организационных барьеров, которые мешают трезво оценить ситуацию, признаться в том, что проблема действительно существует и найти пути выхода.

Для того чтобы помочь команде преодолеть эти барьеры, авторы собрали 86 характерных паттернов поведения людей, которые, как правило, сигнализируют о грядущих или об уже накопившихся проблемах в проекте. Наиболее ходовым паттернам авторы придумали хлёсткие имена, как то "Дохлая рыба" или "Проектные потаскушки". Впредь столкнувшись на практике с ситуацией описанной в этой книге, вы можете не просто заявить коллегам или руководству, "да я одним местом чувствую, что здесь что-то не так!", но и подкрепить свои опасения ссылкой на соответствующую главу в книге.

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