О споре между передовыми технологиями и фронтенд-инжинирингом

JavaScript внешний фреймворк

предисловие

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

Я видел, как некоторые коллеги, работающие над алгоритмами в Zhihu, обсуждали разницу между алгоритмами и разработкой алгоритмов. Что касается исследования алгоритмов, то это не работа инженеров-алгоритмов. Для инженеров-алгоритмов это больше касается настройки параметров. Конечно, предпосылка это означает, что вы понимаете алгоритмы.Но каждый в нашей отрасли знает, что, хотя инженерия и бизнес являются наиболее широко используемыми путями, глубина и широта технологии со временем будут затронуты.

Для инженеров-программистов или фронтенд-инженеров, если нет выхода для инженерии и бизнеса, как бы ни был богат бизнес-опыт, даже базовые собеседования не пройти, какой смысл накапливать опыт работы?

Если вы когда-либо занимались менеджментом, я полагаю, у вас должен был быть такой менталитет.При наборе людей вам нравятся молодые люди с идеями и жизненной силой, но когда вы сталкиваетесь с давлением со стороны бизнеса, вы по-прежнему предпочитаете тем пожилым людям, которые знакомы с бизнес делает свою работу Я чувствую, что у таких типов часто не хватает потенциала, но они действительно могут справиться со всем.

Деловой опыт ничего не стоит, и об этом часто упоминают в интервью, но в реальной работе именно человек с наибольшим деловым опытом отвечает за направленность бизнес-команды.Почему возникает такое противоречие?Этот вопрос беспокоил Я. До недавнего времени у меня просто был некоторый опыт, и я решил поделиться им со всеми.

текст

Что такое интерфейсные технологии?

Если есть такие дисциплины, как технологии фронтенд-разработки, фронтенд-технологии исследований и разработок и приложения, какой контент, по вашему мнению, будет включать? технологии, основным содержанием должны быть эти

  • Основы Html Css JavaScript
  • Технология разработки веб-приложений

Таким образом, с этой точки зрения вы обнаружите, что более 90 % контента в вашей повседневной работе не имеют ничего общего с передовыми технологиями.

  • Проведите совещание по анализу потребностей
  • Открытое совещание по рассмотрению проекта
  • Провести обсуждение технического решения
  • Межпроектная коммуникация при запуске
  • Сделайте это и напишите две строки css
  • написал функцию
  • Упаковано в тестовую среду и отлажено
  • Изменено два div

Бессмысленно?, Так как ежедневная работа не имеет никакого отношения к front-end технологиям, то улучшить какую либо техническую глубину и широту естественно невозможно, только одно можно получить на собеседованииБогатый бизнес-опыт, нет проблем с оценкой бизнеса.

Так что же такое фронтенд-технология или что называется фронтенд-технологией?

Ответ на самом деле выше, просто разберите две категории

  • Основы Html Css JavaScript
    • Семантика HTML, исследование стандарта w3c
    • Исследование стандартов CSS
    • Исследуйте язык JavaScript, участвуйте и вносите свой вклад в новые предложения по синтаксису

Эти три штуки не имеют ничего общего с большинством людей, и исследовательская работа этой базовой технологии обычно не ложится на обычных людей.

  • Технология разработки веб-приложений Это море
    • Исследование технологии визуализации данных (d3..)
    • Исследование технологии инкапсуляции кода работы API браузера (от операционной системы до работы с различными веб-приложениями, относящимися к этой категории)
      • манипулирование домом (React vue...)
        • Исследование технологии упаковки кода в рамках определенного стека технологий (redux, vuex...)
      • webapi (потоковая передача, анимация...)
      • Обработка совместимости браузера (список браузеров, автопрефикс...)
      • ...
    • Исследование технологии упаковки кода JavaScript (к этой категории относится lodash)
    • Исследование технологии компиляции и выполнения JavaScript (TypeScript babel v8 и т. д.)
      • Исследование технологии упаковки кода под конкретный стек технологий (babel-plugin...)
    • Исследование компиляции и исполнения css (scss, less, postcss...)
      • Исследование технологии инкапсуляции кода под конкретный стек технологий (postcss-puglin...)
    • Технология генерации кода обучения
      • Быстрая сборка
      • DSL
      • Графическое программирование
      • Система динамической конфигурации
    • Исследования в области технологий автоматизации
      • Непрерывная интеграция

      • сборка пакета

      • развертывание выпуска

      • Анализ данных и мониторинг

      • Исследование технологии упаковки кода под конкретный стек технологий (плагин webpack, loder...)

Вам может быть немного любопытно, чего вам не хватает, например, nodejs, rn flutter и т. д.? Если вы читали много статей, которые я написал ранее, вы должны понять мою точку зрения.Ничто из вышеперечисленного не относится к категории фронтенд-технологий в строгом смысле, включая nodejs

Первоначальное намерение автора nodejs разработать nodejs не для разработки интерфейсной технологии Применение nodejs в технологии автоматизации является побочным эффектом продвижения технологии модульной упаковки внешнего кода.

Если вы не делаете ничего, связанного с сервером, nodejs почти прозрачен для вас, только для выполнения

npm i hello-world

Приходите и давайте проверим, относится ли вышеизложенное к вашей повседневной работе, не расстраивайтесь, хотя я знаю, что 80% людей ответят Нет!

Да, большая часть ежедневной фронтенд-работы не имеет ничего общего с фронтенд-технологиями, единственное, что вам нужно делать, это использовать для решения проблем фронтенд-технологии, которые вы знаете и осваиваете, а не проблемы этих технологий, но бизнес-требования.

Когда мы обсуждаем техническую глубину человека, мы на самом деле говорим о том, достаточно ли у вас практики, достаточно ли глубины и полного понимания в любой из вышеперечисленных технических областей.

Если у вас есть глубокое и полное понимание, вы все равно можете читать исходный код и статьи перед вами и решать его, думая и понимая.

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

Это же не бизнес-команда!!!

В бизнес-команде ваша самая большая возможность, вероятно, состоит в том, чтобы изучить технологию упаковки кода в рамках определенного стека технологий, такого как плагин webpack, плагин babel и т. д., но высокая вероятность также очень проста.

Так что же, ведение бизнеса и написание бизнес-кода — это всего лишь инструмент, у которого нет выхода, символ ресурса — кандидат на устранение производительности?

Честно говоря, исходя из моего многолетнего опыта и примеров вокруг меня, 90 % фронтенд-писательского бизнеса, 80 % из 90 % сталкиваются с риском постоянного исключения, как правило, после узла 5 лет работы, и От крупных заводов до средних заводов, от небольших заводов до аутсорсинга, независимо от того, занимаетесь ли вы управлением или технологиями, с ухудшением рабочей среды почти невозможно избежать участи все хуже и хуже.

Но если это результат моих размышлений, то я не буду писать эту статью, потому что дальше я собираюсь рассказать о фронтенд-инжиниринге, фронтенд-инжиниринге и других понятиях, которые широко не упоминаются.С моей точки зрения , фронт-инжиниринг, о котором в настоящее время говорят, это все еще только ветвь вышеупомянутой технологии, которая относится к категории технологий автоматизации.Сказать, что это заниматься инженерией, на самом деле заниматься технологиями. инжиниринг, о котором я хочу поговорить, — это настоящий инжиниринг, инженерия, тесно связанная с бизнесом.

Поскольку я тоже из многолетней бизнес-команды, я думал о том, как сломать игру. Я считаю, что то, что занимает 90% энергии фронтенд-инженеров, не может быть таким бессмысленным и обреченным на провал работы. быть здесь что-то не так или не научно.

Для этого давайте перейдем к самой важной части этой статьи.

Что такое фронтенд-инжиниринг

Что такое фронтенд-инжиниринг?

В университете есть специальность "программная инженерия", а в аспирантуре есть специальность "программная инженерия". , инженеры-программисты стоят выше программистов.под системным аналитиком.

Давайте рассмотрим классику в области программной инженерии.

Из всех областей технологии, упомянутых в предыдущих главах, или вы помните, что среди библиотек JavaScript, которые вы использовали, есть библиотека, которая дает вам возможность быстро применять шаблоны проектирования?

Я думаю, что не должно быть, потому что шаблоны проектирования сначала были написаны на Java, а в последующие годы кто-то перевел эти шаблоны на JavaScript, но код старый, или некоторые шаблоны проектирования были решены естественными особенностями языка JavaScript.

Включая Java, постоянно ведутся дискуссии о том, доступны ли шаблоны проектирования. Так являются ли шаблоны проектирования технологией или могут ли шаблоны проектирования стать непосредственно используемой технологией, такой как React? Vue?

Очевидно, что нет, потому что шаблон проектирования — это всего лишь абстрактный метод, который представляет собой шаблон быстрого мышления, используемый в разработке программного обеспечения и организационной инженерии программного обеспечения с использованием объектно-ориентированного языка.

Этот тип шаблона можно использовать на любом языке, который соответствует условиям использования шаблона, например, OC Java JavaScript и т. д.

Следовательно, то, что происходит с фронтенд-инжинирингом или фронтенд-инжинирингом, отличающимся от фронтенд-технологии, определение, которое я даю:

Фронтенд-инжиниринг — это использование фронтенд-технологии для организации разработки и сопровождения клиентского кода.

Так где же выход для людей, которые занимаются фронтенд-инжинирингом и бизнесом?Или помимо поиска руководящей должности, что такое фронтенд-технология программирования в широком смысле, которую мы можем практиковать и исследовать?Мы называем себя фронтенд-инженеры, но после стольких лет Сколько мыслей было потрачено на фронтенд-инжиниринг?

Технология фронтенд-программирования в широком смысле включает в себя фронтенд-технологию и фронтенд-инжиниринг.

После того, как я это скажу, меня, наверное, обрызгают. Легко сказать, но как это сделать? Неужели все станут Бандой четырех?

Как это сделать?Это трудно сделать.На самом деле, исследование front-end проектирования намного сложнее, чем front-end технологий.Почему?

Поскольку интерфейсная технология является стандартной, возьмем в качестве примера сложную спецификацию EcmaScrip, если вы достаточно усердны, вы также можете ее прогрызть. Или возьмем в качестве примера двигатель V8, его нелегко разжевать, и я боюсь, что исходный код хрома был разжеван, вы все еще хотите добавить V8?

React Fiber легко жевать, и его нелегко жевать. Но это технические стандарты, и они детерминированы в течение определенного периода времени. Пока у вас есть достаточно времени, вы можете их пережевывать.

Тем не менее, бизнес крайне нестабилен, а фронтенд-инжиниринг, построенный вокруг бизнеса, также крайне нестабилен, поэтому действительно сложно достичь высот во фронтенд-инжиниринге со стороны бизнеса.

Если вы занимаетесь front-end технологиями, конечный путь — углубиться в front-end инфраструктуру, если вы занимаетесь front-end инжинирингом и бизнесом, то должен быть и путь, ведущий к front-end бизнес-архитектуре. .

Говоря об этом, я должен упомянуть две ветви архитектуры технологии внешнего программирования.

Перспективная внешняя инфраструктура и совершенно непонятная внешняя бизнес-архитектура.

На некоторых крупных заводах в последние годы стало популярно строить во фронтенд-команде специальный отдел и фронтенд-инфраструктуру.На самом деле это не новинка.На мой взгляд,это признак того,что разработка Передовые технологии совершенствуются. Передовые технологии позволяют проводить более эффективные исследования по объединенным инвестициям ресурсов, что соответствует организационной мощи.

Но еще одна архитектура ветви, передняя бизнес-архитектура, вы, возможно, слышали, но в основном нет такого человека или таких позиций в архитектуре организации различных команд. Если есть какие-либо слова, пожалуйста

Front-end бизнес-архитектор

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

Как вы понимаете?Если вы занимаетесь или хотите заниматься этой работой, добро пожаловать на общение со мной.Эта статья пока не будет углубляться.

Вернемся к широкому фронтенд-инженерному бизнесу.

Извлечение компонентов и резюме Дафа на самом деле являются тупиком.

Можно сказать, что развитие фронтенд-сообщества за последние 10 лет представляет собой типичную модель инвалидности: одна нога особенно толстая → фронтенд-технология, другая нога сильно недоедает → фронтенд-инжиниринг.

В принципе, все бизнес-задачи мы решаем техническим мышлением, но ведь у технологий есть узкие места и они не всесильны. Что делать, если технологии не могут ее решить? Два метода

  • Извлечение интерфейсных компонентов в рамках различных технологических стеков
    • Плагины в эпоху jQuery
    • hoc под React 15
    • Хуки под React 16
    • ...
  • Резюме Дафа

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

Мы не можем решить дифференцированные потребности продуктов и дизайна, поэтому мы решаем проблему человека, который задал вопрос.

Пока продукт не меняется, дизайн не хочет, все идеально.

Но идеал очень богат, а реальность очень тощая.Куча компаний тратит свою энергию и источники инвестиций на создание кучи библиотек компонентов.В конце концов,лучше использовать antd напрямую.Эти извлеченные компоненты попадают в порочный круг.

Компонент только этот стандартный, если он вам нужен, то либо можете поменять, либо можете использовать!!

Параметры больше не добавляются, их больше 20...

Нет, эта логика используется другими командами и изменена для вас, они собираются вернуться, или мне прислать спецверсию?

Чем больше спрос, тем быстрее смерть.Так называемая составляющая передка такая штука.

Был ли у вас когда-нибудь такой опыт, видели ли вы коллегу CV Дафа и праведно говорили ему, что вы не можете делать это так, вам нужно извлекать компоненты.

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

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

Так есть ли у фронтенд-инжиниринга паттерны проектирования?На самом деле они есть, но всего 2 типа

  • Извлеките все виды дурацких разрозненных компонентов
  • CV Система Дафа

Эти два режима являются быстрыми шаблонами нашего базового абстрактного мышления переднего плана, то есть режима внешнего дизайна.

Каждый из них имеет преимущества, которых нет у другого, но в то же время у них есть недостатки, которых нет у другого.

  • Компоненты извлечения легко синхронизировать, но дифференцированная обработка приведет к раздуванию параметров, злоупотреблению API и, наконец, смерти.
  • CV Дафа может эффективно изолировать различия, но со временем все больше и больше проблем с синхронизацией версий также разрушат вас.

Итак, фронтенд-инжиниринг сложнее, чем фронтенд-технология?Для человека, который занимается исследованием фронтенд-инжиниринга, он должен думать о новых шаблонах проектирования и новых абстрактных методах для решения вышеуказанных проблем, что является выходом из положения. для 90% фронтенда.

Хотя это более трудный путь, чем внедрение передовых технологий, он может дать надежду более поздним людям.

Что касается этого момента, наша команда добилась некоторых успехов в этой области и нашла новый способ, помимо CV и извлечения компонентов.Что касается того, работает ли он, позвольте мне поделиться им с вами и попробовать.Это было упомянуто в моей предыдущей статье. пройти

Membrane Mode

В разработанной нами структуре управления состоянием React также есть несколько дисплеев, вы можете переместиться, чтобы увидеть их, если вам интересно, вы можете нажать звездочку 😁

Вот адрес:structured-react-hook

позже

Продолжайте набирать людей, нанимать людей для совместной работы, делать большие дела... Если вы заинтересованы в интерфейсной инфраструктуре и интерфейсной бизнес-архитектуре, обязательно свяжитесь со мной, нам нужны такие таланты, как вы 😁