Frontend «Платформа». Введение.
Что такое «Платформа»? Библиотека? Может Фреймворк? Возможно Инфраструктура и/или Архитектура? 🤔 Конечно, ничто из перечисленного, но всё сразу в одном «флаконе» 💁🏻♀️
«Платформа» — это среда, обеспечивающая работу ваших проектов всем необходимым, от инфраструктуры до архитектуры.
Уверен, у всех вас/нас она есть в том или ином виде, либо готовом, либо в виде набора реп, пакетов, инструкций и т.п., которые помогают развернуть и запустить новый проект/либу.
Конечно она не только нужна чтоб поднять проект, «платформа» должна быть средой, в которой он «вариться», позволяя вам сконцентрироваться только на написании бизнес логики, без остального головняка.
🤔 Звучит логично, но всё равно непонятно!
Поэтому давайте разберем, из чего состоит средне статический пакет и даже проект. Конечно я что-нибудь упущу, но это не столь важно, моя задача показать направления, за которые должна отвечать «Платформа» (по крайней мере в моём понимании):
- 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 И чтобы пост был не такой скучный, обязательно посмотрите, как мы полтора года назад пытались обсуждать схожую тему, а точнее модные в то время платформенные команды ;]
📣 Канал: https://t.me/artifact_project
🗃 GitHub: https://github.com/mail-core