Цель проекта: сделать качественный перевод на русский язык отличной книги для начинающих и опытных программистов по современному подходу программирования на мощном языке Perl 5. Книга собрала в себе огромный опыт (более 17 лет Perl5!) сообщества программистов, о том как правильно и успешно программировать на Perl 5, как создавать поддерживаемый, масштабируемый, выразительный и эффективный код.
Архив за год: 2012
Маркетинг и мысли о прекрасном будущем
Я просто оставлю этот здесь…
Мысли про null…
Послушал сегодня очередной «радиот» — довольно такой интересный выпуск получился. Громко кричали и шумели со словами «PHP — говно!», но к этому можно уже привыкнуть и пропускать мимо ушей. Если инструмент меня кормит — пусть он будет хоть трижды говном. Был там еще очень любопытный момент. Всем известный Бобук рассказывал про такой тип данных как null в Smalltalk. Хочу заметить, что в этом самом смалтолке реализован этот null довольно интересно. Передам как я это понял. Null в смалталке это такой объект, у которого можно вызвать любой метод и этот метод вернет….правильно null! Гениально! Сразу же отпадает необходимость проверки на возвращаемый тип и сразу же пропадают пхп-шные ошибки типа «null is not object…». Удобно же!
Мысли про проверки, зависимости, фреймворки, php и perl …
Продолжаю выкладывать свои мысли и соображения о php и perl (первая серия вот тут). Сегодня хотелось бы поговорить про проверку зависимостей («чекеры»так называемые). Написать эту заметку меня заставил чекер зависимостей Symfony2. Возьмем, к примеру, пхпшный Yii (или Symfony2) в дистрибутивах всех этих фреймворков есть специальная страничка/скриптик, который проверяет наличие всех необходимых расширений и системное окружение, в которое фреймворк установлен. Почему таких страничек нет в перловых фреймворках Mojolicious, Catalyst и т.д. ? На мой взгляд, все эти, так называемые, зависимости должны проверяться и валидироваться при установке фреймворка/библиотеки. Беда в том, что в мире php установка, в большинстве случаев, сводится к простому копированию файлов на сервер (ну нету пока у php центрального хранилища модулей и библиотек). Как-то же необходимо узнать «правильно» ли мы все скопировали, все ли у нас теперь заработает ? Вот для этого такие странички «чекеры» и необходимы. При таком подходе к установке очень часто возникают ситуации, когда все кажется сделано: фреймворк залит, приложение залито, запускаем….ничего не работает, смотрим наш «чекер» и видим, что не хватает какого-то PDO расширения или драйвера для memcache. Отсутствующие библиотеки — это еще пол беды. Самое интересное когда работа фреймворка зависит от конфигурации php (всем известен php.ini c его сотнями параметров ? ). Т.е. имея установленный php, имея установленные все необходимые модули, наше приложение может не заработать из-за конфигурации языка программирования (!). Вот и чекер Symfony2 выдал мне варнинги (хорошо хоть не фатальные) с просьбой подкорректировать настроечки в php.ini. Наличие у языка программирования централизованного файла настроек, на мой взгляд, очень сомнительная штуковина, добавляющая лишние проблемы при распространении приложения (вот маленький пример, возникший при разработке Юпи! https://github.com/yupe/yupe/issues/203 ). А что же Perl ? А тут все просто: ставим пакеты из CPAN, при установке автоматом проверяются и ставятся все зависимости, если что-то пошло не так — установка просто закончится неудачей и нам не придется гадать «а заработает ли?». Конечно, и тут бывают проблемы, но значительно реже. У перла нет никакого конфигурационного файла, что решает еще одну проблему с установкой. Есть конечно опции компиляции, которые могут отличаться от сервера к серверу, но это настолько редко было в мой практике, что я не беру это в расчет. И снова забыл про тестирование. При установке Mojolicious (как пример) прогоняются все тесты, которые только есть в дистрибутиве фреймворка и зависимостях. Автоматическая проверка зависимостей, их установка и прогон тестов практически всегда гарантируют работоспособность расширения на данной конкретной машине. Мысли кончились…
В заключении поделюсь ссылкой на статью Фабьена (разработчика Symfony) http://fabien.potencier.org/article/64/php-is-much-better-than-you-think
Презентация Catalyst – MVC framework на Perl
В очередной раз пишу про «мертвый» язык, про его инструменты и инфраструктуру =)
На этот раз просто ссылка http://protey.ru/data/rit2008/catalyt.pdf