Решено – нужно немедленно вливаться в движение Открытых Исходников (Open Source).
С самых эгоистичных уровней это выгодно, потому что участие в открытых проектах это большой плюс при поиске работы – с точки зрения нанимающего, текущая репутация (которую легко определить через открытые системы, где открытые разработчики тусуются – stackoverflow, github, sourceforge etc) имеет намного большее значение, чем красиво оформленное резюме. А если вы ведете свой бизнес, то вам гарантировано повышение спроса и уважения клиентов.
Плюс, если ваш проект нужен кому-то из открытых разработчиков, вокруг проекта возникнет сообщество, которое бесплатно поможет в разработке – тестированием, фиксами, поддержкой, документацией, плагинами, а может и непосредственно в разработке ядра проекта.
Я долго думал, как делать свой следующий вебсайт. В последний год работал под Zend Framework, плюс в последние пару месяцев изучил слегонца WordPress и Magento, для которых делал плагины. Поверхностно прошелся еще по многим CMS и фреймворкам. Каждый имеет свою ценность, своих поклонников и так далее, но я понял, что не хочу жениться ни на одной из систем. Хочется сделать такой набор инструментов, чтобы его можно было носить с собой – хоть в Зенде, хоть в Симфонии, хоть в ВордПрессе, я бы хотел иметь под рукой набор кубиков, из которых привык легко и быстро строить веб-сайты – простой сайт должен собираться вообще за день-два, но что-то сложное и большое тоже ничто не мешает делать. И нет ничего такого, я не видел по крайней мере. Этот инструментарий должен включать в себя и поддержку сессий, и отсылку емейлов, и лог, и создание-обработка форм, и гриды, и работу с датами удобную, и аплоад картинок и создание галерей, и подписку/рассылку, и кучу всякого разного – причем включая и javascript для аяксовых штучек всяких, и для там диалоговых окошек опять же.
И надо так это сделать, чтобы реально встраивалось в любой существующий фреймворк. И чтобы модульная структура была, чтобы можно было сделать модуль, скажем, “Новости”, и это была бы одна директория, в которой весь sql, js, css, php – все в одной директории. И тогда люди могут свои модули добавлять, получится удобный такой конструктор, в котором буквально за несколько минут можно описать модель данных (на Doctrine2), донастроить по-быстрому автоматический админский бекенд – для маленьких проектов и донастраивать не нужно будет, – активировать нужные модули – и перекрыть файлы с дизайном, чтобы выглядело как заказчику надо.
И в то же время чтобы можно было используя этот набор инструментов быстро сделать плагин для WordPress’а – используя те же классы в пхп и функции в javascript’е.
И хочется именно такие кубики удобные, не такой голый набор классов, как Zend или Symfony2, но и не такое уже полное создание, как WordPress или Magento. Хочется, чтобы некоторые вещи вообще не отнимали времени:
- разнообразные формы – элементы ввода даты, wysywig, набора картинок для галлереи, целого числа и т.д. – программист не должен на них тратить больше времени, чем необходимо для объявления класса этого элемента
- отсылка емейлов – с шаблонами, с историей отправки
- диалоговые окошки на фронтенде, flash-сообщения
- закладки с аяксовыми страничками (notebook)
- формы, которые обновляют часть страницы через аякс
- сессии, регистрация, “lost password” etc.
- кеширование с ключами зависимости – в memcache, в apc, в базе
В общем я решил из своего старого “движка” делать этот фреймворк. Я его изначально разработывал в таком ключе, и не так уж там все плохо у меня. Пришло время сделать серьезную перестройку там, и выкладывать в открытый доступ. Интересно, что из этого получится 🙂
В лучшем случае – а я всегда фокусируюсь на самом оптимистичном прогнозе 😉 – все будет так. Проект подхватит несколько человек, мы сделаем еще одну серьезную перестройку, повысим модульность до того уровня, к которому привыкло сообщество – и дальше в течении какого-то времени будет идти рост и непрерывная эволюция First Hand Solutions RAD framework for PHP – пока мы не дозреем до моего следующего проекта. Мы его тоже будем делать на этом движке, и тоже в открытом режиме – я еще не понял до конца как, правда ))
Leave a Reply