25 ноября 2009 г.

Google Developer Day 2009

Future Colors на GDD09Две недели спустя GDD09 размещаю отчёт...

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

Очень надеялся поговорить с живыми разработчиками Maps API, ведь целых два выступления было отдано на презентации картографических сервисов Гугла. Именно их карты мы впервые использовали в нашей гео-социальной сети и получили массу опыта, реализовав многие интересные задумки, часть из которых со временем была перевоплощена в Банкоматоре. Соответственно, наибольший интерес на конференции у меня вызывала именно эта тематика, но в планах было посетить и другие любопытные секции.

13 ноября 2009 г.

Синхронизация файлов проекта в Eclipse c помощью rsync

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

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

6 ноября 2009 г.

Zend Framework на страже всех Банкоматов

Наш любимый «Банкоматор» перенёс серьёзную операцию миграции с CodeIgniter на Zend Framework. Благодаря тому, что его организм ещё молод, раны зажили быстро, самочувствие улучшилось, а жажда улучшения только увеличилась. И вот почему.

CI to ZEND

После более чем года использования php-фреймворка CodeIgniter, стало ясным, что чем меньше и легче инструмент тем больше желание его улучшить, расширить, препарировать. В том случае, когда только один разработчик трудится над проектом, это не страшно, но со временем, когда возникает необходимость коллективной разработки, это начинает мешать. В случае CodeIgniter, было недостаточно ни встроенных средств, ни встроенной возможности масштабирования. Приходилось писать свои хелперы, расширения ядра, и т.п., которые по сути не являлись уникальными для проектов, а также использовать различные сторонние библиотеки (кстати, мы использовали две библиотеки из Zend Framework). Мы были вынуждены создавать свои костылики и костыли, чем вызывали дисбаланс в карме используемого нами фреймворка.

Наш выбор пал на Zend Framework, во-первых, из-за его репутации (лёгких путей не ищем), во-вторых, из-за лучшей масштабируемости, модульности, расширяемости и т.п. и, в-третьих, из-за большого количества вкусностей из коробки. Стоило бы упомянуть хорошую документацию и наличие мануалов... API есть, но изучать по нему Zend сложновато; к сожалению, даже в англоязычной литературе есть некоторые пробелы, которые касаются оперативности (текущая версия 1.9.5) и, главное, конструктивных решений (именование классов, расположение файлов и т.п.). Один из минусов — наличие большого числа различных решений одной и той же проблемы, но, правда, с нюансами, от которых и должен зависеть выбор.

Но хватит о минусах. Zend Framework имеет ряд плюсов (по крайней мере по сравнению с CodeIgniter), которые заставляют нас уважать его. Конкретные и достаточно жёсткие стандарты кодирования, что незаменимо в средних и больших коллективах разработчиков, модульность, некоторый ORM и другая абстракция - позволяет создавать более гибкие и переносимые модели, хорошо продуманная и удобно воплощаемая двухуровневая система шаблонов, расширенная и иерархичная модель MVC (вызовы контроллеров и отображений из шаблонов, диспетчеры), гибкая система встраивания своих плагинов и других обработчиков, плюшки (права доступа, кеш, json, дебаг с FirePHP, профайлер и другие, которые мы ещё не попробовали, но они там есть :-))

Пока пациент поправляется, мы будем постепенно освещать некоторые интересные подробности миграции и делиться ссылками.