Как я управляю разработкой CMS, используя 3SL Cradle

от автора

Предыстория

Последний раз я серьезно программировала на php в 2000 году, это был интересный проект с американцами, где мы делали огромный спортивный портал, с кучей социальных фишек. О фреймворках, готовых компонентах, которые нам бы подошли, речи тогда и не шло. Поэтому все честно занимались прокидыванием сессий и многим другим, свойственным «pure php». Спустя много лет я поняла, что тогда мне удалось разработать небольшой фреймворк, который с помощью настроечных файлов генерил целые куски бекэнда. Надо сказать, что он еще несколько раз мне пригодился при разработке сайтов магазинов в те же студенческие годы.

В 2012 году нам понадобилось сделать сайт уже своей компании. Честно говоря мне меньше всего хотелось программировать, искренне полагая, что за 12 лет уже могли разработать что-нибудь толковое, я потратила месяц на скурпулезную оценку готовых CMS-систем, придя к неутешительному выводу, что все они
1) тяжеловесны,
2) неконтроллируемы,
3) проще нарожать новых, чем отмыть…(если хочется индивидуального покроя).

Тогда я подумала, что лучше отдам-ка я разработку кому-нибудь из своих боевых коллег по Политеху. Но ведь чтобы отдать, нужно сказать, чего хочется, причем сказать довольно точно, иначе будет «как всегда». Мне ли не знать. ОК, значит нужно подумать и разработать спецификацию.

Вопросов где разрабатывать спецификацию не стояло, т.к. Cradle — это мой основной инструмент как аналитика к тому времени был уже 5 лет. Размышляя, как всегда, над концептуальными вещами на бумаге, затем я переносила их в Cradle, проводя тем самым их боевое тестирование. Через некоторое время рамочная концепция и базовый блок требований был зафиксирован. И тут оказалось, что я настолько хорошо уже представляю систему, т.е. ответила на все основные вопросы, что осталось-то всего лишь это закодировать. Когда требования написаны хорошо, то программировать ведь одно удовольствие.

Оставалась одна незадачка – очень не хотелось снова писать управление сессиями. Тогда я как-то поняла, что фреймворки могут эту проблему решить. Пару недель отпуска было потрачено на изучение и выбор фрейморка и я остановилась на yii. Если кратко, то
1) их сайт летал (в отличие, например, от сайта drupal),
2) были отзывы как о самом понятном,
3) живой, развиваемый, сопровождаемый,
4) нормальный форум,
5) быстрый въезд.

И надо сказать, что выбором очень довольна, логика yii мне «легла». Разобралась с его базовыми возможностями довольно быстро. Первые две недели где-то скорость была по 10 своих строчек в день, поскольку надо было вообще вспоминать, что такое Php, но потом уже стали образовываться повторно используемые куски и дело пошло. Попутно купила себе PhpStorm (ранее всегда использовали FAR+Colorer), чем тоже оказалась несказанно довольна. А той же осенью студенты подсказали про GIT, подключила и его, так что теперь организован полный цикл – от требований к релизам на GIT, с возможностью сказать, что в каком релизе реализовано (по модели требований в Cradle)

Чтобы разобраться с GIT-ом пришлось порисовать картинок. Делюсь, может кому пригодится.
image
image
image

Создание хранилища
image

Создание снимков
image

Исторические выводы

1) Если требования хорошо проработаны – программировать в радость.
2) Собственная разработка на базе фрейморка с одной стороны позволяет сэкономить время, реализовать индивидуальное решение, а с другой – не тащить ненужный мусор готовой CMS. Но понятно, что это для тех, кто умеет программировать.
3) Время на поиск готовых примочек к готовой CMS сопоставимо с самостоятельной разработкой этих примочек. При этом качество выше, процесс лучше управляем, а квалификация растет в правильном направлении.

Это была предыстория, далее могу описать весь скелет технологии, если кому будет интересно

ссылка на оригинал статьи http://habrahabr.ru/post/221277/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *