Сова рассылает выпуск #7
Хотел бы назваться this-week-in-sova, но эта рассылка не выходит каждую неделю. Стараюсь подбирать полезные и интересные ссылочки, а не лишь бы заполнить выпуск к назначенному сроку. В связи с этим обновил название рассылки, не пугайтесь.
Закидывайте мне в твиттер или телегу полезные ссылки, если вдруг найдете!
Отлаживайте веб как профессионалы 🇺🇸
Статья проводит базовый обзор возможностей инструментов разработчика, может вы этого не знали, а может ваши коллеги.
10 принципов архитектуры программного обеспечения в Salesforce 🇺🇸
Весьма интересный, но при этом немного спорный список тезисов про проектирование архитектуры. Конечно же, не стоит воспринимать его как догму, эти принципы полезны для Salesforce, но могут подойти не всем.
Как работают Derive-макросы Rust Serde 🇺🇸
Очень крутая статья объясняющая принципы работы универсального (се|десе)риализатора serde в Rust. Крайне советую прочитать всем интересующимся или никогда не задумывающимся.
Разбор модели данных Serde при написании игрушечного десериализатора 🇺🇸
Будьте готовы к более сложному погружению в Serde, фактически это продолжение статьи по ссылке выше.
Хорошие тесты не изменяются со временем 🇺🇸
Распространенной жалобой на модульные тесты является то, что их написание и сопровождение требует больших затрат. Автор предполагает, что основная причина этого в том, что люди пишут тесты, которые им постоянно приходится переписывать.
Эмуляция 4-битной виртуальной машины на ТИПАХ TypeScript 🐙
Гист показывает как можно реализовать эмуляцию чисто на типах, без единой строчки javascript в рантайме.
Пояснений нет, но можно стащить примеров использования TypeScript.
Приключение по оптимизации CRDT в 5000 раз 🇺🇸
Крутая статья раскрывающая детали реализации CRDT. Читать всем разработчикам стейт-менеджеров целящихся в коллаборативные редакторы.
Репозиторий готовых конфигураций TypeScript проектов 🐙
Устанавливаете нужную конфигурацию как npm-пакет, прописываете в tsconfig как extends и всё. Есть множество готовых конфигов, главное помнить о существовании такого репо).
explainshell.com 🇺🇸
Не знаете как работает та или иная команда в вашем терминале, вписывайте всю команду как есть в поле и жмите EXPLAIN.
TypeScript 4.5 🇺🇸
- Был добавлен новый тип
Awaited
, для разворачивания типов вложенных промисов. - Можно оверрайдить встроенные типы через пакеты
@typescript/lib-\*
. - Строковые шаблонные литералы могут быть дискриминаторов в union.
- Добавлена поддержка type внутри деструктуризации импортов
import { Foo, type Bar }
.
И ещё многое другое, обязательно смотрите полный список перед обновлением ибо есть breaking changes.
Rust это будущее инфраструктуры JavaScript 🇺🇸
Rust всё больше используется в крупных компаниях, таких как Facebook(Meta), Apple, Amazon, Microsoft, Google и т.д. не только для реализации низкоуровневых и инфраструктурных вещей, но и как язык для реализации логики.
Сейчас всё больше появляется инструментов на Rust заменяющих стандартный тулинг javascript приложений, автор рассматривает причины и последствия такого замещения.
Почему бенчмарки лгут 🇷🇺🎙
Выпуск подкаста “Под куполом”.
Как вообще можно верить тестам написанным ради сравнение некачественных метрик?
Полностью типизированная библиотека для i18n 🐙
Весьма необычный подход предлагает автор этой библиотеки. При описании одного набора значений переводов, библиотека на уровне типов парсит значения описанные внутри строковых литералов и сразу же валидирует остальные переводы в проекте.
Например, в переводе английского вы добавили шаблон, куда нужно подставить число, а в переводе на русский забыли добавить, так библиотека прям в редакторе на уровне типов вам подскажет в каких переводах нужно обновить перевод.
Переосмысление AtomicCSS 🇺🇸
Автор предлагает рассматривать TailwindCSS лишь как один шаг в сторону “правильного” atomic css.
Следствием этого переосмысления появился unocss — полностью кастомизируемый движок, похожий на tailwind, но в котором все классы поставляются в виде отдельных плагинов, а добавление нового инструментария выглядит крайне просто.
Supabase UI 🇺🇸
Библиотека компонентов вдохновлена Tailwindcss и AntDesign, хотя кого-то это может отпугнуть, я предлагаю рассмотреть подход к проектированию компонентов для собственного развития.
Компонентов не очень много, но можно успеть ухватить их цельность.