В этом выпуске поговорим о фронтенд-фреймворке.
«Если я являюсь лидером на переднем углу», - это серия стев, которая говорит о некоторых моих пониманиях, когда я нахожусь в своей позиции и хочу найти работу. Есть только небольшие отношения с лидером на переднем классе, существует не так много сухих товаров, но подходит для всех возрастов, не обманывайтесь титулом.
Схема статьи
- Что такое кадр?
- История развития фронтенд-фреймворка
- Каковы существующие рамки?
- Расскажите о построении фреймворка фронтенд-команды
- Расширенная информация
Что такое кадр?
Это не первый раз, когда я говорю о «фреймворке». Является ли React фреймворком? Является ли Vue фреймворком? Строго говоря, нет, это просто решение для представления, и единственное, что здесь можно считать фреймворком, — это Angular.
Если внутренняя структура вращается вокруг数据存储
’, то основой фронтенд-фреймворка является библиотека представлений, ведь основная работа фронтенда — это представление. Вот почему внешняя экосистема обычно вращается вокруг библиотек представлений. так,Основой внешнего интерфейса является библиотека «представления»..
По сравнению с бэкенд-фреймворками (Rails, Django, Laravel...) зрелых интерфейсных фреймворков не так много.
Что такое кадр?
См. пример. ОткрытымUmiJS, который описывает себя как:
Подключаемая платформа корпоративных приложений React
ключевое словоПредприятие. Что такое бизнес-класс, я сам не знаю. Все, что я знаю, это то, что React не говорит, что это корпоративный уровень, как и Koa, Express, ноEggjsиUmijsговорят, что ониКорпоративная структураAngular также часто ассоциируется с понятием уровня предприятия, есть Java на уровне языка.
Просто сравните их, чтобы знать, я думаю, что уровень предприятия означает, что этоПредприятие-ориентированное производство, целью которого является повышение производительности предприятий.. Подводя итог, можно сказать, что он имеет следующие характеристики:
- Это интеграция эффективных + зрелых решений
- Сосредоточьтесь на всей производственной цепочке, а не на отдельном звене
- Есть более сильные ограничения и ограничения
- более жесткие требования. Производительность, масштабируемость (для удовлетворения различных потребностей), надежность, стабильность, доступность, безопасность
- стандартизация
- Проверено в производственной среде, есть многочисленные гарантии дела
В конечном счете, это по-прежнему вопрос затрат. Наиболее существенной целью системы является снижение различных затрат. Позволить меньшему количеству людей делать больше с гарантированным качеством, сниженными затратами на обслуживание и гарантированной постоянной оптимизацией и развитием.
Дайте определение.
Создание системы фреймворка переднего плана неотделимо от зрелости проектирования переднего плана и распространения «лучших практик». Вы можете думать о фреймворке как о интегрированном решении, которое обеспечивает «лучшую» конфигурацию внешнего интерфейса. Все, что нужно сделать разработчикам, — это заполнить свой собственный бизнес-код в соответствии с ограничениями этой структуры.
выгода:
- Повышение эффективности. Пусть разработчики сосредоточатся на развитии бизнеса
- Стоимость обучения снижена. Фреймворки инкапсулируют много низкоуровневой сложности
- более сильные ограничения. Все действия необходимо выполнять в соответствии с рамочным регламентом, чтобы не делать плохих поступков и глупостей. Более жесткие ограничения также означают, что фреймворк более интегрирован, больше вещей можно делать внутри фреймворка, но он менее гибкий.
- качество продукта. Многие вещи автоматически обрабатываются внутри фреймворка, такие как оптимизация производительности, обработка безопасности
- ремонтопригодность. Все проекты разрабатываются в соответствии с согласованными и стандартизированными спецификациями, и их удобно обновлять и повторять. Это важно для удобства обслуживания командных проектов.
вред:
- гибкость. Не всем подходит, рекомендации немного произвольны
- гистерезис. Конкретные программы могут быть задержаны.
- Большой и полный. Может быть слишком тяжелым для некоторых предметов.
История развития фронтенд-фреймворка
Стадия просветления фреймворка
До того, как React и Vue стали популярными, уже существовало множество «интерфейсных фреймворков», таких как Angular, Ember, Backbone...
Большинство из них были вдохновлены бэкенд-фреймворками, которые были самыми популярными бэкэнд-фреймворками, такими как Rails. Так что вы увидите на них множество теней back-end фреймворков.
Тем не менее, многие модели бэкенд-разработки немного перегружены во фронтенде. Более важная причина заключается в том, что предварительная разработка незрела, а фундамент относительно слаб, что затрудняет поддержку разработки надстройки.
дикий период роста
С ростом популярности NodeJS и все более мощного языка JavaScript фронтенд-инжиниринг постепенно углубляется. После появления такой библиотеки представлений, как React, многие вещи были сломаны и переработаны.
Множество библиотек расцветает вокруг трех основных библиотек представлений, а внешний интерфейс также расширился до областей, отличных от браузеров. Люди с удовольствием строят колеса и используют новейшие технологии.
Из-за быстрого развития так называемые фреймворки/лучшие практики трудно получить широкое признание или они легко устаревают, и каждая команда больше стремится создавать свои собственные комбинированные решения, которые часто ограничены командой.
Период интеграции с фреймворком
Почти каждая команда повторяет этот путь:Стабильный технологический стек, инженерная конструкция, базовая библиотека/библиотека компонентов, внедрение собственных лучших практик.
Если у команды нет определенных инженерных возможностей и ресурсов, систематизировать и органично связать эти разрозненные практики на самом деле сложно, еще сложнее долгосрочное и эффективное сопровождение и обновление, и большинство из них сдается на полпути.
Сейчас фронтенд-разработка начала выходить на плато. Таким образом, унифицированная передняя «рама» снова попала в поле зрения людей. как автор УмиЮн Цяньсказал:Сейчас эпоха индустриализации, фреймворк как волшебный шар, собирает воедино различные стеки технологий, обрабатывает их и выплевывает пользователям для поддержки бизнеса.
Изображение выше взято из
Платформа предназначена для интеграции различных решений и инфраструктуры стека технологий, а также для предоставления стандартных и согласованных интерфейсов, что позволяет разработчикам сосредоточиться на развитии бизнеса.
Каковы существующие рамки?
Фреймворк разработки интерфейса должен охватывать все аспекты цепочки разработки интерфейса. Содержит полезные рекомендации по ограничению и упрощению развития бизнеса..
Давайте взглянем на существующие «интерфейсные фреймворки» Сейчас наиболее популярными «фреймворками» в сообществе являются Angular, Next.js, Nuxt и Umi. Мы сравним некоторые из их функций по горизонтали и обнаружим, что они в основном содержат следующие вещи:
Такой же, как стандартный размер одежды. Фреймворки сообщества с открытым исходным кодом представляют собой общие типы фреймворков, и вполне предсказуемо, что они не могут удовлетворить требования всех команд. Нам часто нужно адаптировать структуру к нашей бизнес-ситуации.
В ответ на эти потребности разные системы имеют разные стратегии выживания:
- более открытый. Фреймворк предоставляет только основные функции с добавлением почти всего, что вы можете сделать.Механизм плагина. Плагины могут мешать всему жизненному циклу фреймворка, и вы можете настроить свои собственные плагины для неудовлетворенных потребностей.
- более решительный. То, что я предлагаю вам, является лучшим, я стараюсь максимально удовлетворить вас, и вам не нужно слишком беспокоиться об остальном, и не нужно беспокоиться об этом, просто сосредоточьтесь на своем бизнесе.
У нас также есть собственная стратегия выбора:
- Сделай сам. Например, у команды Dachang есть ресурсы и богатый практический опыт. У них есть возможность систематизировать свой «лучший опыт». Они решат создать свою собственную структуру. При этом они также с удовольствием делятся своим опытом, а также могут использовать сообщество для улучшения своей работы. Отдельные лица, исходя из цели обучения и подбрасывания, также могут составить набор.
- На основе расширений фреймворка с открытым исходным кодом. Вы можете использовать платформу с открытым исходным кодом в качестве основы для расширения и развития в соответствии с ситуацией в вашей команде.
- Используйте фреймворк с открытым исходным кодом. Платформа с открытым исходным кодом может удовлетворить многие универсальные потребности, подходящие для простых сценариев приложений.Мы выбираем фреймворк по двум основным причинам: ① мы хотим повысить эффективность работы; ② нам нужен стандарт. Ради стандартов некоторые вещи действительно могут быть скомпрометированы. Что еще более важно, эти фреймворки постоянно развиваются и развиваются, так что технология нашей команды также может развиваться и развиваться вместе с ними бесплатно. Считайте стандартную передовую практику разработки фреймворков с открытым исходным кодом стандартом.
я всегдаВерьте, что профессиональные люди делают профессиональные вещи. Будьте хороши в аутсорсинге и освободите себя для важных дел. На большой фабрике есть специальная команда, которая занимается созданием инструментов и инфраструктуры, а инфраструктура с открытым исходным кодом в сообществе также поддерживается большой группой талантливых людей, и обычно итерация разработки очень активна. Поэтому решения, которые уже есть у сообщества, можно использовать напрямую.Не стройте колесо самостоятельно, потому что обычно у вас не так много энергии.
Расскажите о построении фреймворка фронтенд-команды
Где время, потраченное на переднее развитие?
Изображение выше взято из
Для фронтенд-команды интерфейсный фреймворк с открытым исходным кодом — это всего лишь основа, и он включает лишь небольшую часть фронтенд-разработки, это как корабль. Вы плывете через Атлантику, и впереди много работы, тесное и эффективное сотрудничество, надежная логистика, цель и направление, твердое руководство... долгий путь.
Теперь поговорим об «обобщенной» фреймворковой системе, которая интегрирует собственный бизнес и включает в себя полное звено фронтенд-разработки.Фокус переместился с фронтенд-приложений на фронтенд-командные R&D-системы..
Девятиэтажная платформа начинается с усталой почвы. Построение системы фреймворка клиентской команды представляет собой постепенный процесс, начиная с инфраструктуры, за которой следует комбинация стека технологий разработки приложений, затем система компонентов, за которой следует план развития бизнеса верхнего уровня... Верхний уровень и нижние слои основаны на совместном построении полной каркасной системы.
Я думаю, что фронтенд-команда может следовать этой иерархической структуре и поэтапно выполнять задачи построения.
Фаза 1: Начальная часть / Инфраструктура
На самом базовом этапе основное внимание уделяется созданию начальной инфраструктуры. Этот этап относительно зрел, и в сообществе есть много готовых решений, таких как Umi, Next.js, Vue-CLI, Create-React-App и т. д. Основное содержание:
Этап 2: Интеграция решения для разработки приложений
При улучшении инфраструктуры портфель стека технологий разработки приложений команды также должен стабилизироваться и стать частью структуры. Эти комбинации также очень важны, что повлияет на построение компонентов и развитие бизнеса верхнего уровня. Основное содержание:
Этап 3: Компонентная архитектура
Компонентизация в настоящее время является основным режимом разработки интерфейса, здесь еще много работы, и есть еще много возможностей для улучшения.
Вся система компонентов также представляет собой многоуровневую структуру:
- Основные компоненты. Дно, он показывает более высокую степень многоразовой, тем более распространенным. Ant-Design, Element-UI, IView, Material-ui принадлежит к этой базовой библиотеке компонентов, способность команды может разработать линию со своим собственным стилем библиотеки компонентов дизайна.
- компоненты бизнеса. Компонент, инкапсулированный поверх базового компонента и связанный с собственным бизнесом. Обычно они абстрагируются от повторяющихся бизнес-сценариев.
- блокировать. Далее становится сложно организовать с помощью модульных компонентов. Так кто-то (Али фронтенд) предложил концепцию 'блока',Вы можете думать о «блоках» как об фрагментах кода, образцах кода, шаблонах кода...Так это не новая концепция? Это еще не конец!Блок также должен быть сопоставлен с «рынком блоков», чтобы показать его полезность. Рынок блоков — это платформа для обмена фрагментами кода, которая поддерживает большое количество блоков, пытаясь охватить наиболее распространенные сценарии использования. Для разработчиков это найти блок, максимально соответствующий их собственной сцене, скопировать его и немного изменить. Это идеальная практика философии программирования 'Ctrl+C, Ctrl+V'..
- страница. И блок почти, быстро генерировать страницы и маршрутизацию. Маршрутизация стилей конвенции может создать автоматизацию страницы, чтобы принести некоторое удобство.
- макет. Например, общий макет фона.
- проект. Общая структура проекта. Шаблоны проектов можно быстро создать с помощью «скаффолдинга».
летающий лед
Такие операции, как создание блоков и страниц, требуют некоторой помощи инструментов. Например:
- Строитель. Создание компонентов на разных уровнях
- проект (шаблон проекта). Обычно известный как скаффолдинг, он поддерживает различные типы проектов: приложения, библиотеки компонентов, программные библиотеки, плагины.
- страница/маршрут
- блокировать
- компоненты
- модель данных
- инструмент визуализации. Инструменты визуальной оркестровки проектов, такие как Fly Ice.
Четвертый этап: открыть вверх по течению и вниз по течению
Фронтенд — это только часть процесса НИОКР, просто фронтенд самодостаточен, без поддержки вышестоящих и нижестоящих ресурсов сложно далеко уйти.
Для внешнего интерфейса обычно восходящий поток относится к пользовательскому интерфейсу, а нисходящий относится к серверной части.
Для пользовательского интерфейса. Упомянутая выше система компонентов на самом деле основана на стабильном, последовательном и унифицированном языке дизайна пользовательского интерфейса. Иначе все пустые разговоры. Поэтому мы требуем, чтобы команда дизайнеров пользовательского интерфейса имела хорошие спецификации дизайна, была способна связываться с системой компонентов внешнего интерфейса и мягко выполнять итерации.
для бэкенда. Это может способствовать созданию более стандартной парадигмы интерфейса, инкапсуляции общих сервисов (способствующих повторному использованию бизнес-компонентов), более глубокому среднему уровню бизнеса, BFF...
Открытие восходящего и нисходящего потоков также играет очень большую роль в содействии высвобождению производительности переднего плана.
Будущее: ИИ?
ИИ автоматически генерирует интерфейсный код? Он слишком высокий, давайте дадим ему микрофон:Как разумно генерируется 79,34% кода модуля Double 11? 》, поскользнулся