среда, 10 октября 2007 г.

Правильный выбор - основа успеха.

Итак, сформулированы цели проекта, общие требования к функциональности и к дизайну. Настало время претворять идею в жизнь. На тот момент я уже был немного знаком с Ruby, слышал о Ruby on Rails и, естественно, было желание реализовать проект, используя именно эти технологии. Этому способствовала переведенная книга Getting Real, идеи, описанные в книге, понравились и произвели на меня большое впечатление.

В конференции RubyOnRails to russian неоднократно поднимается вопрос о хостинге для RoR проектов. В странах СНГ эта новая технология только начинает появляться, поэтому выбор хостинга небольшой. Сначала я предполагал использовать бесплатный хостинг, но после изучения этого вопроса с мыслью о бесплатном хостинге пришлось расстаться (очень много нареканий на качество услуг и обслуживание). Поиск дешевого хостинга и сравнение цен было не в пользу RoR, появилась мысль написать данный проект на PHP. О PHP я знал немного: это самый популярный язык для создания динамических страниц, отлично работает с MySQL, его много ругают, но при этом с ним постоянно сравнивают другие технологии, существует много framework' ов, и нет среди них явного лидера. В стремлении минимизировать затраты на проект я стал серьезно рассматривать PHP как платформу для реализации. Для ознакомления подобрал несколько книжек для начинающих, почитал несколько сравнительных обзоров. Изучать "тяжелые" framework'и PHP у меня не было ни времени, ни возможности, поэтому под руку попался шаблонизатор Smarty, на нем и решил остановиться. Пока я подбирал книжки, выбирал шаблонизатор для PHP, скачал и настраивал Denver, я вдруг понял, что RoR мне ближе своей архитектурой и что на тот момент я уже "въехал" в принципы построения приложений, оценил скорость разработки и удобство работы с БД. В итоге скорость разработки и стала решающим фактором в пользу RoR. Я рассудил следующим образом: у меня мало опыта в создании сайтов, вообще нет опыта работы с хостерами, я не представлял, как получить имя для домена, как разместить потом сайт под этим именем, как потом сделать его популярным, что такое поисковая оптимизация. Поэтому само программирование не должно отнимать львиную долю времени и сил. В отличие от RoR PHP мне пришлось бы изучать с самого начала, но саму идею познакомиться с PHP я не оставил, возможно, при реализации другого небольшого проекта я попробую и PHP.
С базой данных было намного проще, конкуренцию MySQL мог составить только PostreSQL, но в данном вопросе я решил не рисковать и выбрал MySQL в виду его большой распространенности, а также наличия огромного количества документации. Еще одним важным решением для меня было использование CSS для дизайна и разметки страниц. В своем первом WEB приложении вся разметка была сделана с использованием таблиц, причем я не использовал технику шаблонов. Любые просьбы пользователей о том, чтобы добавить вспомогательную информацию на все страницы (в подвал или в шапку) приводили меня в некоторый ступор, я даже не представлял, сколько потребуется времени, чтобы изменить около 20-30 страниц и при этом постараться не испортить то, что уже работало. В таких случаях я им отвечал: "Это займет 2 недели" - и вопрос решался сам собой.

Вывод:
Вывод я сделал простой и очевидный: нужно использовать те инструменты, с которыми знаком, и работа с которыми доставляет удовольствие (fun), при условии, что инструменты адекватно подходят для решения поставленной задачи.

4 комментария:

Денис Радченко комментирует...

Интересное описание, спасибо. Давно хочу поиграться с RoR, но пока не так много времени - делать сайты на PHP гораздо привычнее.
А с хостингом под RoR особых проблем нет, можно взять firstVDS, там есть поддержка Rails

Павел комментирует...

Забегая вперед скажу, что планирую рассказать немного поподробней о RoR и хостинге в будущем.

batigoal комментирует...

Опечатка. "fan" - это вентилятор, а удовольствие - "fun" ;-)

Павел комментирует...

Совершенно верно, спасибо за замечание. Исправлено.