Аргументы против InstantCMS или почему не все так гладко

 
Посетитель
no avatar
Сообщений: 10
Вечер добрый.

Название темы, пожалуй, вызовет агрессию. Верю, не без оснований. Возглас "не нравиться - уходи" прошу не приводить - так-то и не приходил. Теперь можно переходить к сути.

Когда-то друг попросил меня помочь ему с шаблоном на сайте с установленным InstantCMS, осадок остался не самый лучший, ну да и забылся. Но на днях у нас возник спор: он утверждал, что это лучшая CMS. Нет, всерьез так, с фанатизмом! Не прореагировать на такое заявление я не мог, потому распишу список "что не так" публично. Верю, аргументы будут услышаны, и, надеюсь не в меньшей степени, натолкнут на какие-то мысли и/или действия.

% Шаблоны %
Шел 2019й год, Мир увидел расцвет фронт-разработки как никогда ранее, казалось бы, вот теперь-то заживем. Вот-вот поспел es9, так здоровски повышающий качество и скорость написания js-кода, и не менее здоровски компилируемый babel-ом в es5, и этот всем знакомый уже из es6 синтаксический сахар OOP, и модули, и элементы функционального программирования! Бери да делай шедевр на десятилетие вперед... В это же время БЭМ стандарт де-факто, во весь ход идут если не гриды, так флэксбоксы. Кого-то из мира Python вдохновил HTML и вот - шаблонизатор Pug любит и лелеет каждый: ох эта модульность, а mixins, а layouts! Обращение к дом-узлу по классу без префикса js- теперь моветон, а это значит годы набитых шишек не прошли зря.
Но это в совершенно параллельной от InstantCMS реальности, здесь ничего из вышеперечисленного днем с огнем не сыщешь. Наверное, этого стоит бояться: обновление шаблона, в котором изменено чуть больше, чем просто стили, не может не быть болезненным и не плодить г-кода линейно, что, собственно, дополнительных доводов не требует - все на виду.

Критикуешь - предлагай.
1) Выбросить дефолтный шаблон на помойку
2) Создать webpack-проект под новый шаблон:
- Использовать .pug шаблонизатор, вынести виджеты и компоненты каждый в свои темплейты, под текущую структуру. По факту компилировать в php-файлы: читать, создавать готовый к употреблению шаблон при сборке на лету. Разумеется, только БЭМ и ничего другого.
- Файлы css хранить только в папке со стилями, разбить на компоненты: один темплейт, один файл стиля. Использовать rem-единицы и flexbox/grid, css-variables. Webpack, конечно, все склеит, а плагины postcss решат проблемы кроссбраузерности.
- JS переписать также с нуля, ибо текущий вариант ну... сякое... недореализации божественного объекта. Пора модульности взять верх. Привязка к DOM-у на основе либо через js- префиксы, либо через атрибуты data-js , тогда при редактирования темплейтов не будет возникать опасений похерить что-то в JS.
- Вендоры JS и CSS тянуть из npm, разумеется. Грамотный tree-shaking, прямо уже из коробки, приятно удивит конечным размером бандла - кто по pagespeed плачет?
- Перейти полностью на иконочные шрифты, которые собирать динамически из svg. Все изображения прогонять через imagemin.
3) Избавиться от html-разметки в файле-хелпере: ведь ей там не место, правда?

Это даст: удобство разработки, удобство создание новых шаблонов и их обновлений (= по большей мере переписать CSS в контексте БЭМ-а, и этим самым изменить его до неузнаваемости), в общей массе качественных и долгоиграющих.

% PHP %
Тут буду краток: тянуть вендоры через composer куда приятнее, да и обновлять тоже. Разворачивать систему таким образом было бы приятнее не менее.

% Система в общем %
Связанность здесь сильная, отключить компоненты просто и безболезненно нереально - если нужен только новостник, без сообществ/пользователей/блогов, - нога будет прострелена. Скачал ради интереса первую ветку - там этой проблемы вроде как и нет (извините, особо в нее не вникал). Политика второй ветки движка ведь не звучит как "пользуйся всем или уходи"?

% Каталог - дополнений %
Бесплатные обновления тянуть сразу с гита автора, и в принудительном порядке заставлять добавлять их таким и только таким путем. Да, повысит уровень вхождения, да, отнимет пару дней у автора движка сделать связку с API гита - но многие ведь страдают из-за некачественных разработок? Может, кому-то не стоит их выкладывать пока что?


Дружище, надеюсь, я тебя убедил: это не идеальная система. Будь она таковой, ей бы пользовалось явно больше народа, да и я сам бы агитировал за нее во всеуслышание.

Всем спасибо, всем добра.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3588
@dulu:
1) Выбросить дефолтный шаблон на помойку
Согласен, но прежде надо найти замену.
@dulu:
2) Создать webpack-проект под новый шаблон:
Почему webpack, а не gulp, grunt, browserify и прочая нечисть?
@dulu:
Использовать .pug шаблонизатор, вынести виджеты и компоненты каждый в свои темплейты, под текущую структуру. По факту компилировать в php-файлы
Никогда не понимал, для чего нужна программа, которая генерирует php файл (шаблонизатор), когда можно сразу сделать готовый php файл.
@dulu:
Файлы css хранить только в папке со стилями, разбить на компоненты
Это дело привычки.
@dulu:
один темплейт, один файл стиля
Тут можно не согласится, так как не на всех страницах нужен код, который используется только в одном виджете на "задворках" сайта. А объединить файлы в один перед выдачей можно в любое время галочкой в настройках сайта.
@dulu:
JS переписать также с нуля
Согласен.
@dulu:
3) Избавиться от html-разметки в файле-хелпере: ведь ей там не место, правда?
Перенесите хелпер в свой шаблон, там ему место.
@dulu:
Тут буду краток: тянуть вендоры через composer куда приятнее, да и обновлять тоже.
Тяните, кто мешает, в коробке это уже заложено.
@dulu:
Бесплатные обновления тянуть сразу с гита автора, и в принудительном порядке заставлять добавлять их таким и только таким путем. Да, повысит уровень вхождения, да, отнимет пару дней у автора движка сделать связку с API гита - но многие ведь страдают из-за некачественных разработок?
Как выкладывание кода на гите, повлияет на качество этой разработки?

Спасибо за отзыв.
Реклама
cms
Посетитель
no avatar
Сообщений: 10
Благодарю за ответ. В секции "Критикуешь - предлагай" удобно писать императивно, легче нарваться на спор - в нем же рождается истина?

Loadырь:
Почему webpack, а не gulp, grunt, browserify и прочая нечисть?
Таки это бандлер, gulp/grunt - task-менеджеры. Webpack умеет отлично собирать код и имеет самую богатую экосистему, и, кажется, ляжет на дно нескоро (чего не скажешь про Gulp - последний релиз год назад, многие еще пользуются версией 3.9.1, которой подоспело 3 года). Вместо webpack выбрать browserify/parcel/rollup...? - Почему бы и нет, тоже хорошие инструменты (будем надеятся, проживут долго!).

Loadырь:
Никогда не понимал, для чего нужна программа, которая генерирует php файл (шаблонизатор), когда можно сразу сделать готовый php файл.
Значит, Вам не объяснили или не решили за нужное разобрать. Осмелюсь показать разницу через синтетический пример:

Код PUG:
  1. +foreach($list, $item)
  2. +b.blog-item
  3. +e.image(src=php('echo $item.image'))
  4. +e.H4.title
  5. +e.icon(src='/icon.svg')
  6. php('echo $item.title')
равняется

Код PHP:
  1. <?foreach ($list as $item):?>
  2. <div class="blog-item">
  3. <img class="blog-item__image" src="<?echo $item.image;?>" alt=''/>
  4. <h4 class="blog-item__title">
  5. <img class="blog-item__icon" src="/icon.svg" alt=''/>
  6. <?echo $item.title;?>
  7. </h4>
  8. </div>
  9. <?endforeach;?>
А теперь представьте масштабы шаблона - что проще поддерживать в дальнесрочной перспективе?

Loadырь:
Это дело привычки.
Когда кодовая база сильно разрастается - привычка имеет свойство играть против нас. Такой подход лишь мое личное наблюдение - но это не значит, что другие подходы чем-то хуже, наверняка есть и лучше.

Loadырь:
Перенесите хелпер в свой шаблон, там ему место.
Хорошее наблюдение, но посыл был не в этом.

Loadырь:
Тяните, кто мешает, в коробке это уже заложено.
Вы безусловно правы. Думал в этот момент о подходе BoltCMS, моя ошибка.

Loadырь:
Как выкладывание кода на гите, повлияет на качество этой разработки?
Для начала отсеит совсем уже плохие работы - отсылка на уровень вхождения. А в дальнейшем перспектив широкое поле - автоматичкое подтягивания обновлений, таб issues в деталке товара, это навскидку. Работа с git API и фантазия - и качественно, как для разработчика, так и для пользователя, это выход на новый уровень.
Редактировалось: 6 раз (Последний: 6 февраля 2019 в 08:14)
Посетитель
no avatar
Сообщений: 10
По шаблонизатору уточню: подразумеваю шаблонизатор только для шаблона, не для CMS.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3588
@dulu:
Таки это бандлер, gulp/grunt - task-менеджеры. Webpack умеет отлично собирать код и имеет самую богатую экосистему, и, кажется, ляжет на дно нескоро (чего не скажешь про Gulp - последний релиз год назад, многие еще пользуются версией 3.9.1, которой подоспело 3 года). Вместо webpack выбрать browserify/parcel/rollup...? - Почему бы и нет, тоже хорошие инструменты (будем надеятся, проживут долго!).
Это был риторический вопрос. Каждый работает с тем инструментом, в котором разбирается и с которым чувствует себя уверенно. Поэтому многие тащат Gulp ему подобные. Завтра появится "аляСуперWebpaсk" вы не сразу броситесь все проекты переводить на него с Webpack.
@dulu:
По шаблонизатору уточню: подразумеваю шаблонизатор только для шаблона, не для CMS.
Таки да, с уточнением лучше. Так как не каждый пользователь шаблона сможет поменять местами блоки глядя на это
@dulu:
+foreach($list, $item)
+b.blog-item
+e.image(src='$item.image')
+e.H4.title
+e.icon(src='/icon.svg')
| $item.title
@dulu:
Для начала отсеит совсем уже плохие работы - отсылка на уровень вхождения.
Я бы сказал не отсеит, а задержит появление плохой работы на время регистрации автора на гите. Плюсы от использования API гита есть, но в целом он не решит проблем с качеством разработки. Мне ничто не мешает выложить говнокод на гите.
Посетитель
no avatar
Сообщений: 10
За день экосистема к новому инструмента не переметнется, очень уж категорично - но, знаете, да, если спустя три года вебпак умрёт (тьфу-тьфу), то перенесу на новый инструмент, если от этого качество приложения станет лучше.

По гиту и так, и нет. Не гарантия, но и как "капча" сойдёт, имхо.
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проекта
Сообщений: 1360
@dulu:
равняется
Вы взяли кусок кода. По нему проще читать и поддерживать 70% начинающим вебмастерам именно второй вариант с html кодом.

Я бы лишь старался вывести вывод в отдельные файлы, которые не мешали бы общей структуре при обновлении движка и соответственно работало бы на многих версиях.

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

@dulu:
Выбросить дефолтный шаблон на помойку
Чем он Вам помешал?

@dulu:
Связанность здесь сильная, отключить компоненты просто и безболезненно нереально - если нужен только новостник, без сообществ/пользователей/блогов
Цитата с главной "Создайте сайт любой сложности — от визитки, до соцсети
В комплекте есть всё для создания любых веб-сайтов"
Т.е. как бы сразу соцсеть. На то и сделан упор.
Фриланс по Intantcms 1 и 2 версий.Писать в ЛС. Отзывы заказчиков
Посетитель
small user social cms
Сообщений: 780
kirkr:
@dulu:
Выбросить дефолтный шаблон на помойку
Чем он Вам помешал?
demo.hostcms. ru для примера
Посетитель
small user social cms
Медаль
Сообщений: 279
@dulu:
Связанность здесь сильная, отключить компоненты просто и безболезненно нереально - если нужен только новостник, без сообществ/пользователей/блогов
С этим я с вами солидарен, но это не так критично можно выставить ограничение в настройках групп если вам это не нужно сообществ, блоги.... А так на 2-ке можно реализовать сайт любой сложности.

@dulu:
Выбросить дефолтный шаблон на помойку
Ну на холяву и уксус сладкий! А так если по человечески доработать то вполне сойдет на первое время и стоит понимать что так или иначе для каждого проекта нужен индивидуальный шаблон и стандартный не для всех подходит проектов.
Посетитель
small user social cms
Сообщений: 780
В дефолтном фон на белый сменить и тд - все правильно. Зачем дорабатывать если на других cms не нужно дорабатывать ?
http://ov.instantcms.com.ua есть сложность сделать примерно такой без анимации ? Сейчас встречают по одежде и провожают по одежке.
Редактировалось: 3 раз (Последний: 6 февраля 2019 в 10:16)
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проекта
Сообщений: 1360
@elv:
demo.hostcms. ru для примера
Я ж говорю, читайте для чего "Профессиональная, быстрая и удобная система управления сайтом предназначена для создания и поддержки интернет-магазинов, " это у вашего примера, инст совес другое направление.

Если вы пойдете в Энтерпрайз, там вообще третье решение будет. Это как машину обслуживать, самому у дядяи Васи или у другого дяди Вани или купить новую =)
Фриланс по Intantcms 1 и 2 версий.Писать в ЛС. Отзывы заказчиков
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 1783
@dulu:
Значит, Вам не объяснили или не решили за нужное разобрать. Осмелюсь показать разницу через синтетический пример:

Напишу как НЕ профи (но пользователь системы) коротко...
Многое из того что вы предложили выше, понимаю Ваш посыл идти в ногу со временем.

НО:
Как ни странно, это не вдохнет новую жизнь и развитие, а скорее убьет систему развитие и сообщество.
Да, это повысит уровень вхождения, но скорее всего на столько, что входить станет практически не кому...

А к этому еще наложится не возможность мне (читайте большинству) как простому пользователю быстро (без обращения к спецу) сделать мелкие правки при необходимости. А значит проще найти систему понятную для использования и уйти...

Итог - люди просто начнут уходить. ИМХО вот это и называется, "хотели как лучше, получилось, как всегда".
Инстант тем и хорош, что в нем сбалансировано (может быть не совсем) доступность понимания и использования большинству, уходить от этого - убивать систему.

ЗЫ: И да... можно конечно аргументировать, конкурентоспособностью с другими, что новое это прогресс, а старое - застой.
Но ИМХО у каждого должна быть своя ниша, и Инстант занял свою и за это ого выбрали его пользователи.

Добавлю еще показательный пример перехода с 1-й на 2-ю ветку...далеко не все решили переходить... некоторых даже такие перемены не устроили...
Редактировалось: 2 раз (Последний: 6 февраля 2019 в 10:44)
Посетитель
small user social cms
Сообщений: 780
kirkr почему не может быть современный и красивый (для этого сменить фон и убрать синие блоки) шаблон для блога, визитки, новостного сайта или доски объявлений ?
https://demo.instantcms.ru/board почему на демо нет больше полей для фильтра ? Почему в каталоге нет Поля join ?

kirkr чем шаблон новостного сайта, доски отличается от шаблона интернет-магазина ?

Я против goodmade ничего не имею. Почему instantcms2. ru с таким содержанием ?
Редактировалось: 6 раз (Последний: 6 февраля 2019 в 11:02)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3588
@elv:
Почему в каталоге нет Поля join ?
В каталоге, много чего нет, видимо порог вхождения не прошел ))).
Посетитель
small user social cms
Сообщений: 780
Loadырь:
видимо порог вхождения не прошел
а я два года думал как сделать по-человечески фильтрацию по записям.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.