Front-end Digest № 54: затвердження ECMAScript 2024, бібліотеки CSS-in-JS та ідеальний шрифт для кодування

Усі статті, обговорення, новини про Front-end — в одному місці. Підписуйтеся на телеграм-канал!

Привіт, колеги. Мене звати Олександр і я займаюся фронтендом в компанії Zfort Group. Маю для вас свіжий дайджест із цікавими матеріалами зі світу фронтенда за останній тиждень.

Веброзробка

За межами monospace: пошук ідеального шрифту для кодування
Гнівний монолог про розробку фронтенду
13 практичних рекомендацій для оптимізації роботи сайту
Поповери чудово працюють як висувні інформаційні панелі
Poppin’ In: вивчення Popover API
Перехід від React до нативних DOM API: реальний приклад

CSS

Ефект розкриття тексту за допомогою conic-gradient() в CSS
CSS Day 2024 10th: як пройшов івент та розбір тем і презентацій
Type Fluidity: онлайн-інструмент для розрахування розмірів адаптивної типографіки
Плавний перехід до to Auto Height
Посібник з переходу на daisyUI: огляд, приклади та альтернативи
Вивчаємо Pigment CSS, бібліотеку CSS-in-JS від MUI

JavaScript

Ecma International затверджує ECMAScript 2024: що нового?
7 варіантів використання JavaScript Proxies
Нові JavaScript Set методи
Тести підтримки сучасних вебфункцій браузерами в JavaScript
Посібник з переходу на Million.js: огляд, приклади та альтернативи
Робота з Unicode strings, зроблена правильно і краще.
Intl в JavaScript: форматуємо дати, числа та списки
EmberConf 2024: 12 відео

👍ПодобаєтьсяСподобалось4
До обраногоВ обраному3
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Гнівний монолог про розробку фронтенду

blog.frankmtaylor.com/...​ut-front-end-development

Аминь. Как же я с ним согласен.

Ну таке, з одного боку погоджусь, що більшість сучасних «фронтенд розробників» знають тільки реакт і редакс з курсів і тулять їх де треба і де не треба. З іншого боку, твердження, що якщо в тебе проблеми з css то проблема в тобі — як мінімум спірне. Він же сам потім пише, що проблеми з css є в тому випадку, коли ти використовуєш чиїсь стилі, які ти не контролюєш. І це мабуть 90% всіх випадків, за виключенням хіба що самих простих сайтів на одну сторінку.

Також не згоден з порадою просто копіювати код через кліпборд. Як це взагалі підтримувати?

Також і про jQuery — це просто суцільний жах як на мене, не стільки сама бібліотека, як код, що на ній написано, з точки зору підтримки.

твердження, що якщо в тебе проблеми з css то проблема в тобі — як мінімум спірне

У меня лично никогда не было особых проблем с css. Особенно с появлением в 2008 Firebug. Проблема была не в css, а в том, что web расширялся и сюда шли люди с различным desktop/mobile бекграундом, которые не понимали, как это «свойство на label не повесить напрямую».

коли ти використовуєш чиїсь стилі, які ти не контролюєш

это тоже такая себе история, которая очень связана с таким феноменом как css frameworks, которые появились довольно поздно, лично я встретился с первым таким реальным кодом в 2012 с Twitter Bootstrap, появилась концепция продажи Theme на их основе. Как и jQuery эти чудо-фреймворки, отголосок отсутствия Flexbox тогда, но зачем тебе css framework сейчас, в чистом виде? Больше похоже на дань моде.

С другой стороны, то куда пошел развиваться реальный css, тоже заставляет задуматься. css-variables, shadowDom и scoped стили, эти компонентизации. Имел я дело с этим, так как Ionic Framework перешел на новые подходы и общее впечатление, что оно больше создает проблем, чем решает. Но это стандартный API браузер, тут ты никуда не денешься.

Також не згоден з порадою просто копіювати код через кліпборд. Як це взагалі підтримувати?

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

Також і про jQuery — це просто суцільний жах як на мене, не стільки сама бібліотека, як код, що на ній написано, з точки зору підтримки.

Тут надо сказать, что то ради чего делался jQuery, давно не актуально. Если взять базовый jQuery версии 1.3, которые были самыми заточенными на конкретное решений задач.

1. Возможность выбора по селектору (движок Sizzle), он составлял процентов 30% размера библиотеки. Тоесть с момента выхода jQuery в 2006, к 2008 начинают выкатывать querySelectorAll.
johnresig.com/...​electorall-in-firefox-31
Остаеться только вопрос, когда доля ниже IE9 уйдет небытие, а это был где-то аж 2016 год.
Но выделив в отдельную библиотеку, ты можешь движок Sizzle не слать на клиент, если браузер новый.
2. ajax — то что понравилось очень многим, хотя и странно это пихать в основную библиотеку, довольно большой кусок кода, думаю 15% библиотеки он занимал. Он решал пару кросс проблем, а в 2011 они выкатывают jQuery 1.5 с Deferred. На тот момент единственное, что в принципе есть асинхронного в браузере это ajax и WebSQL в хроме. С одной стороны Promise, которого ждали, whenAll возможности для нескольких задач. С другой стороны рост размера библиотеки и усложнение. Примерно к 2017 концы с концами сходяться, основные браузеры имеют fetch и Promise.
3. ради чего еще можно было использовать jQuery, анимации — сильно нишего, и это было до появления css анимаций. addEventListener vs attachEvent не актуален. фичи типа delegate?
понятно, что jQuery не актуален, и есть мини альтернативы типа Cash/Zepto. Зачем использовать не vanillajs, синтаксис основной части библиотеки jQuery для пальцев как Vim, разве что поэтому, очень уж вьедливы эти addClass, closest, show/hide.

Тоесть, с текущей точки нахождения API браузеров, vanilla js или jQuery или Cash, не имеет особой разницы, по сути это все и есть vanillajs. Используя jQuery я писал большие проекты, SPA, и для мобилок и десктоп браузеров.

К сожалению, Angular/React добавив нам возможность делать декларативный «if», «for» в темплейтах и работу с History API для SPA, создал поверх столько проблем: неведанных абстракций, кучи тулзов и часовых билдов и огромных бандлов, сложного дебага в 200 строк call stack, непонятно как обходимых ситуаций на ровном месте, оно просто на голову не налазит.
— Мысль не закончена, может быть продолжу позже.

Підписатись на коментарі