PurpleSchool
Иконка канала PurpleSchool

PurpleSchool

562 подписчика

8просмотров

Вышел React 19.3 — обновление с несколькими важными изменениями для разработки интерфейсов. Главное изменение — ViewTransition и Fragment Refs вышли из экспериментального режима и стали стабильными API. ViewTransition позволяет анимировать появление, исчезновение, перемещение и изменение размеров элементов через браузерный View Transition API. Также появился browser() API для случаев, когда компонент нельзя корректно отрендерить на сервере, например при зависимости от браузерных API. Вместо ручных проверок React теперь предоставляет отдельный механизм для таких сценариев. Кроме этого, React 19.3 получил поддержку Trusted Types, улучшения Server Components и другие изменения. Больше новостей — в полном выпуске по ссылке под шортсом! #react #reactjs #react19 #viewtransitions #javascript #js #typescript #frontend #webdev #servercomponents #reactapi

9просмотров

Retry помогает пережить временные ошибки, но без backoff может усилить проблему. Разбираемся, почему после сбоя все клиенты начинают повторять запросы одновременно, как это создаёт дополнительную нагрузку и зачем нужны backoff и jitter. #backend #distributedsystems #microservices #retry #backoff #jitter #systemdesign

7просмотров

Вышел NestJS 12 — крупное обновление фреймворка для Node.js. В новой версии Nest стал ближе к современной TypeScript-экосистеме: основные пакеты теперь поддерживают ESM, а существующие CommonJS-приложения всё ещё могут продолжать работу без полного перехода. Одно из главных изменений — поддержка Standard Schema. Теперь схемы можно использовать напрямую в route decorators и конфигурации, например с Zod, Valibot или ArkType, а не ограничиваться только классическим подходом через декораторы. Также появился новый nest upgrade для миграции проектов, обновились дефолты для новых приложений: ESM, Vitest, oxlint и Rspack. Больше новостей — в полном выпуске по ссылке под шортсом! #nestjs #nest #nodejs #node #typescript #javascript #backend #webdev #js #ts #framework

11просмотров

В Go обычный default внутри select может превратить цикл в постоянную проверку канала без ожидания. Разбираемся, почему такой код создаёт busy loop, как он нагружает CPU и когда вместо него использовать блокировку или таймер. #golang #go #goroutines #channels #concurrency #golangdev #backend #selectdefault #busyloop

6просмотров

Shopify рассказал, почему полностью уходит от React Native к нативной разработке на Kotlin и Swift. Раньше кроссплатформенный подход помогал быстрее выпускать функции для iOS и Android, но при этом появлялись ограничения и дополнительные сложности. Сейчас Shopify считает, что благодаря AI-агентам нативная разработка стала быстрее и дешевле. В этом процессе Shopify использует собственный подход Helix: агенты помогают писать код, работать с изменениями и быстрее проходить циклы разработки. Важную роль играют feedback loops — быстрые проверки результата, которые позволяют агентам получать обратную связь и корректировать свою работу. В итоге Shopify возвращается к нативным технологиям, потому что с AI-агентами изменилась экономика мобильной разработки: преимущества Kotlin и Swift становятся доступнее без прежнего роста затрат. Больше новостей — в полном выпуске по ссылке под шортсом! #shopify #reactnative #kotlin #swift #aiagents #mobiledevelopment #iosdevelopment #androiddevelopment #softwareengineering #aidev

186просмотров

Почему SELECT COUNT(*) может долго выполняться, даже если возвращает всего одно число? Разбираемся, как MVCC влияет на подсчёт строк в PostgreSQL, почему Index Only Scan не всегда спасает от чтения таблицы и когда вместо точного результата можно использовать приблизительную оценку из pg_class.reltuples. #postgresql #postgres #sql #selectcount #mvcc #indexonlyscan #databaseperformance #database #db

92просмотра

Вышел стабильный Vite+ 1.0 от VoidZero. Это единый набор инструментов для веб-разработки, который объединяет сборку, тестирование, линтинг, форматирование и управление задачами проекта. В основе уже знакомые инструменты: Vite и Rolldown для разработки и сборки, Vitest для тестов, Oxlint для линтинга, Oxfmt для форматирования, tsgo для проверки типов и tsdown для сборки библиотек. Всё управляется через единый CLI vp. Например, vp check запускает форматирование, линтинг и проверку типов, vp test — тесты, vp build — production-сборку, а vp run позволяет запускать задачи с кешированием, в том числе в монорепозиториях. Главная идея Vite+ — сократить количество отдельных конфигураций и объединить привычные инструменты в один согласованный workflow, сохранив совместимость с экосистемой Vite. Больше релизов — в полном выпуске по ссылке под шортсом! #devnews #viteplus #vite #rolldown #vitest #oxc #voidzero #javascript #js #buildtools #toolchain

73просмотра

readinessProbe и livenessProbe могут проверять один и тот же эндпоинт, но Kubernetes реагирует на их ошибки по-разному. Разбираемся, когда Pod перестаёт получать трафик, когда kubelet перезапускает контейнер и почему проверка доступности базы через livenessProbe может привести к массовым рестартам. #kubernetes #readinessprobe #livenessprobe #k8s #devops #containers #kuber

100просмотров

В ESLint 10.11 заметно поработали над производительностью. Причём оптимизации затронули сразу несколько этапов работы линтера. Загрузка пакета стала быстрее на 20–25% благодаря отложенной инициализации JSON Schema validator. Из начального графа зависимостей убрали около 45 модулей. Ускорили выполнение правил: для распространённых селекторов AST добавили быстрые пути обработки, а вызовы rule visitors по возможности выполняются напрямую, без дополнительных обёрток. Также снизили накладные расходы при обработке найденных проблем и оптимизировали стандартный форматтер stylish. Особенно заметны улучшения могут быть в проектах с большим количеством правил и диагностических сообщений. Конечно, по скорости ESLint всё ещё уступает современным альтернативам вроде Oxlint. Но далеко не все проекты перешли на новые инструменты, поэтому такие оптимизации особенно полезны тем, кто продолжает использовать ESLint. Больше релизов — в полном выпуске по ссылке под шортсом! #devnews #eslint #linter #linting #codequality #devtools #frontend #js #javascript

366просмотров

Неудачная регулярка может надолго занять основной поток Node.js и заблокировать event loop. Разбираемся, как backtracking заставляет движок перебирать огромное количество вариантов и почему особенно внимательно стоит проверять regex, которые работают с пользовательским вводом. #nodejs #node #regex #javascript #js #backtracking #eventloop #backend #performance

107просмотров

Даже обычный Date.now() может вызвать hydration mismatch, если сервер и клиент получают разные значения при первом рендере. Разбираемся, почему React ожидает одинаковую разметку при гидрации и как безопасно работать со значениями, которые меняются между сервером и клиентом. #react #hydration #ssr #nextjs #reactjs #serverrendering #frontend #datenow #useEffect #hydrationmismatch

86просмотров

Большой connection pool не всегда увеличивает пропускную способность. Если база уже упирается в свои ресурсы, дополнительные соединения заставляют запросы сильнее конкурировать за CPU, память и дисковый ввод-вывод. Разбираемся, почему увеличение пула может только ухудшить ситуацию и почему важно учитывать суммарное число соединений от всех инстансов приложения. #connectionpool #connectionpooling #database #sql #postgresql #mysql #backend #databaseperformance #dbperformance #cpu #db

126просмотров

git cherry-pick позволяет забрать изменения отдельного коммита, не сливая всю ветку. Разбираемся, как Git применяет эти изменения поверх текущей ветки, почему в результате появляется новый коммит с другим хэшем и что происходит при конфликте. #git #gitcherrypick #cherrypick #gitcommands #gitcommit #versioncontrol

81просмотр

docker stop сначала даёт приложению возможность завершиться корректно и только после таймаута принудительно останавливает процесс. Разбираемся, зачем Docker отправляет SIGTERM, когда появляется SIGKILL и почему приложение должно уметь корректно обрабатывать остановку. #docker #dockerstop #sigkill #sigterm #dockercontainers #gracefulshutdown #dockertips #devops #containerization

86просмотров

Тип User в TypeScript ещё не гарантирует, что API действительно вернёт данные такой структуры. Разбираемся, где заканчивается статическая проверка типов, почему внешние данные нужно валидировать в рантайме и когда пригодятся schema validators вроде Zod. #ts #typescript #runtimevalidation #TypeSafety #Zod #SchemaValidation #StaticTyping

83просмотра

Даже если содержимое объекта не изменилось, новая ссылка может заставить memo считать prop изменившимся. Разбираемся, как React сравнивает props, почему объекты, массивы и функции могут мешать memo пропускать рендер и когда стоит использовать useMemo и useCallback. #react #reactjs #usememo #usecallback #memo #props #js #javascript #frontend

201просмотр

LIMIT 10 возвращает всего десять строк, но это не значит, что PostgreSQL обработает только их. Разбираемся, какую работу база может выполнить до LIMIT, как подходящий индекс меняет план запроса и почему при оптимизации стоит смотреть в EXPLAIN. #PostgreSQL #Postgres #SQL #Database #Backend #Performance #EXPLAIN #limit10

103просмотра

Retry не поможет, если один запрос может слишком долго удерживать соединение или слот параллелизма. Разбираемся, почему сначала важно ограничить время ожидания, когда повтор запроса безопасен и зачем между попытками нужны backoff и jitter. #Backend #Retry #Timeout #API #DistributedSystems #jitter #clientrequest

9просмотров

Jev AI можно использовать для быстрой и дешёвой классификации входящих текстов сразу по нескольким критериям. Для демонстрации я сделал приложение, в котором Jev оценивает текст по ясности, уместности тона, резкости и уверенности, а также определяет, насколько сообщение звучит как написанное ИИ. Каждый критерий возвращается в процентах. Одновременно Jev определяет тип сообщения — например, просьба, жалоба, отказ, благодарность, информация или другое — и также возвращает вероятности по вариантам. В шортсе проверим это на нескольких письмах: сначала отправим начальнику резкое сообщение, затем изменим его на вежливое и посмотрим, как Jev за секунды пересчитает оценки и тип сообщения. Такую классификацию можно использовать как быстрый и дешёвый слой для принятия решений на основе входящего текста. Полный обзор Jev AI — смотри по ссылке под шортсом! #TextClassification #jev #jevai #llm #ai #ии #typesafe #typesafeai #systemonemodel #systemone #aimodel #Routing #MachineLearning

106просмотров

Горутина может навсегда остаться заблокированной на операции с каналом — например, если получатель уже вышел по таймауту. Разбираемся, как такие горутины накапливаются, почему сборщик мусора их не завершает и зачем у фоновой работы всегда должен быть путь выхода через результат, таймаут или context. #Go #Golang #Goroutine #Concurrency #Backend #golangtutorial #голанг