Сегодня поговорим про фронтенд и как с ним жить, если уж туда по воле судьбы (или злого рока, кому как) занесло. Тред филосовско-развлекательный, и если вы хотели хардкора, то это не сюда
Я конечно люблю красивые архитектуры, браузерные API, производительность и все такое. Но, пожалуй, не готова в свободное от выгорания время пытаться объяснять это простым и не очень языком. Более умелые в этом люди вели и еще будут вести этот аккаунт, они вам объяснят 😆
Я из тех странных людей, которые всю жизнь хотели быть программистами, но до универа ничего для этого не делали. Нет, ну не считать же разработкой табличную вёрстку в блокноте с 8го класса?! Эх, были ламповые времена интерната по карточкам...
@jsunderhood Когда-то давно это был один из первых сверстанных мной сайтов. Ну как сайтов, там всего одна страница. Табличная верстка, блокнот. Где-то были и более ранние работы. Но история их уже не помнит 😔 pic.twitter.com/uMr9ApkmJV
То, что из этого получалось, можно увидеть, например, в этом твите twitter.com/Neesoglasnaja/…
Но вернемся в современные реалии. С одной стороны в 2020 нам, фронтендерам, хорошо живется. Почему хорошо?
Во-первых, браузеры внедряют фичи по стандартам. Да, есть нюансики (ага, ахаха), но грубо говоря, все почти одинаковое. На деле не почти и не одинаковое, но будем считать, что так
Во-вторых, инструменты отладки, которые у нас есть, и они с каждым браузерным релизом все круче. Тот, кто пытался дебажить хотя бы в последних IE, поймет мою боль
Не поверите, но много лет веб жил практически без таких инструментов. И ничего, писали свой JavaScript, и работало
В-третьих, инструменты для работы нас как разработчиков. Какой язык ни возьми, под него будет заточена целая ветка инфраструктурных инструментов. Никто не говорит, что они идеальны. Но они есть, и появляются новые
В-четвертых, редакторы кода. У кого от названий типа FrontPage, Dreamweaver и даже Word не екает сердечко, а? Сейчас же у нас огромный выбор альтернатив от абсолютно бесплатных простеньких редакторов с туповатой подсветкой до монструозных дорогих IDE
На тему редакторов у меня был доклад. Интересующимся и фанатам Рика и Морти, вам сюда youtu.be/OhLIhyCrNGE
В-пятых, инструменты, библиотеки и пакеты. В npm более 1,4 млн пакетов, и это число растёт с каждым днем. А буквально 10 лет назад большинство проектов использовало jQuery и/или небольшую горстку альтернатив
На это, конечно, мне могут возразить, что и сейчас ничего не поменялось, просто увеличилось количество инструментов. Но камон, сегодня писать на любом фреймворке намного приятнее, чем отлаживать jQuery в IE6
Нужно вдохновение для какой-нибудь интересной регулярки? Наверняка на твой случай уже есть статья. Сложные сортировки? Не вопрос, вот тебе пакет с сотнями методов. Нет дизайнера, а нужен нормальный интерфейс? Да пожалуйста, десятки UI фреймворков к твоим услугам
Да, качество кода от пакета к пакету разное, и в опенсорсе часто стоит вопрос поддержки тех или иных инструментов, но если смотреть со стороны, то кажется, что не так уж все и плохо. Про это часто пишет и говорит @andrey_sitnik. Я не так чтобы большой опенсорсер 😏
В-шестых, и хотя в браузере пока нет альтернативы HTML, CSS и JS , но при разработке их можно не использовать. Есть шаблонизаторы, препроцессоры и компилируемые в JS языки
Лично мне всего этого для относительно небольших проектов вполне хватает. Но я понимаю, что требования разработки к системе с миллионами пользователей ежедневно и тем, чем занимаюсь я, кардинально разные
Я на практике пока не сталкивалась с тем, что языки программирования мне мешали запилить какую-то фичу. Типа, если бы мы выбрали Y, то мы бы смогли это сделать, а не как сейчас на Х. Но мой опыт, как и каждого из нас, относительно избирателен
В общем-то, я в "непроизводительность" AngularJS утыкалась только один раз, когда прилетел таск глянуть чужой код и понять, почему тормозит. Спасибо, тогда помог @obenjiro, и сотни тысяч записей перестали вешать браузер
С остальными современными фреймворками получше, и там достаточно следовать простым правилам из док, чтобы в 80% проектов ничего не тормозило. В оставшихся случаях, в зависимости от жёсткости требований к производительности, придется напрягаться
Кстати, про фреймворки. В-седьмых, в 2020, к счастью, уже нет той бешеной гонки библиотек, которая была в 2015. Я не про то, что ничего нового не появляется. Я про то, что фреймворки развили неплохие экосистемы и собрали вокруг себя сообщества
И теперь выбор фреймворка — это не просто выбор одного инструмента, а целый пласт архитектурных возможностей. И то, что у нас сейчас это есть — это, несомненно, хорошо
Отношение к современному фронтенду похоже на проблему стакана с половиной содержимого. Для кого-то он наполовину полон, а для кого-то — наполовину пуст🙄
Я отношусь скорее к тем, кого устраивает то, что есть сейчас. Хотя, это может быть из-за, что я знаю, что такое делать скругленные углы у элемента с помощью таблиц на 9 ячеек и картинок, потому что border-radius еще не изобрели 🤦♀️
Навряд ли я кого-то убедила полюбить фронтенд, но надеюсь, смогла показать позитивную точку зрения на происходящее. В ретроспективе все не так плохо, как может показаться тем, кто пришел сюда недавно
На этом я пошла работу работать, ваши мысли жду в комментариях 😅