Разрыв между основами веба и новыми технологиями

Разрыв между основами веба и новыми технологиями

От автора: вчера я разговаривал с другом, который хочет сменить должность в своей компании, и я пожаловался ему о том, что вижу в последнее время: «Я не могу найти front end разработчика джуниора, в основном на WP, Foundation, CSS, JS. Не знаю в чем дело, у всех соискателей нет «базовых знаний». Они могут писать на React или другом JS фреймворке, могут создавать сайты через систему шаблонов в WP, но когда я говорю, что мне нужно что-то поправить напрямую в CSS, в ответ я вижу пустые взгляды… ну, или что-то на чистом JS, в ответ ничего.»

В сети полно обучающих курсов и ресурсов по front end, но опросив множество «выпускником» таких курсов, понимаю, что люди не понимают важности CSS и JS. А ведь в веб основа всего заключается именно в этих знаниях.

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

Увлечение новинками

Наша индустрия увлечена новыми подходами. Чем еще можно объяснить постоянный бег от старого и постоянное «сделали заново» еще новее, лучше и сложнее? Каждый раз мы говорим, что это сделает архитектуру чище, более абстрактной, и каждый раз мы изобретаем заново техники, воссоздаем баги, и заново находим все исключения, при которых нам приходится возвращаться к старому ужасному коду.

Это не говорит о том, что код не нужно переписывать, или о том, что что-то новое не может быть лучше, а скорее говорит о том, что мы становимся жертвами блестяшек и идеи идеальной абстракции. Каждая новая архитектура идеальна, пока не сталкивается с требованиями реального мира. К сожалению, люди довольно неаккуратны, и все наше ПО построено для решения человеческих проблем. В каждой настоящей программе плохая абстракция, костыли и новые компромиссы.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

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

Одержимость последним и самым новым SPA фреймворком

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

Расскажу немного про React, последние пару лет о нем очень часто говорят…

Не поймите меня неправильно, я люблю React. Это феноменально мощный инструмент, что не просто позволяет, но и делает простым создание тех интерфейсов, о которых я и думать не смел, когда начинал работать в веб-разработке. Но когда приходят новые разработчики, все видят этот хайп вокруг React и думают, что только так нужно писать JS. Сделать новое веб-приложение? Используй React! Обновить и мигрировать старый сайт? Проведите миграцию с помощью React!

Это губительный подход к технологиям! Не слушайте меня, послушайте одного из известнейших разработчиков React, Dan Abramov! Когда Cory House опубликовал отчет о недостатках React, Dan отвечал больше всех:

Разрыв между основами веба и новыми технологиями

Это только часть, но открытость Dan’а заставила Cory ответить:

Разрыв между основами веба и новыми технологиями

Понятно, что у Dan нет иллюзий об идеальности React. Он знает те компромиссы, на которые пошли разработчики! Но большая часть сообщества так агитирует за использование SPA фреймворков для решения любых задач и совершенно забывает про то, что эти инструменты разработаны для решения конкретных проблем. Да, это удивительные инструменты, в них удобно работать, но зачастую они совершенно непригодны для решения других проблем.

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

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Обесценивание CSS

В индустрии есть тенденция унижать HTML и CSS, говоря, что это не настоящая разработка. Думаю, так произошло из-за возвышения логического мышления над графическим и пространственным… CSS и HTML – это иерархические, графические и пространственные отношения, а JS сосредоточен на логике.

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

Не тот случай!

Если в качестве примеров взять математику и физику, то вся часто совсем наоборот! Здесь даже если вы начнете с логической модели, вы зачастую пытаетесь найти пространственную или графическую модель.

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

CSS дает нам невероятно мощный фреймворк для выражения графических и пространственных отношений, зачастую крайне сложных!

Сохранение сложности

Эта мысль привела меня к одному из моих базовых тезисов в разработке ПО – сложность сохраняется. Любая проблема, которую вы пытаетесь решить, имеет определенную сложность, которая должна где-то учитываться.

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

Разрыв между основами веба и новыми технологиями

Что нужно делать?

Я не хочу сказать, что нам не нужно использовать или не учить людей новым инструментам. SPA фреймворки типа React, Angular, Vue и Ember позволяют создавать невероятно мощные интерфейсы, которых не могло быть пару лет назад. Эти инструменты провели переоценку возможностей в вебе.

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

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

Если все наши новые разработчики будут пренебрежительно относиться к CSS, мы закончим примерно 2000 строк, пытаясь заново изобрести position: absolute;.

Если все подумают, что в SPA можно писать только HTML и jS, это приведет к слишком сложной архитектуре, багам и медленным блогам, маркетинговым сайтам и к остальному, что уже было решено с помощью старых способов.

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

Источник: https://zendev.com/

Редакция: Команда webformyself.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Хотите узнать, что необходимо для создания сайта?

Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

Смотреть видео

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий