Есть ли пример как организовать приложение с использованием шаблонизаторов bemhtml или bh с bemhistory на клиенте? Цель реализовать проект одностраничного приложения польность по БЭМ методологии и с использование минимального количества внешних библиотек.
Есть демонстрационное приложение bem-flashcards, сделанное с помощью
bem-history
. Надеюсь поможет.@uradvd85 не хотите попробовать bnsf? Есть вот такая вводная на хабре.
Спасибо, буду смотреть!
посмотрел bnsf, к сожалению заточен под node.js у нас проект рассчитан на php laravel, скорее всего прийдется реализовывать полность своими средствами БЭМ и bem-bh и как то пытаться это все красиво обьединить
@zxqfox Лёша, твой выход ;)
@uradvd85 Вообще, bnsf все равно, на чем у вас бэкенд. Предполагаемая схема работы такая где front-end - это bnsf, а back-end - это ваш laravel. Другой вопрос - подходит ли такая схема вам.
node.js прослойка=(, лишние издержки=( хотелось бы использовать node.js и не использовать php но на данный момент нет такой возможности
Продолжаем ждать @zxqfox с его реализацией bh на php)
Можно попробывать сделать фреймворк или заготовку типо project stub для одностраничных веб приложений, чтобы он был только из клиентской части, и принимал данные исключиельно в виде json, тогда все равно какой будет серверная сторона и легко можно начать работать с БЭМ для одностраничных веб приложений, я такое видел для backbone генератор на yo, для БЭМ есть использование его с angular. Без доп. библиотек, ничего нет
@uradvd85 мне кажется вы зря боитесь прослойки в виде node.js. здесь издержки вполне могут быть оправданы изоморфной шаблонизацией.
@apsavin реализация отличная уже кое что начал пилить=) вот пока еще думаю как красиво это в laravel запихнуть
@apsavin кстати, а будет в
bnsf
возможность отдачи статики с одного сервера, а не с двух на разных портах?@Guria предполагается, что на продакшене у вас статику отдает nginx или она вообще на другие домены / cdn раскладывается. Для разработки текущая схема мне кажется вполне удобной. Так что ничего в этом смысле менять не планировал.
А вам зачем?)
@tadatuta ;-) А я то думал...
@uradvd85 А чем не нравится bh-php?
@Guria Javascript не боюсь, боюсь кучу технологий которые потом надо будет поддерживать, обновлять, допиливать ну вы же знаете.... как это бывает в долгоживущих проектах....
@zxqfox Кто сказал что не нравится, я его использую, все круто!
Ребятки) 100500 проектов в нашей студии уже сделано с прослойкой из
nodejs
все прекрасно работает. Причем мы его и в зад и в перед ставим))) и сPHP
и сRuby
и просто одинnodejs
. Уже год "полет нормальный".@voischev а какая нагрузка? для чего используете, просто сайт? магазин?
@uradvd85
Вот тут есть часть проектов https://github.com/bem/bem-forum-content-ru/issues/144#issuecomment-67220127 Вот на той неделе запустили http://ihvoronezh.com. На этой неделе еще один запускаем. Больше всех мне нравится наверное вот такой проект http://polavkam.ru или http://myweddy.ru
А что такое нагрузки ;) Чем смысл вопроса?
@voischev по нагрузке имею ввиду сколько у вас онлайн на сайте, и в конечном итоге запросов в секунду к серверу? у нас до 200 в секунду бывает на пиках, в среднем 50-70, поэтому дополнительная прослойка, потребует доп. расходов и обслуживания, от чего хотелось бы избавится. Может я чего то не понимаю, обьясните, готов выслушать знающих людей!
@uradvd85 Самый правильный вариант — поднять тестовое окружение с прослойкой, реализовать какой-то один шаблон и пострелять по нему большим количеством запросов. Потому как данные у вас свои, методы шаблонизации тоже. Плюс часть данных, скорее всего, можно кешировать и не гонять каждый раз полный цикл получения данных.
@uradvd85 у нас конечно нет таких нагрузок. Практически все наши проекты с nodejs позади ruby, такая схема позволяет написать один файл сервера nodejs который просто слушает все запросы и отдает html. В таком случае если вы уверены в том что у вас написано на php на nodejs остается толко время на шаблонизацию без всякой доп. логики. Кеш должен все решить.
@voischev Да, кеширование может решить проблему! @dab Надо попробывать, на коленке как говорится собрать, и посмотреть=)