melikhov.dev – Telegram
melikhov.dev
4.63K subscribers
110 photos
2 videos
2 files
203 links
Фронтенд, фронт-бек и около. Всё, что в голову пришло. Иногда котики.
Download Telegram
Пятничной боли вам. На рабочем монолите с TS сломался WebStorm. Зависает на “Analayzing…” и дальше по цепочке ломаются все остальные открытые проекты. Помогает только сброс кешей и перезапуск. Печаль печальная, EAP тоже не спасает. И ладно бы только у меня — страдают все!
👍1
Forwarded from Веб-стандарты (Vadim Makeev)
Выпуск №323: Алексей Симоненко, Вадим Макеев, Андрей Мелихов про возвращение и смысл, Media Queries и Container Queries, релиз-ноуты V8, бету Safari 16, Telegram и веб, мир без паролей и IE, который снова всё.

Слушайте на Ютубе https://youtu.be/yc55iTIcVCc
Ссылки на сайте https://web-standards.ru/podcast/323/
🥰7
323. Возвращение и смысл, MQ и CQ, V8, бета Safari 16, Telegram…
Веб-стандарты
00:05:00 Понятные Media Queries
00:10:17 Релиз-ноуты V8 всё
00:14:37 Бета Safari 16
00:26:29 Container Queries
00:36:18 Telegram защитник веба
00:46:53 Мир без паролей
00:58:08 Что попросить у Safari
01:03:27 IE снова всё
🔥9
Мы немножко воскресли, потому-что потому, там в начале выпуска всё сказано.
15
Прилетела бета нового UI для WebStorm — ну красиво же!
❤‍🔥11
И тут же письмо от GitHub — мол бета Copilot заканчивается, несите ваши денежки
😱7
Утром выдвигаюсь на Holy.js. Посмотрим, кто тут ещё остался, кажется получается такой небольшой междусобойчик. К осени ещё меньше останется, кажется.

Есть план на лайтнингах утопить Nest.js
🔥12👍1
Вспоминаем лучшие времена
👍3
Трём за будущее
8
Самые добрые ведущие для самых непростых времён
14
Чинил сегодня багу на проде, которая прошла через казалось бы имеющуюся типизацию и юнит-тесты как горячий нож сквозь масло. E2E бы спасли, но их там не было. А разгадка одна — безблагодатность.
А дело было в том, что входящий DTO превращался в исходящий не путём честного маппинга, а путём выкидывания ненужного через деструктуризацию и приведение …rest остатка через as в тип выходного DTO. Ну и появление новых полей во входящей DTO строгий валидатор на бэке уже не переварил.

Не экономьте строчки, пишите мапперы в явном виде. И не кастуйте.
👍147🙏1
Forwarded from artalar
о я про это рассказывал давно еще)
https://youtu.be/dCXvQkvSyQg?t=1424
3
melikhov.dev
Чинил сегодня багу на проде, которая прошла через казалось бы имеющуюся типизацию и юнит-тесты как горячий нож сквозь масло. E2E бы спасли, но их там не было. А разгадка одна — безблагодатность. А дело было в том, что входящий DTO превращался в исходящий…
В канале Максима Соснова увидел ссылку на статью — размышления одного из разработчиков из инфраструктурной команды DigitalOcean о принципах и подходах, применяемых при разработке ui-кита. И в ней автор тоже пинает spread-оператор за неявность. А именно, JSX-конструкцию {…props}

Отказ от использования в JSX spread для внешних данных спасает от появления странных багов.

Т.е. я избегают использования любых spread-операторов при обработке внешних данных. Да, я не хочу иметь возможность прокидывать вслепую пропсы из одного компонента в другой (если быть честным, мне кажется что это отличное общее правило при работе с пропсами)
1. Может быть непонятно, откуда неожиданно прилетело значение конкретного атрибута (пропа). И поиск тут не поможет.
2. Это позволяет переслать неожиданные атрибуты и TypeScript тут ничего не поймает

Рекомендация — делать деструктуризацию и честно пересылать атрибуты, выкидывая заодно мусор.

Примеры в статье, ищите по фразе «Avoiding JSX spread»
❤‍🔥12👍2
Важная вещь в планировании работы платформенной команды — её циклы разработки не должны совпадать с циклами бизнесовых команд. Если вы живёте двухнедельными спринтами, то пусть спринт платформенной команды идёт со сдвигом в неделю. Если кварталами, то сдвиньте хотя бы на месяц. Понимаю, сложно, особенно если на это завязаны защиты DoD (Definition of Done) и OKR (Objectives and Key Results) у топов и прочие премии. Но необходимо.

Платформенная/инфрастуктурная команда это такая штука, которая может зацепить всех. Мало что есть хуже, чем остановленный бизнес-релиз, под который уже готовится рекламная компания, под который подписались и на который завязались все. И вот этот важный релиз остановился из-за того, что у платформы был квартальный план по переезду с Дженкинса на Тимсити, и весь CI лёг на несколько дней.

Бывает конечно такая платформенная команда, которая не аффектит никого. Просто потому что выпускает сферических коней в вакуум, реальное внедрение силами платформы технологий в бизнес-команду в DoD не зафиксировано. Потом ходят и уговаривают всех внедрить самостоятельно потенциальную бомбу. А команды в страхе разбегаются, кто же подпишется самостоятельно себе в ногу стрелять. Это тоже так себе вариант.
💯8👍3🥰1
Ребят, я неожиданно в Омске, в гостях на небольшой местной конференции, которая очень некоммерческая, с близкими мне ценностями и хочет случиться ещё раз. Если вы рядом — то приходите завтра и послезавтра обязательно, поболтаем о жизни.
🔥14👍3
Ну и какой язык у нас более объектно-ориентированный — тот, где объект можно создать литералом, забрать деструктуризаций и накинуть дефолтные параметры (решение в одну строчку) или тот, где для решения этой базовой задачи целый паттерн придумали, который без код комплишена руки устанут набирать? Синк эбаут ит
6😁4
Для раскрашивания кода на слайдах пользуюсь консольной утилитой highlight. Классно, здорово, но иногда её нет под рукой. Ну и не хватает наглядности. А тут Семён Левенсон подсказал SlidesCodeHighlighter . Неплохо, неплохо.

Пользуйтесь и не вставляйте на слайды скриншоты из IDE. И портянки кода не вставляйте, никто в зале их читать не будет. Мой выбор — verdana 36pt отступ 1.5. Не только видно с последнего ряда, но и не даёт засунуть в слайд слишком много кода.
🔥7💯2
Глеб Михеев в докладе про contract first упомянул, что этот подход позволяет одновременно стартовать работу фронта и бэка, на что получил резонный комментарий из зала, что важней не начать, а закончить вместе. А чтобы закончить вместе, нужно:
а) точнее прогнозировать
б) устранить узкие места

Как уже ранее писал, одним из наиболее узких мест является тестирование, которое, как правило, начинается когда все компоненты системы готовы. И вот тут нам на помощь приходит статегия тестирования Shift-left. Идея простая — мы должны начасть тестировать как можно раньше. В идеально мире даже раньше разработки. Как это так? Ну так же как мы делаем TDD — разработка ещё не началась, а тесты написаны.

Так-то и TDD, и BDD, и линтеры, и статический анализ, и contract-first и автотесты — всё это вписывается в стратегию shift-left. Мы должны отловить максимум возможных проблем до того как код будет финализирован перед релизом.

Какая роль здесь у QA? Заняться тем же BDD. Подключиться на самом раннем этапе к обсуждению с бизнесом, выяснить для чего делаются эти изменения, понять, что они могут затронуть, описать все тестовые сценарии, передать эти знания разработчикам и начать писать автотесты (ну совсем идеальный случай). На стендапах внимательно слушать, что делают разработчики и как продвигается работа, какие в ней есть проблемы, задавать вопросы и просить заранее закрыть проблемные сценарии (список-то уже в задаче).
👍43🤔2🙏1
Пока цены упали, обновил домашнюю машинку с M1 13” на MBP14 M1 Pro 10c 16gb 1Tb (вот такой вот набор цифр и букв). Бомба, конечно. Размер классный, экран запредельный, портов раздолье. Очень хотел 32gb, но их не днём с огнём не отыщешь, а те, что есть, стоят страшно. Благо и на этом летает всё, что нужно.

А зачем обновлял — ну, прежде всего, 2 type-c мне мало. 3 вот прямо на пределе, но уже можно жить. 14 дюймов, опять же, больше, чем 13”, но ещё не такой гроб, как 16”.
👍14