Приближается вторая половина 2019. Бурные увольнения в первой половине года вызвали мурашки по спине у каждого практика. После пяти или шести лет золотой разработки индустрия фронтенд-разработки, похоже, вступила в переломный момент. .
С одной стороны, я слушаю, как разработчики жалуются в Интернете, что работу найти трудно, а фронтенд-разработка уже перенасыщена, с другой стороны, я слушаю друзей с крупных заводов, которые жалуются, что они долго набирали людей. время, но они не в состоянии заполнить HC.Таков рынок front-end талантов.Полный противоречий и аномалий.
На самом деле, если хорошенько подумать, то описанную выше ситуацию легко понять, ведь фронтенд-разработка насыщена чисто количественно, поэтому большое количество младших фронтенд-инженеров не могут найти работу, а с другой стороны старшие фронтенд инженеры пока редкость.ЧК старшего поста всегда ненасыщенный.
Не так давно новость прислал дядя гастарбайтера:
В настоящее время распределение фронтового персонала носит пирамидальный характер и представляет собой пирамидальную форму с более длинным дном:
Поэтому продвинутый — это то, с чем приходится сталкиваться большинству фронтенд-разработчиков.Сейчас не та эпоха, когда можно найти работу, написав несколько страниц.Только продвигаясь на более высокий уровень, можно сохранить профессиональную конкурентоспособность, иначе никто из нас не может гарантировать в следующий раз Когда придут увольнения, будем ли мы купаться голышом на пляже?
Как я думаю о передовых технологиях
Фронтенд-сообщество — очень активное сообщество, и новые технологии или новые методы разработки почти время от времени становятся горячими точками, поэтому у фронтенд-разработчиков будет стебель «не учиться», и в конце концов постыдное сообщение Deno. мероприятие.
Взяв себя в качестве примера, потому что я хочу разработать приложение самостоятельно, я столкнулся с выбором технологии, и я также столкнулся с технологией, которая потратит много времени на выбор обучения в будущем.Впереди три варианта. меня:
- Кроссплатформенная технология Flutter
- Кроссплатформенная технология RN (WEEX используется редко кроме экологии Али)
- родная технология
Какую технологию выбрать, чтобы не только удовлетворить потребности разработки APP, но и стоит ли тратить время на обучение?
Если вы обратитесь к Zhihu или другим техническим сообществам, чтобы задать вопрос, подавляющее большинство ответов — это Flutter (хотя многие респонденты, судя по ответам, кажется, никогда не использовали Flutter), как новую технологию, официально выпущенную всего полгода назад. Flutter уже распространился по всем направлениям. Он стал заслуженной первой горячей точкой во всем фронтенд-круге. Я действительно восхищаюсь проповедническими способностями Google.
Я давно думал о Flutter, а также использовал его для быстрой разработки демо, которое очень привлекательно:
- Декларативный пользовательский интерфейс очень похож на React, который намного более продвинут, чем метод программирования пользовательского интерфейса Android (я написал приложение для Android давным-давно, поэтому не будем говорить об опыте кодирования).
- Более тщательный кроссплатформенный, напрямую вызывающий движок прорисовки Skia для отрисовки компонентов, который более низкоуровневый, чем RN, и его концепция больше похожа на игру.
- Сообщается, что с большим потенциалом Flutter является первой назначенной структурой для новой операционной системы Google, а это означает, что вы можете почувствовать эту новую систему.
Эта технология действительно привлекательна, и с добровольным продвижением людей в сообществе, которые знают Flutter, но не Flutter, я даже решил изучить Flutter.
Однако задумывались ли вы когда-нибудь, что, изучив Flutter, ваша технология улучшится?
Первая реакция многих людей: «Конечно, я изучил новую технологию и выучил новый язык, разве технология не улучшилась? '.
Но я так не думаю. Я все еще крутлюсь на том же месте. Java-разработчик, который научился использовать Ruby для добавления, удаления, изменения и проверки, не означает, что его способности улучшились. разработали простой APP с RN или Flutter.Это не значит, что уровень повысился., это просто еще один UI, написанный на другом языке, и это не высокотехнологичная вещь, чтобы использовать три фреймворка для написания страниц.
Flutter такой же, как RN. Если вы хотите хорошо играть, вы должны углубиться в нативную разработку, потому что эти две технологии на самом деле не кросс-платформенные, они просто кросс-платформенный пользовательский интерфейс.Если вы изучаете Flutter только для написания пользовательского интерфейса , это не имеет большого значения, и увеличения мощности нет.
Давайте подумаем немного более утилитарно, что, если вы научитесь писать пользовательский интерфейс с помощью Flutter? У вас есть проект Flutter в вашей компании? Даже если есть раунд для вас, чтобы бросить кулаки? В конце концов, у вас нет базы знаний нативной платформы, так какой смысл просто писать пользовательский интерфейс?
На самом деле, этот пример был приведен так давно, и я просто говорю две вещи:
- Иногда нам кажется, что мы изучаем множество техник.На самом деле, эти техники не улучшают вас, а вызывают у вас предвзятое отношение к себе: «Я узнал что-то новое, и мои способности улучшились».
- Не следуйте слепо за горячими точками в сообществе.Весьма вероятно, что вы потеряете арбуз после того, как соберете семена кунжута.Вы должны тщательно подумать, может ли эта технология улучшить вас самих, вместо того, чтобы вам "промывали мозги" евангелисты.
С таким мышлением я внимательно изучил горячие технологии в последнее время, и есть несколько технологий, в которых я совершенно уверен, что они приложат большие усилия в области фронтенд-разработки в будущем.
TypeScript
Пользуюсь TypeScript с 2017. Можно сказать, что в нужный момент я наступил на много ям в процессе его использования, а также обобщил большой опыт. Вы используете TypeScript? ' Ответ, получивший наибольшее количество голосов, принадлежит самому автору.
В середине 2019 года я могу быть уверен, что через год TypeScript станет очень популярным.
Более 30% новых проектов на основе интерфейсных фреймворков будут разрабатываться на TypeScript в качестве основного языка.
Я резюмировал причины в трех пунктах.
Постепенно доминировать в сообществе открытого исходного кода
На TypeScript разработано большое количество тяжеловесных интерфейсных проектов с открытым исходным кодом, включая, помимо прочего: Angular, VScode, Vue3.0, Rxjs, TypeScript (да, он загружается), Mobx, deno, Antd и этот тренд. становится все более и более очевидным, в том числе сам Facebook Jest также объявил о переходе с flowType на TypeScript.
Эти тяжеловесные проекты с открытым исходным кодом обладают очень сильным движущим эффектом, я не раз видел, как некоторые фронтенд-разработчики говорили, что для того, чтобы понять исходный код Antd, они специально изучали TypeScript.
Можно сказать, что экосистема TypeScript с открытым исходным кодом очень полная, и компания может чувствовать себя непринужденно и смело заниматься разработкой TypeScript.
TypeScript — технология, которая действительно решает проблему производительности
Какие три типа ошибок вызывают наибольшее количество ошибок при фронтенд-разработке?
Вы бы не подумали, это:
- Uncaught TypeError: Cannot Read Property
- TypeError: 'undefined' не является объектом (оценка...)
- TypeError: Null Is Not an Object (evaluating...)
На самом деле есть три очень-очень низкоуровневые ошибки. Причина в том, что JavaScript — динамический язык, и об ошибках сообщается только во время выполнения. Эти низкоуровневые ошибки не возникают в TypeScript с полными определениями типов. Это одна из Преимущества TypeScript Избегайте большого количества ошибок типа.
TypeScript полностью определяет интерфейс, что может значительно снизить затраты на связь и написание документов.Лучший документ — это шрифт.Кроме того, с поддержкой TypeScript совместная работа с интерфейсом и сервером также будет очень удобной. С помощью TypeScript мы можем полностью разработать инструмент. Инструмент сопоставляет информацию внутреннего Java Swagger с TypeScript, что нам удобно, чтобы получить число и максимально избежать ошибок.
Теперь есть такая передняя библиотека выборкиpont.
В целом, TypeScript решает две основные проблемы внешнего интерфейса, избегая ошибок и повышая эффективность.
Ответственный за команду Ali MidwayJs сказал на GMTC: «TypeScript поможет нам решить эти проблемы с качеством, привычками и методами. Возьмем в качестве примера команду на полпути. С момента использования TypeScript качество значительно улучшилось, и это обычно необходимы Коды, которые тестировались в течение длительного времени, редко имеют низкоуровневые проблемы, но большинство из них являются логическими проблемами. » и упомянул, что «в этом году мы надеемся, что новые приложения будут использовать TS в полной мере. 』
Vue3.0 станет триггером масштабной популярности TypeScript
Vue3.0 будет выпущен во второй половине года, хотя You Yuxi подтвердил, что Vue3.0 поддерживает как JavaScript, так и TypeScript, но поддержка уровня инвалидности vue2.x теперь изначально поддерживает TypeScript, что неизбежно приведет к большому количеству стеков технологий на основе vue компаний, участвующих в движении TypeScriptization.
В то время три основных фреймворка могут прекрасно поддерживать TypeScript, и даже два из них разрабатываются непосредственно TypeScript, а vue имеет наибольшее количество пользователей в Китае, и это также может больше всего повлиять на тенденцию TypeScript в Китае.
Насколько мне известно, большое количество фронтенд-команд стека технологий vue, таких как Meituan и Ele.me, тоже массово практиковали TypeScript.По крайней мере, на уровне крупных заводов TypeScript начал популяризироваться на крупный масштаб.
графические технологии
Графические технологии не охватят фронтенд за короткий промежуток времени и никогда не станут популярными во фронтэнде, но это технология, которую фронтенд-разработчики должны изучить.
Почему говорят, что графические технологии не загорятся во фронтенде?
Скоро будет жарко.В течение этого года выйдет WebGPU.Большая часть фронтенда не может даже разобраться с webgl1.x.В конечном счете стек технологий не совпадает.Хотя большая часть фронтенда разработка и мобильная разработка заключается в реализации пользовательского интерфейса, но этот метод реализации почти всегда вызывает встроенные компоненты хоста и редко использует графический интерфейс для отрисовки пользовательского интерфейса.
Почему сказано, что это необходимо для продвинутых?
Графическая технология может быть единственной низкоуровневой компьютерной технологией, тесно связанной с интерфейсом, потому что так называемый пользовательский интерфейс рисуется путем вызова графического процессора через графический интерфейс, а это означает, что освоение графической технологии может более глубоко настроить пользовательский интерфейс. .
Будущий пользовательский интерфейс будет состоять не только из простых компонентов ввода, таблицы, списка и других крупнозернистых компонентов, но и из более диверсифицированного и мелкозернистого. традиционные интерфейсные компоненты, некоторые 2D-компоненты вызывают интерфейс рисования Canvas, а некоторые 3D-компоненты рисуются с помощью webgl.
Во второй половине этого года 5G начал развертываться на большой территории в Китае.Общее мнение состоит в том, что появление 5G снова оживит виртуальные технологии, такие как AR и VR.Эти технологии без исключения не связаны к графическим технологиям Подумайте о рисовании компонента ввода в AR.
Я начал обращать внимание на графические технологии в прошлом году и был приятно удивлен, обнаружив, что они совпадают со взглядами некоторых фронтенд-экспертов.
Один из них — ответ Юин, лидера танцевальной труппы Ци в начале года, на Чжиху:
Еще одна технология прогнозирования зимы в начале года:
Редактор Полевых Технологий
Редактор здесь относится к общему названию различных редакторов, таких как: редактор кода (WebIDE), графический редактор (3d-моделирование онлайн или ps), текстовый редактор и т. д.
Технология поля редактора не будет распространяться почти на все фронтенд-команды, такие как TypeScript, но это должна быть технология, которая загорится локально.
Почему сказано, что он будет стрелять только локально?
Это очень узкоспециализированная область, но ее сложность и важность растут день ото дня. Во-первых, у большинства компаний нет спроса на редакторов в большинстве бизнес-сценариев. Во-вторых, редакторы очень универсальны. Реализация конкретных бизнес-сценариев веб-сайта варьируется. широко, но когда дело доходит до текстового редактора, введенного пользователем, все они могут использовать одно и то же программное обеспечение с открытым исходным кодом.
После разговора о части поговорим о том, почему она популярна.Самый важный момент – это популярность облачной разработки.В облако пересажено большое количество сервисов разработчиков, в том числе популярные в последнее время FaaS, сервисы апплетов и т.д. , с одной стороны, производители облачных сервисов.Чтобы предоставить разработчикам более качественные услуги, такие как разработка сервисов отладки FaaS, необходимо настроить webIDE, подходящую для их бизнеса.С другой стороны, это также более важно.Разработка разработчика среда не изменится легко, и webIDE является этой средой. , webIDE - это вход в битву для разработчиков облачных поставщиков.
Другая причина заключается в том, что крупномасштабным командам необходимо интегрировать возможности каждой команды, а ключом к интегрированной разработке является IDE.
Несмотря на то, что многие компании нанимают инженеров, связанных с редакторами, с титулами фронтенда, обычные фронтенд инженеры не могут победить в этом сценарии, если у них нет соответствующего опыта, что привело к нехватке талантов, хотя это нишевая область. .
На следующем рисунке показаны четыре направления макета клиентского комитета Али, отображаемые в центре круга на GMTC:
Расскажите о других горячих технологиях
- Serverless
Serverless определенно станет популярным, и это также прямое улучшение производительности. Front-end может напрямую писать функции для реализации логики back-end без учета развертывания, эксплуатации и обслуживания, среды и других сценариев. так называемый штатный инженер в будущем.
Но почему нет внимания к его использованию? Во-первых, применимые сценарии бессерверных решений относительно легкие. Это не серебряная пуля. Нынешняя бессерверная лихорадка в определенной степени преувеличила его реальный эффект.
Другое дело, что для фронтенда serverless — это фактически инструмент, им можно только пользоваться, его собственная разработка требует облачных профессиональных разработчиков, поэтому фронтенд вообще не может быть глубоко задействован, а наоборот, сокращает фронтенд. конечные требования к узлу (потому что пока вы умеете программировать, никаких внутренних знаний не требуется), но это хорошо для предприятий и команд, и это не та технология, которая очень полезна для личного роста.
- IOT
С появлением 5G последует идея Интернета всего.Я не уверен, будет ли IOT популярен в эпоху 5G, но я не думаю, что фронт-энд увидит прогресс в IOT в прошлом несколько лет.
Кто-то скажет, что кто-то не портировал js на встраиваемое поле? Да, даже Samsung настроил виртуальные машины js для устройств IOT.
IOT - малопроизводительное, маломощное и малопамятное устройство. Чем больше в этом сценарии, тем мощнее малопроизводительный низкоуровневый язык программирования. К сожалению, js противоположно этому. Этот язык не подходит для IOT и C Language — как рыба в воде.
PS: я слышал, как технический эксперт, специализирующийся на IOT, сказал, что самая большая проблема с js — это энергопотребление, js нельзя использовать в коммерческих целях на многих портативных устройствах IOT (5 минут зарядки, 5 секунд в режиме ожидания).
Так почему же так много людей волнуются на тему js в IOT?
Если вам интересно, вы можете послушать Чжэн Е, автора Ruff.радиоинтервью.
Причина в том, что есть много разработчиков js. . . Базовая технология с техническими трудностями будет обрабатываться профессиональными разработчиками встраиваемых систем.JS-разработчикам нужно только писать бизнес, поэтому вернемся к вопросу о Flutter, какие технические улучшения у вас есть при написании бизнеса в IOT, чем в написании бизнеса в браузере?Шерстяная ткань?
Конечно, заниматься IOT с точки зрения рабочего места по-прежнему перспективно.Как только IOT станет популярным, тем, кто первым войдет в эту область, будет легче собирать персики, но лично я не рекомендую входить в яму сейчас, риски намного перевешивают. преимущества, если это правда. Если вы заинтересованы в js в любом случае, лучше изучить среду выполнения js, такую как node и deno, которая представляет собой технологию, которая действительно помогает улучшить ваши способности.
- GraphQL
GraphQL уже несколько лет как увольняют, но движения по-прежнему мало.Дело не в том, что у самой технологии есть проблемы, а в том, что эта технология серьезно навредила интересам back-end разработки.
GraphQL действительно прост в использовании для фронтенд-разработчиков. Теперь нет необходимости просить старшего брата бэкенда создавать новые интерфейсы. Он может быть самодостаточным. Однако эта технология, которая делает фронтенд-разработку так круто достигается за счет большого количества ремонтных работ, требующих серверной части. Да, команда серверной части неустанно работала над GraphQL, но больше всего выиграла клиентская часть. Если что-то пошло не так, серверная часть конец пострадает.Сопротивление этой технологии можно себе представить.
Эта технология проверяет возможность межгруппового общения и совместной работы, а не саму технологию.Конечно, во многих случаях первая важнее второй, но она не соответствует теме этой статьи, поэтому не указана.
- AI IN FE
Самой популярной технологией в последние годы является искусственный интеллект, хотя можно сказать, что эта область не имеет пересечения с интерфейсом, все еще есть много людей, которые хотят полагаться на этот аспект.
во-первыхtfjs
На самом деле область применения фреймворка глубокого обучения на основе браузера очень узкая.В ходе исследования автор не обнаружил случаев коммерческой ценности.Запуска глубокого обучения в браузере очень мало, плюс сам js.Проблемы производительности и браузеры. не поддерживают API-интерфейсы с ускорением на GPU, что приводит кtfjs
Это больше похоже на дефектный продукт: на самом деле, хотя некоторые фронтенд-команды разрабатывают ИИ-приложения, в основном они используют настоящий TensorFlow.
В настоящее время относительно надежным сценарием интерфейса + ИИ является автоматизированный пользовательский интерфейс.Черновик дизайна дизайнера автоматически генерируется в компоненты пользовательского интерфейса.Восстановление пользовательского интерфейса является очень механической и повторяющейся работой.Уничтожение черновика дизайна восстановления как можно скорее может полностью освободите фронт-энд.Большая фронтенд-команда уже имеет соответствующие результаты.
Даже если интерфейс включает в себя ИИ, он все еще находится в стадии использования инструмента, который является так называемым «настройщиком».Конечно, даже если вы можете помочь команде решить проблему производительности, это уже большое достижение Рекомендуется, чтобы способные студенты могли договориться Давайте посмотрим на технологии в этой области, но для подавляющего большинства людей очень далеко играть с глубоким обучением, даже если это настройка параметров.
наконец
Это то, что чувствует автор после прочтения совместного использования центра круга. Центр круга имеет очень высокий рисунок. В нем говорится о технической форме, техническом влиянии и экологии технологий. Нынешний малый формат автора кажется более практичным.
Это размышления автора о дальнейшем развитии фронтенд-технологий на середину 2019 года.