Frontend «Платформа». Введение.

Lebedev Konstantin
2 min readJan 22, 2021

Что такое «Платформа»? Библиотека? Может Фреймворк? Возможно Инфраструктура и/или Архитектура? 🤔 Конечно, ничто из перечисленного, но всё сразу в одном «флаконе» 💁🏻‍♀️

«Платформа» — это среда, обеспечивающая работу ваших проектов всем необходимым, от инфраструктуры до архитектуры.

Уверен, у всех вас/нас она есть в том или ином виде, либо готовом, либо в виде набора реп, пакетов, инструкций и т.п., которые помогают развернуть и запустить новый проект/либу.

Конечно она не только нужна чтоб поднять проект, «платформа» должна быть средой, в которой он «вариться», позволяя вам сконцентрироваться только на написании бизнес логики, без остального головняка.

🤔 Звучит логично, но всё равно непонятно!

Поэтому давайте разберем, из чего состоит средне статический пакет и даже проект. Конечно я что-нибудь упущу, но это не столь важно, моя задача показать направления, за которые должна отвечать «Платформа» (по крайней мере в моём понимании):

  • GIT — управление версия, интеграция с “Jira”, …
  • NPM — зависимости, publish/semver, scripts, …
  • CLI — Command Line Interface (утилиты, миграции и …)
  • Линтеры — кода, стилей и бог ещё чего ;]
  • Дашборды — RUM (vitals, api, js-errors, memory/traffic), эксперименты и …
  • Логирование — js-ошибки, api, custom и …
  • Тесты — Unit, E2E, Mutation и …
  • Playground — например Storybook
  • API — Общение с RPC, REST, GraphQL и …
  • DataModel и UI Layer — ну например Redux + React
  • Переводы — подход и сервис, который будет отвечать за i18n
  • Сборка — webpack, rollup, esbuild короче всё что собирает
  • CI — Continuous Integration, который будет тестировать, собирать и раскладывать, в чатики писать
  • и т.д.

Это список очень условный, каждый может написать свой, но суть в том, что и в вашем списке должно быть всё что угодно, но не код проекта, т.е. то, что будет контролировать «платформа» на протяжении всего жизненного цикла проекта, от рождения до деплоя и жизни в бою.

Кроме этого, платформа должна быть максимально универсальна и подходить как для Проекта, так и Пакета/Либы/Тулзы/💁🏻‍♂️.

Очень надеюсь, что стало хоть как-то понятно, на что мы замахнулись. Поэтому пока на этом закончу и если есть какие-то вопрос или замечания, пишите!

PS И чтобы пост был не такой скучный, обязательно посмотрите, как мы полтора года назад пытались обсуждать схожую тему, а точнее модные в то время платформенные команды ;]

--

--