Frontend, Какой использовать подход для проекта?

Итак, суть в том. Что уже есть сервис который успешно работает.
Сейчас стоит задача разработать лендинги(скорее даже виджеты), для чатбота Telegram.
В дальнейшем планируется создать новую версию Личного кабинета SPA (смотрим в сторону ангуляра), где также будут использоваться эти самые виджеты.

Но вернемся к тому что нужно разработать виджеты, и задача в том чтобы придумать оптимальный подход к разработке.
Приоритеты у заказчика:
Скорость загрузки виджета.
Скорость разработки и внедрения.

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

2. Взять за основу css фремворк к примеру bootsrap или fundation, и уже самим верстать компоненты которые будут использоваться в виджетах, это уже даст больший простор для оптимизации скорости, и позволит самим решать когда и какие дополнительные библиотеки нам использовать.

3. Вариант который на мой взгляд будет самым лучшим, это взять и самим написать css фреймворк заточеный под наши нужды. Это предоставит нам возможность иметь общую структуру стилей которые мы можем использовать в SPA, и при том иметь отдельные изолирование компоненты, которые можно будет отдельно загружать при этом исключая стили библиотеки и т.д. которые будут использовать другие виджеты. И самое главное это позволит свести к минимуму вес загружаемого контента, минимум js, минимум css. Минус только в том, что порог вхождения новых разработчиков будет ниже чем первых двух вариантах. А также займет дополнительное время на написание сборщика под этот проект, и написание документации.

Итак вопрос в том, что может кто-то даст совет, или подскажет еще какой либо вариант, возможно я что-то упускаю, т.к. для меня это первый такой необычный проект.
А не просто сайт где все понятно и просто. Для меня 1 вариант был бы хорошим если бы нам нужно было просто разработать SPA. Но ребята хотят сделать виджеты, и при этом они хотят чтобы мы потом с минимальными потерями могли быстро их внедрять в SPA.
И сейчас я вижу это так, что при первом варианте пользователь условно будет грузить каждый раз ~2mb не нужного хлама.
Во втором : 1mb
В третьем: 0.3-5mb
P.s. Чатбот должен присылать ссылку, которая открывается в браузере.

Спасибо за внимание.
  • Вопрос задан
  • 478 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Cyber_bober
А в чем тут собственно проблема? Возьмите для бутстрэпа скачайте тэмплэйт админки, как понимаю вам нужен дэшбоард - их миллиард. Бутстрэп можно скомпилировать оставив только нужные компоненты. в 3 случае мне кажется вы очень долго будете тестировать фронтэнд
Ответ написан
FeNUMe
@FeNUMe
Раз уж речь идет о SPA, то вы явно будете переписывать/дорабатывать бекенд для работы через API, а значит ничего не мешает написать клиенты на чем угодно что уже знают ваши разработчики. Естественно в идеале выбирать один инструментарий для использования во всех клиентах(веб/мобильный/десктоп). Из популярных сейчас вариантов можно посмотреть на ReactJS/ReactNative, но стоит учитывать что для вашей задачи это может быть просто оверкил.
Для оформления как раз лучше второй вариант, то есть готовая популярная css-библиотека, для которой просто написать свои темы.
Переживать о размере библиотек в SPA точно не стоит: первая загрузка будет достаточно долгой(не забудьте сделать индикацию), но потом все будет браться из кеша, да и страница обновляться ведь не будет, все данные будут подгружаться по надобности и рендерится уже на клиенте.

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

Войдите, чтобы написать ответ

Похожие вопросы