воскресенье, 30 августа 2015 г.

Немного о старом и еще чуть-чуть о новом MuWebClone и о его развитии

Я как-то подзабросил блог. Надо бы чуть-чуть его подраззабросить.
***
Сопсно, речь поведу о новом mwce, шо будет нового и как оно примерно будет работать. Пока это мысли-наработки, частично даже  реализованные.
Итак, прежде чем говорить о версии 1.6.2, вспомним, а что было до... Хотя, скорее для себя я вспомню :).
Сначала было слово... ну, это понятно.
Первый страшный mwc был создан на основе тогда знаменитого muweb. Причем, создан - громко сказано, выглядело это "я слепила из того что было", даже хуже.
Потом "проект" был заброшен, но идея жила, а автор усиленно (когда не мешала лень) пытался выпрямить руки.
Потом появился  уже mwc, как оформившийся сайт с какими-то плюшками от 0.1 до 1.4, потом был 1.5 с шаблонзатором и говнокодом, но уровень хелоувордщика преодолен не был.
Потом было решено сделать 1.6, его можно считать попыткой ребетенка сделать первые щаги.
Сделал. Принцип его был "почти MVC": как таковой mvc используется только в недрах сайта, все остальное заточено под простое функциональное программирование с небольшими вкраплениями классов, так сказать, для простого хелоувордщика, да...
Так вот, так как некоторая основа используется в энтерпрайзе (для интрасети  и не совсем в виде системы управления проектами), я понял, что местами я уперся в потолок возможностей того "творения", что было запилено + постоянная халтурка с напилом модулей всем тем, кто в свое время обзавелся 1.6 двиглом:
сайты сами по себе несколько отличались: у одного было отличие в шаблонизаторе, у второго куча баз, у третьего еще что-то там...

Ну, в общем для тех, кто хоть раз занимался паттерном mvc сейчас уже ухмыляется: мол, да, ты описываешь преимущества как раз-таки обычного model-view-controller паттерна.

Так как я особо не парился в свое время с шаблонами программирования, то и использовал их не ахти как активно (даже сейчас считаю, что лучше недобдеть чем перебдеть, в данном случае, ибо если шаблоны использовать там, где они на фиг не нужны, то кроме захламления кода ничего хорошего не получится), то сел штудировать книги, статьи, код. Ну и, в конце концов, насмотревшись творений умных дядь типа yii и симфоний, я пришел к выводу, что, пожалуй,  стоит "убрать" ограничение "онли простой подход", и на свет в муках начала вырисовываться 1.6.2 (1.6.1 все тот же 1.6, только со своеобразным "сервис паком").

Концепция нового 1.6.2 будет примерно в следующем:
- есть основа с классами-родителями: контроллера, модели, ряда вспомогательных классов, сторонних библиотек
- есть билды (привет, bundle), унаследованные от данных родителей, со своими направлениями расширения.
Это автоматически помогает мне в 1 месте держать хоть все проекты кастумеров и допиливать их в нужном направлении, причем, при выявлении более удачного подхода для решения какой-либо задачи я могу путем изменения родителя запилить для всех проектов сразу очередной патчик (или для каждого в отдельности, если это не касается ядра), то есть по факту управление уровнем абстракции. Лично мне нравится такая идея :) Ваш Кэп.
- есть поддержка плагинов.
а куда без них? попробовав раз - торчу и сейчас.
- есть возможность писать и обычные функциональные скрипты как это было во всех предыдущих версиях. Это значит, что до сих пор, кому-то не нужно будет затачиваться на тему, как работает все это внутри и как писать свои контроллеры, модели и шаблоны. То есть, я не отказался от гибридного подхода, а все также его продвигаю. Стрелять по воробьям из такнка - это весело и даже иногда действенно, но требует затрат времени, которое, как обычно, еще вчера закончилось. Это, конечно, навалило ряд вопросов, как это все заставить работать... вроде как разрулил, на тестах посмотрим, был я прав или не очень.  Ваш Кэп.

Потом я подумал, что иметь конечно кастумеров - круто, но все-таки изначально, в саамом начале пути mwc, ставшего аж mwce была цель сделать лвиг для всех, а не только для тех, кто готов платить. Поэтому сам "движок" будет свободным и доступен для скачивания, возможно, сделаю репозиторий на том же гите, пока не решил. А вот билды уже буду писать или дорабатывать под конкретные нужды людей, будь то просто сайт-визитка или же muonline проект, а может даже ла проект, не знаю, время и востребованность очередного велосипеда покажет, нужно ли оно или нет.
Да и чего греха таить, хочешь найти ошибки и усовершенствовать то, что есть наиболее быстрым способом? Выложи в паблик! Ну "тыпонел" да? Ваш Кэп.

За сим пока откланиваюсь, ежели будет еще что интересного - отпишу.

P.S.:Если кому-то интересно, как организовывалась система управления проектами или как я доходил до понимания, что ж такое этот мэ вэ цэ, то пишите, напишу статейки еще.