Промежуточные выводы

Значит в ходе дискуссии возникли корректировки. Было предложено вынести весь дополнительный функционал в плагины. Я согласен с такой идеей. Плагины по сути в livestreet — это есть отдельные куски приложения имеющие в себе контроллеры модели и вьюхи, как пакеты, модули или бандлы в других архитектурах. Сразу появляется возможность отключить/включить нужный функционал. Чтобы сэкономить время можно брать готовые куски кода из модулей и расфасовать их по плагинам с некоторыми корректировками. По ходу перенести все модули на ORM. Кстати возникает возможность подключить готовую библиотеку к фреймворку, например Doctrine или другую, до переноса на ORM.
Пусть основное приложение будет иметь определенный набор модулей и экшенов, самых основных.
Например:
пользователи и авторизация,
типы контента,
категории,
комментарии,
может еще что то.
Расставляем в ключевых местах хуки и приступаем к плагинам.
Плагинами окажутся:
Создание блогов
Подписки
Избранное
Друзья
Rbac, Acl
Ну и другое
По ходу работы над основными плагинами можно корректировать расстановку хуков.
Шаблон основного приложения станет выполнять рекомендательную функцию. В него можно сложить основные стили, компоненты, а плагины будут иметь и свою часть шаблона. Это усложняет работу по фронтэнду. Можно это компенсировать рекомендациями к разработке плагина — как можно меньше стилей и использование layouts основного шаблона. Но это тоже не выход, некоторые компоненты все равно останутся в плагине. Придется чем то жертвовать.

15 комментариев

avatar
Сразу появляется возможность отключить/включить нужный функционал.

Возможность конечно замечательная. Но зачем? Например кто то будет использовать livestreet без блогов, пользователей, подписок и т.д., именно ради этих функций в большинстве случаев используют livestreet. Опционально в админке иметь возможность выключить любую из этих функций — да, но выносить в плагины мне кажется это уже перебор.

Это усложняет работу по фронтэнду.

Кто нибудь знает более сложную в разаработке фронтенда систему, чем livestreet?
avatar
Но зачем?

Чтобы попробовать расширить аудиторию движка.

Опционально в админке иметь возможность выключить любую из этих функций — да

Тогда по фронту нужно будет всю работу все равно выполнять, а если нужна только часть функционала, зачем это делать. Правильнее идти от меньшего к большему, а не наоборот.
avatar
Например кто то будет использовать livestreet без блогов, пользователей, подписок и т.д.

Ну у меня, к примеру, периодически возникала необходимость сделать тот же личный блог и лендинг на ЛС и всегда либо не хватало каких-то мелочей, либо лишнего через чур много было. Знаю, что можно было выбрать более подходящие движки под это, но нравится ЛС и привык к нему. И если у него эти возможности будут почему не использовать?

А имея возможность оставить минимальный функционал можно ведь с помощью сторонних плагинов и что-то другое сделать: выключаем все не нужное, ставим плагин магазина — получаем сугубо магазин без всей лишней атрибутики ЛС и т.п.

Кто нибудь знает более сложную в разаработке фронтенда систему, чем livestreet?

А в чем сложность то? Разве что работы больше только по сравнению с тем же Вордпресом, так и функционала больше…
avatar
Вы знаете структуру движка, можете сверстать под него шаблон. Просто представьте обычного пользователя, который будет делать на livestreet например лендинг или интернет магазин(без функций сообщества, которые есть сейчас в движке).

Кстати для лендингов лучше всего подходит modx, если у вас есть готовый каркас с настроенными модулями, все это разворачивается и делается под клиента в течении пары часов.
avatar
Вы знаете структуру движка, можете сверстать под него шаблон. Просто представьте обычного пользователя, который будет делать на livestreet например лендинг или интернет магазин(без функций сообщества, которые есть сейчас в движке).

Ага, ливстрит «сложный» потому что не разработчик не может разработать на нём интернет магазин. Логично.
avatar
Не интернет-магазин, а просто любой сайт, отличный от UGC-сайта. Во второй версии для того, чтобы разобраться в шаблонах, приходится параллельно учить второй язык — компонентов, это несколько… обескураживает.
avatar
Язык? Там ж ничего нового нет.
Раньше js и css «компонента» были глобальны и его шаблон использовался через {include ...}
Сейчас js и css перенесли в папку с компонентом, а его шаблон используется через {component ...}

Единственное, что надо изучить — так это jquery виджеты, но можно их и не использовать, а писать js модули в том же стиле какой был раньше.
avatar
Так уж сложилось, что тенденции идут к тому, что бОльшая часть рынка работает на готовые решения для обычных пользователей. Для разработчиков есть фреймворки, ну и конечно синтаксис языка :)

И на этом этапе у меня есть вопросы — новый livestreet будет CMS или фреймворком?
avatar
Наш вождь поставил ориентацию на CMS.
avatar
Создаем новый велосипед, который будет отличен и от 1-й версии, и 2-ой.

Логично все это будет, если вы имете какую-то базу (свой/чужой сайт, относительно стабильный рабочий проект) и от нее отталкиваетесь. Делаете и себе, и косвенно для других, проверяя и оттачивая сделанное «тестерами» лайвстрита, и т.д/т.п.
В обратном случае непонятно, что будет заставлять вас постоянно заниматься кодом/создавать абсолютно новый продукт, имеющий с лс общее — только одно название.
avatar
Создаем новый велосипед, который будет отличен и от 1-й версии, и 2-ой.

Так пока вроде отличия серьезного от 2-й версии не планируется, просто перемещение существующих вещей в другие места.
avatar
просто перемещение
Это все образно. Новый продукт, новая структура.

В любом случае что-то полезное из него можно будет использовать в своем 1,0,3. Поддерживаем начинания.
avatar
Это усложняет работу по фронтэнду.

Почему усложнит? Фронт работы останется прежним с тем лишь различием, что файлы будут разбросаны по плагинам ядра. Как по мне, так даже проще будет в том плане, что работа разобьется по логическим кускам — сделал одно, переходи к другому. А если нужен минимальный функционал, так и еще лучше — не нужно будет перелопачивать все, достаточно будет сделать необходимое.
avatar
Если не будет обратной совместимости с 1.0.3/1.0.4 — это тупик. Красивые обещания по новому фреймворку приглушаются опытом сообщества по 2.0, который не был поддержан владельцами сайтов и, следовательно, авторами плагинов.
Тег «обратная совместимость» (с последнего успешного сохранения) или есть у проекта, или проект не взлетит.
avatar
согласна по поводу «обратной совместимости».
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.