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

PurpleSchool

514 подписчиков

79просмотров

Вставить новую строку — просто. Обновить существующую — тоже. Но что, если нужно сделать это одной SQL-конструкцией? В PostgreSQL для этого есть MERGE: он позволяет сопоставить данные и выполнить нужное действие в зависимости от результата — например, INSERT или UPDATE. Разбираемся, как MERGE упрощает такую логику в SQL. #PostgreSQL #Postgres #SQL #Merge #Database #Backend #Databases #Программирование

233просмотра

Exactly Once звучит как гарантия: каждое сообщение будет обработано ровно один раз. Но что произойдёт, если внешний API уже принял платёж, а процесс упал до commit offset? Retry создаёт риск повторного эффекта, отказ от retry — риск потерять команду. Kafka Transactions помогают внутри Kafka, но не делают атомарными HTTP-вызовы, чужие базы и другие внешние эффекты. Разбираемся, где заканчивается Exactly Once и зачем нужны идемпотентность, дедупликация, Inbox и Outbox. #ExactlyOnce #Kafka #DistributedSystems #Backend #Idempotency #Outbox #SystemDesign #Программирование

75просмотров

В HTTP/2 потеря одного TCP-пакета может заставить ждать данные сразу нескольких потоков. В HTTP/3 эту проблему решает QUIC: он работает поверх UDP и позволяет потокам быть независимыми на транспортном уровне. Потеря данных в одном потоке больше не блокирует остальные. Разбираемся, зачем HTTP/3 понадобился QUIC и что изменилось по сравнению с HTTP/2. #http #HTTP3 #QUIC #HTTP2 #TCP #UDP #Networking #Backend #WebDev #Программирование

132просмотра

Одно слово осталось на второй строке заголовка? Раньше такие переносы часто приходилось исправлять вручную. Теперь в CSS есть text-wrap: balance: браузер сам распределяет текст между строками более равномерно. У свойства есть ограничения по количеству строк, зато оно уже входит в Baseline и поддерживается актуальными Chrome, Firefox и Safari. #css #textwrap #textwrapbalance #typography #frontend #webdev #html #frontenddev

267просмотров

Раньше для плавной анимации изменений интерфейса приходилось вручную управлять состояниями элементов и переходами. View Transitions API упрощает этот сценарий: браузер может анимировать переход между состояниями одного документа с гораздо меньшим количеством кода. Разбираемся на простом примере, как это работает и чем новый подход отличается от старого. #css #viewtransitions #viewtransitionsapi #webapi #frontend #webdev #js #javascript #cssanimation

95просмотров

User-Agent давно используют, чтобы определить браузер, ОС и устройство. Но эта строка разрослась, а её парсинг стал сложным и ненадёжным. Google предложил альтернативный подход — Client Hints. Вместо разбора одной большой строки браузер передаёт данные через отдельные HTTP-заголовки. Разбираемся, как работают Client Hints, что они дают разработчику и почему пока важно учитывать поддержку браузерами. #http #httpclienthints #clienthints #useragent #browser #chrome #webdev #googlechrome

198просмотров

Для светлой и тёмной темы больше не обязательно отдельно переопределять каждый цвет. CSS-функция light-dark() позволяет указать сразу два значения — для светлой и тёмной цветовой схемы, а браузер выберет нужное. Разбираемся, как работает light-dark() и что нужно настроить через color-scheme. #CSS #LightDark #DarkMode #Frontend #webdev #frontend #html #csslightdark

96просмотров

Нашли проблему в коде? Оставьте note прямо в Hunk и передайте замечание AI-агенту. С помощью Hunk Review агент получает комментарий, исправляет код и может ответить прямо под ним, указав, что именно было исправлено. Так обратную связь по коду можно быстро передавать AI-агентам прямо из терминала. Полный обзор Hunk — по ссылке под шортсом! #hunk #aicoding #codereview #кодревью #developertools #terminal #utility #aiagents #codingagents

256просмотров

Кэш должен снижать нагрузку на базу. Но иногда происходит ровно наоборот. Если у популярного ключа одновременно истекает TTL, множество запросов могут увидеть пустой кэш и одновременно отправиться в базу за одними и теми же данными. Разбираемся, что такое Cache Stampede и как защититься от него с помощью singleflight или блокировки на ключ. #CacheStampede #Caching #Backend #Databases #SystemDesign #Highload #Программирование

158просмотров

Один AI-агент пишет код, другой — ищет в нём проблемы. А разработчик проверяет замечания и решает, что действительно нужно исправить. Hunk позволяет агенту оставлять комментарии к коду, которые можно отревьюить, верифицировать и передать другому агенту на исправление. Удобный способ организовать код-ревью, особенно если для написания и проверки кода используются разные AI-агенты. Полный обзор Hunk — по ссылке под шортсом! #hunk #aicoding #codereview #кодревью #developertools #terminal #utility #aiagents

105просмотров

HTTP 103 Early Hints позволяет браузеру начать загрузку важных ресурсов ещё до получения основного ответа от сервера. Разбираемся, как Early Hints сокращает ожидание, что можно preload'ить заранее и когда это действительно помогает ускорить загрузку страницы. #HTTP #EarlyHints #WebDevelopment #Frontend #Performance #WebPerformance #Программирование

8просмотров

Hunk — это интерактивная консольная утилита с TUI-интерфейсом (Terminal UI) для просмотра и код-ревью изменений в коде (git diff) прямо в терминале. В этом шортсе — полезные горячие клавиши Hunk: управление sidebar, Hunk Metadata, переносом строк и другими элементами интерфейса. Полный обзор всех возможностей Hunk — по ссылке под шортсом! #hunk #aicoding #codereview #кодревью #developertools #terminal #utility #cli #hotkeys

172просмотра

Раньше в CSS нельзя было подняться вверх по дереву и выбрать родителя по состоянию потомка. Приходилось использовать JavaScript или костыли с классами. Теперь есть псевдокласс :has() — он позволяет стилизовать родителя, если у него есть определённый потомок. Например, section:has(.featured) применит стили к секции, если внутри неё есть элемент с классом featured. Работает во всех современных браузерах: Chrome, Firefox, Safari, Edge. Поддержка началась с декабря 2023 года. Это настоящий прорыв для CSS-селекторов, который упрощает вёрстку и убирает лишний JavaScript. Сохраняй — пригодится! #css #csshas #cssclass #frontend #webdev #webdesign #html #css3 #cssparentselector

106просмотров

Режим Watch в Hunk автоматически обновляет ревью при каждом изменении в рабочей директории. Запускаете hunk diff --watch — и больше не нужно перезапускать просмотр руками. Сохранили файл — интерфейс обновился сам. А если нужно принудительно перезагрузить — клавиша r для reload файлов. Идеально для итеративной работы с кодом: правите, смотрите, правите дальше — всё в одном окне терминала. Подробный разбор — в полном видео по ссылке! #hunk #aicoding #codereview #кодревью #developertools #terminal #utility #aiagents

159просмотров

Раньше, чтобы отправить сложный поисковый запрос, разработчикам приходилось выбирать между двумя неидеальными вариантами. GET — параметры в URL, которые быстро превращали адрес в километровую строку с ограничениями по длине, а параметры попадали в логи и историю браузера. POST — можно передать данные в теле запроса, но он считается небезопасным и неидемпотентным: прокси и кеши не знают, что запрос только читает данные, поэтому не кешируют ответы и не могут автоматически повторить его при ошибке. В июне 2026 года IETF официально утвердил новый метод — QUERY. Он работает как POST — данные в теле запроса, без ограничений по длине. Но при этом он безопасный и идемпотентный, как GET — его можно кешировать и автоматически повторять. Это заполнило пробел, который существовал в HTTP долгие годы. Сохраняй — пригодится! #http #httpquery #httppatch #httpget #httppost #api #url #hypertexttransferprotocol #webserver

144просмотра

Hunk — это TUI-утилита для ревью изменений в терминале. Зачем она нужна? Мой процесс строится вокруг AI-агентов: сначала PRD, потом план, затем имплементация через Claude, Codex или OpenCode. После каждого этапа я открываю Hunk. Он помогает ревьюить план, PRD и код. Главное — Hunk работает в связке с агентами, которые действуют через терминал, и позволяет оставлять заметки прямо в процессе ревью. Это держит всё под контролем. Подробный разбор — в полном видео по ссылке 👆 #hunk #aicoding #codereview #кодревью #developertools #terminal #utility #aiagents #aicodereview #pr #prd

88просмотров

Раньше, чтобы отменить запрос и по таймауту, и по клику на кнопку, приходилось городить костыли — вешать обработчики на каждый сигнал и вручную управлять отменой. Всё это было больно и громоздко. Теперь есть AbortSignal.any() — встроенный веб-стандарт, который работает в Firefox и Chrome. Он объединяет несколько источников отмены в один сигнал. Подставь его в любой fetch с таймаутом, и вся лишняя логика просто исчезает. Чисто, просто, по-современному. Сохраняй — пригодится! #AbortSignal #AbortSignalany #JavaScript #JS #async #fetch #frontend #webdev #coding #programming #codingtips

114просмотров

Закончили задачу с AI-агентом по улучшению безопасности проекта и хотите быстро проверить, что он там наделал? Вместо того чтобы открывать Neovim и разбираться с diff'ами, просто запустите hunk diff в соседнем терминале. Hunk покажет все изменения, навигация — как в Vim, через j/k или скобки для пролистывания блоков. Но это только начало. Главное преимущество Hunk — аннотации и комментарии, которые позволяют общаться с агентом прямо в терминале. Как это работает — смотрите в полном видео по ссылке 👆 #hunk #aicoding #codereview #кодревью #developertools #terminal #utility #aiagents #aicodereview

103просмотра

Octane — это новый UI-фреймворк от создателя Inferno Доминика Ганнауэя, который компилирует React-компоненты в нативные DOM-операции без виртуального DOM. Ты пишешь обычный React-код — хуки, Suspense, контекст — а Octane превращает его в высокопроизводительный код без правил хуков и без ручного управления зависимостями в эффектах. Компилятор сам понимает, что захватывают твои замыкания, и генерирует реактивность за тебя. Поддерживает TSX, JSX и даже новый диалект TSRX с шаблонными директивами вроде @if и @for. Проект уже в альфе, а бета обещана скоро. В экосистеме — 53 готовых биндинга к популярным библиотекам: zustand, tanstack-query, radix, shadcn и даже react-three-fiber. Можно внедрять компонент за компонентом в существующее React-приложение через OctaneCompat. Мы разобрали Octane в большом выпуске новостей — ссылка в описании канала. А ты готов отказаться от виртуального DOM ради скорости? Пиши в комментариях. #devnews #octane #octanejs #react #js #javascript #uiframework #frontend #ui #webdev

145просмотров

Tapflow — это self-hosted альтернатива Appetize и BrowserStack для стриминга iOS и Android симуляторов в браузере. Больше никаких "а как мне запустить билд?", "установи Xcode", "у меня нет Mac". Ты просто поднимаешь relay-сервер на Linux или Mac, подключаешь к нему Mac-агенты с симуляторами, и вся команда — бэкенд, тестировщики, дизайнеры, продакты — заходят в браузер и видят живые симуляторы. Можно тапать, свайпать, зумить, записывать сессии, загружать билды и даже управлять через ИИ. Данные не уходят в облако — всё на своей инфраструктуре. Установка — две команды, бесплатно, MIT. А ты платишь BrowserStack или возишься с Xcode ради пары тестов? Пиши в комментариях! #devnews #tapflow #appetize #browserstack #android #ios #qa #mobiledev #apptesting #emulator #qatools