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

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

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

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

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

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

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

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

Современные тенденции и подходы в веб-разработке

Узнайте алгоритм быстрого профессионального роста с нуля в сайтостроении

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

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

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

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

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

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

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

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

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

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

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

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

Современные тенденции и подходы в веб-разработке

Узнайте алгоритм быстрого профессионального роста с нуля в сайтостроении

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

Обесценивание 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.

Современные тенденции и подходы в веб-разработке

Узнайте алгоритм быстрого профессионального роста с нуля в сайтостроении

Узнать подробнее
Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Современные тенденции веб-разработки

За ближайшие 5 дней мы составим ваш пошаговый алгоритм профессионального роста с нуля в сайтостроении...

Получить

Метки:

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

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

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

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree