Архив рубрики: Разработки

autotest для PHP

Я последнее время немало человеко-часов провел в экспериментах с Руби и Рельсами (об этом я еще напишу отдельный пост). Вернувшись назад в мир разработки на PHP мне стало очень не хватать одной простой утилиты, к которой я успел так привыкнуть. Называется она autotest. Проблема в том, что она для руби. Я быстренько поискал в Гугле и на Гитхабе и не нашел ни одного решения на PHP (позже все же нашел несколько, но они мне все равно не понравились). А я верю в то, что инструменты для разработки на каком-то языке должны писаться на нем же. Хотя бы потому, что ты как разработчик на этом языке не будешь испытывать проблем, если потребуется что-то на скорую руку исправить или модифицировать. Тут руки зачесались, и я написал свой вариант автотеста.

Прошу любить и жаловать — php.autotest.

Для установки надо его или клонировать, или скачать и распаковать. После этого, чтобы не указывать каждый раз полный путь до скрипта, я рекомендую сделать ссылку в файловой системе:

sudo ln bin/autotest.php /usr/bin/autotest

Не забудьте проверить, чтобы были выставлены права на выполнение.

Использование не сложнее установки. Просто перейдите в корень приложения и запустите автотест:

autotest

Он не выведет никаких сообщений, а просто начнет молчаливо ждать изменений в коде приложения или тестов. Как только изменения будут замечены, сразу же будут запущены соответствующие тесты. Как скоро автотест заметит изменения зависит от настройки таймаута, по умолчанию это 1 секунда. Но это время всегда можно изменить с помощью опции timeout:

autotest --timeout=5

Так он будет проверять изменения раз в 5 секунд.

Есть еще несколько полезных опций для не совсем «стандартных» проектов. Например, кода несколько иначе называются директории с кодом или тестам (по умолчанию считается, что для кода — src, для тестов — tests). Или же когда надо указать команду для phpunit.

autotest --src_path=sources --tests_path=testing --cmd=/usr/local/zend/bin/phpunit

Я планирую еще немного поработать над утилитой в свободное время. Например, сделать возможность отвязываться от терминала и писать в логи результаты выполнения тестов, а также отрефакторить код, который уже на это напрашивается.

Надеюсь, утилита будет кому-то полезной.

Над чем я работаю в свободное время

В свободное от основной работы время я занимаюсь собственными проектами, которые мы разрабатываем совместно с Алексеем Касаевым.

У нас есть такие проекты, которые уже будто умерли, например, сервис микроблогов Публико. Есть проекты, на которые нам явно не хватает времени, например, онлайн-игра Кетхоум, которая существует с 2006 года, переживая то взлеты, то падения. Код игры был переписан уже трижды, а сейчас переписывается в четвертый раз.

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

На деле я хотел вспомнить в этой публикации о том, что сегодня уже перестало работать или так никогда и не увидело свет. Поэтому, хочется упомянуть городской портал Шахар, о котором мы решили забыть до поры, когда сможем инвестировать в проект достаточно денег.

Был небольшой сайт artebledev.ru, который брал содержимое с сайта студии Артемия Лебедева и путал буквы в словах. Это была такая шутка, которая порой даже пользовалась популярностью среди поклонников известного дизайнера.

Кстати, сегодня я возродил маленький полезный сервис, о котором как-то писал на Хабре. Он позволяет скорректировать субтитры. Правда, адрес его теперь http://subtitler.ru.

Нельзя не вспомнить сайт Давности. Его идея пришла в тот момент, когда мой папа сказал, что будет вести на радио программу «Казанские старости». Это сейчас на сайте радиостанции стали публиковать тексты из программы, а в то время даже в эфир она выходила нерегулярно, зато материала было полно, больше, чем можно было записать для передачи. К сожалению, обработка этого материала (а берется он весь не из Интернета, а со старого доброго носителя — бумажной газеты, которую к тому же запрещено выносить за пределы библиотеки) процесс трудоемкий, требует много времени. Ни у моего папы, ни у нас с Алексеем не было достаточно времени, чтобы продолжить работу над сайтом. Поэтому теперь он в замороженном состоянии.

Покойся с миром старый добрый Мастхев, домен продали год или два назад. В 2003 году мы с Алексеем чего только не хотели на нем сделать, но в итоге волею судьбы в 2004 году на нем образовалась тусовка молодых людей, интересующихся информационной безопасностью. Проект прожил до 2007 года, а в его день рождения (11 октября) было принято решение о закрытии. К слову, на нем сложилась и определенная офлайн-тусовка, которая периодически встречается в Москве. Ныне почти все те молодые люди работают в ИТ — программисты, админы, консультанты по ИБ.

Хочется вспомнить и о двух блогах, которые велись также мной и Алексеем: Бродим.ру и Гуглд. На первом мы рассказывали обо всем том интересном, что нашли в Сети, а второй полностью посвящался известной всем компании. К сожалению, они, как и еще многие другие наши небольшие проектики, стали жертвами переезда с одного сервера на другой.

Кстати, как-то совсем вылетел из головы небольшой сервис для размещения исходного кода — PasteCode. Я его сделал на скорую руку, когда мне срочно надо было разместить какой-то код в сети, а фаервол не пропускал меня к известным мне сервисам. Чуть позже Алексей сделал для него хоть какой-то дизайн, а недавно мы даже его немного отрефакторили и поразмышляли о возможных путях развития.

Пожалуй, это все, о чем я готов был рассказать сейчас.

DevConf 2011

Давно мечтал попасть на DevConf (PhpConf), и вот это случилось :) Второй день в самом разгаре, сижу на мастер-классе Алексея Рыбака «[HighLoad] Основы построения масштабируемых высоконагруженных веб-проектов». В целом, довольно интересно, хотя и ничего нового тут пока не услышал, так как по долгу службы приходится работать практически с такой же архитектурой.

Zend Certified Engineer

Итак, давно обещал рассказать, как сдавал экзамен. Руки как не доходили, так до сих пор и не доходят. Периодически через Желтые страницы Zend’a мне задают некоторые вопросы о самом экзамене.

Во-первых, должен сказать, что экзамен простой. По крайней мере, мне так показалось.
Рассчитан он, как мне думается, на людей, которые программирование практикуют, а не просто зазубривают мануал, так как большая часть вопросов была на особенности поведения.

Во-вторых, вопросы пробных экзаменов мне давались намного легче. На настоящем экзамене будто есть цель запутать экзаменуемого. Меня самого смущали вопросы, касающиеся разницы поведения одного и того же кода в PHP4 и PHP5, так как на первый из них я давно забил. Разумеется, все основные различия мне известны, но многие тонкости все же смущали.

В-третьих, Study Guide не дает всего объема информации, а лишь освещает все тематики, которые встречаются на экзамене. У меня самого с подготовкой проблем не возникло, так как я и до этого прочитал огромное количество книг и статей. Study Guide помог просто все в памяти поднять. Кстати, его бы я больше советовал тем, кто язык изучает. Как бы мне хотелось, чтобы первая книга по PHP была бы именно она!

Если вспомню еще что-то, обязательно сюда добавлю.

brodim.ru

По бескрайним просторам Великой Сети Интернет странствуют миллионы пользователей. Мы бродим взад и вперед, так часто не замечая перед собой гениального, интересного, увлекательного, полезного…Вчера с другом приобрели домен brodim.ru. Для микро-проекта об Инете. Ничего особенного, просто будет писать о собственном опыте в Инете. Обо всем, что привлекло “тут” наше внимание…

php framework

На работе начинаем работу над новым проектом (социалка). Встал вопрос об использовании какого-нибудь фреймворка для ускорения процесса разработки.

Среди претендентов: Symfony, Zend Framework и CakePHP.

Лично я пока что успел только поверхностно ознакомиться с Symfony и начал читать доки по Zend.

Хотелось бы услышать, кто-что думает по поводу этих фреймворков и целесообразности их использования?

Прошу учесть, что нагрузка теоретически будет не маленькая…

www.creogen.com, pre-release

Наконец-то закончили сайт http://www.creogen.com.

За все время существования Креогена, товарищем Касаевым (aka Violator) было сделано около 5 дизайнов сайта (примерно один в два года), я бесчисленное множество раз начинал делать двиг для этого сайта, но каждый раз мы прекращали наши действия, так как понимали, что время ушло и делать надо что-то новое.

С нашим развитием, мы стали понимать что вечное — в простоте (мы много экспериментировали с простым дизайном, у нас даже была “линейка” дизайнов JustText; и с разработкой мы пришли к “методу идти от простого”). Поэтому на этот раз решили не заморачиваться с дизайном и функционалом сайта Креогена и сделали очень простенький сайт, абсолютно ничего лишнего, и что приятно — для этого нам потребовалась всего пара дней :)

Конечно, должен заметить, что зайдя на него сейчас, нельзя оценить его по достоинству, так как контентом он еще не наполнен и графические элементы (например, навигации) не заменены оригинальными (сейчас всего лишь “заглушки”), а проходит тестирование.

Разработки, мысли

Чем имеет смысл заниматься?

Я понял, что нет смысла разрабатывать СУС (CMS) для того, чтобы потом на ее основе выполнять заказы. Да, она, конечно, поможет сократить расходы (и денег, и времени) на “изготовление” сайта, но напрочь лишит программста креатива, то есть превратит его в овоща. А такой программер недолго останется программером :)

Вывод: СУС можно разрабатывать как продукт, но не выполнять на ней заказы. Тогда есть и интерес, и креатив :)

Вообще довольно интересно разрабатывать какие-нибудь системы управления :) Сейчас, наконец, разрабатываем с товарищем Violator’ом свой Project Manager (у нас он называется Creogen! Planner, или просто CreoPlanner). Причина проста — при работе над проектом многие идеи, задания и баги просто вылетают из головы. И вот теперь, когда возникла острая необходимость в каком-то инструменте, я сначала полазил по вебу в поисках готового решения. В основном это были онлайн сервисы, но они не давали мне то, что я хотел. А хотелось мне совсем немногого: простоты и удобства. Скрины нашего менеджера:

[скриншоты потеряны]

Живем, работаем, трудимся, паримся

Не надо никакой парилки, чтобы запариться. Достаточно просто все время своей жизни занять работой.

Сначала идешь в офис и занимаешься тем, чем надо. Потом возвращаешься домой и делаешь то, что когда-то хотел.

И все время что-то делаешь. И даже не остается время на то, чтобы сходить в кино или тренажерку. Просто постоянно в коде.

Идеи?!

Мы с другом располагаем двумя интересными доменными именами: http://musthave.ru и http://musthave.us.

На данный момент на них ничего нет. На musthave.ru в свое время мы думали разместить сайт, посвященный соблазнам города, то есть всему, что можно было иметь, и где можно было побыть в Казани.

Но пока мы его делали выползло сразу нескол ько таких сайтов, конкурировать с которыми было просто глупо — ими занимались серьезные медийные агенства…

С тех пор домены использовались где придется. Сейчас же мы вновь хотим замутить что-то интересное. Возможно, даже что-то оригинальное… Но в голову не идет ничего :(

Если есть идеи, прошу поделиться…?