home.social

#retry — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #retry, aggregated by home.social.

  1. Outbox-паттерн для мобильного мессенджера: как Telegram не теряет сообщения и почему ваш код их теряет

    Это седьмая статья про инженерные решения в ONEMIX. Тема узкая, но болезненная для каждого кто делал мобильное приложение с отправкой сообщений или файлов. Сценарий с которого всё началось у меня. Пользователь в чате выбирает большое видео, нажимает отправить. Видео начинает грузиться. Пользователь нетерпеливый, прокручивает вверх посмотреть переписку, потом переходит в другой чат, потом возвращается. Что должен он увидеть? В Telegram он увидит свой видео-бабл с прогрессбаром, как и оставил. В большинстве самописных мессенджеров он увидит пустой чат без своего сообщения , потому что upload жил в state экрана, а экран размонтировался. XHR продолжал работать в фоне, файл загрузился на сервер, но результат пришёл в null, потому что setter уже не существует. Сообщение фактически отправлено, но пользователь об этом не знает. Это боль которая лечится не "правильным useState", а отдельным архитектурным слоем . Этот слой называется outbox. В этой статье разберу свою реализацию из ONEMIX, это 820 строк TypeScript которые делают то что в Telegram кажется естественным.

    habr.com/ru/articles/1034690/

    #react_native #мессенджер #optimistic_update #outbox #мобильная_разработка #архитектура #telegram #асинхронность #обработка_ошибок #retry

  2. Outbox-паттерн для мобильного мессенджера: как Telegram не теряет сообщения и почему ваш код их теряет

    Это седьмая статья про инженерные решения в ONEMIX. Тема узкая, но болезненная для каждого кто делал мобильное приложение с отправкой сообщений или файлов. Сценарий с которого всё началось у меня. Пользователь в чате выбирает большое видео, нажимает отправить. Видео начинает грузиться. Пользователь нетерпеливый, прокручивает вверх посмотреть переписку, потом переходит в другой чат, потом возвращается. Что должен он увидеть? В Telegram он увидит свой видео-бабл с прогрессбаром, как и оставил. В большинстве самописных мессенджеров он увидит пустой чат без своего сообщения , потому что upload жил в state экрана, а экран размонтировался. XHR продолжал работать в фоне, файл загрузился на сервер, но результат пришёл в null, потому что setter уже не существует. Сообщение фактически отправлено, но пользователь об этом не знает. Это боль которая лечится не "правильным useState", а отдельным архитектурным слоем . Этот слой называется outbox. В этой статье разберу свою реализацию из ONEMIX, это 820 строк TypeScript которые делают то что в Telegram кажется естественным.

    habr.com/ru/articles/1034690/

    #react_native #мессенджер #optimistic_update #outbox #мобильная_разработка #архитектура #telegram #асинхронность #обработка_ошибок #retry

  3. Outbox-паттерн для мобильного мессенджера: как Telegram не теряет сообщения и почему ваш код их теряет

    Это седьмая статья про инженерные решения в ONEMIX. Тема узкая, но болезненная для каждого кто делал мобильное приложение с отправкой сообщений или файлов. Сценарий с которого всё началось у меня. Пользователь в чате выбирает большое видео, нажимает отправить. Видео начинает грузиться. Пользователь нетерпеливый, прокручивает вверх посмотреть переписку, потом переходит в другой чат, потом возвращается. Что должен он увидеть? В Telegram он увидит свой видео-бабл с прогрессбаром, как и оставил. В большинстве самописных мессенджеров он увидит пустой чат без своего сообщения , потому что upload жил в state экрана, а экран размонтировался. XHR продолжал работать в фоне, файл загрузился на сервер, но результат пришёл в null, потому что setter уже не существует. Сообщение фактически отправлено, но пользователь об этом не знает. Это боль которая лечится не "правильным useState", а отдельным архитектурным слоем . Этот слой называется outbox. В этой статье разберу свою реализацию из ONEMIX, это 820 строк TypeScript которые делают то что в Telegram кажется естественным.

    habr.com/ru/articles/1034690/

    #react_native #мессенджер #optimistic_update #outbox #мобильная_разработка #архитектура #telegram #асинхронность #обработка_ошибок #retry

  4. Outbox-паттерн для мобильного мессенджера: как Telegram не теряет сообщения и почему ваш код их теряет

    Это седьмая статья про инженерные решения в ONEMIX. Тема узкая, но болезненная для каждого кто делал мобильное приложение с отправкой сообщений или файлов. Сценарий с которого всё началось у меня. Пользователь в чате выбирает большое видео, нажимает отправить. Видео начинает грузиться. Пользователь нетерпеливый, прокручивает вверх посмотреть переписку, потом переходит в другой чат, потом возвращается. Что должен он увидеть? В Telegram он увидит свой видео-бабл с прогрессбаром, как и оставил. В большинстве самописных мессенджеров он увидит пустой чат без своего сообщения , потому что upload жил в state экрана, а экран размонтировался. XHR продолжал работать в фоне, файл загрузился на сервер, но результат пришёл в null, потому что setter уже не существует. Сообщение фактически отправлено, но пользователь об этом не знает. Это боль которая лечится не "правильным useState", а отдельным архитектурным слоем . Этот слой называется outbox. В этой статье разберу свою реализацию из ONEMIX, это 820 строк TypeScript которые делают то что в Telegram кажется естественным.

    habr.com/ru/articles/1034690/

    #react_native #мессенджер #optimistic_update #outbox #мобильная_разработка #архитектура #telegram #асинхронность #обработка_ошибок #retry

  5. Postgres advisory locks на Neon ломаются от TCP-сброса. История четырёх фиксов retry-логики

    Расскажу про четыре production-инцидента на одном куске кода за десять дней. В каждом я думал, что разобрался. Закончилось тем, что я выкинул pg_advisory_lock из retry-пути и поставил FOR UPDATE SKIP LOCKED . Day-generation лок остался advisory-ным, но утечка там не критична - почему именно, разберу в конце. Полезно, если у вас Postgres на Neon (или Supabase, или Aiven serverless) и где-то по коду есть session-scoped advisory locks для координации задач между репликами.

    habr.com/ru/articles/1031236/

    #postgresql #advisory_lock #neon #serverless #retry #идемпотентность #distributed_lock

  6. Postgres advisory locks на Neon ломаются от TCP-сброса. История четырёх фиксов retry-логики

    Расскажу про четыре production-инцидента на одном куске кода за десять дней. В каждом я думал, что разобрался. Закончилось тем, что я выкинул pg_advisory_lock из retry-пути и поставил FOR UPDATE SKIP LOCKED . Day-generation лок остался advisory-ным, но утечка там не критична - почему именно, разберу в конце. Полезно, если у вас Postgres на Neon (или Supabase, или Aiven serverless) и где-то по коду есть session-scoped advisory locks для координации задач между репликами.

    habr.com/ru/articles/1031236/

    #postgresql #advisory_lock #neon #serverless #retry #идемпотентность #distributed_lock

  7. Postgres advisory locks на Neon ломаются от TCP-сброса. История четырёх фиксов retry-логики

    Расскажу про четыре production-инцидента на одном куске кода за десять дней. В каждом я думал, что разобрался. Закончилось тем, что я выкинул pg_advisory_lock из retry-пути и поставил FOR UPDATE SKIP LOCKED . Day-generation лок остался advisory-ным, но утечка там не критична - почему именно, разберу в конце. Полезно, если у вас Postgres на Neon (или Supabase, или Aiven serverless) и где-то по коду есть session-scoped advisory locks для координации задач между репликами.

    habr.com/ru/articles/1031236/

    #postgresql #advisory_lock #neon #serverless #retry #идемпотентность #distributed_lock

  8. Postgres advisory locks на Neon ломаются от TCP-сброса. История четырёх фиксов retry-логики

    Расскажу про четыре production-инцидента на одном куске кода за десять дней. В каждом я думал, что разобрался. Закончилось тем, что я выкинул pg_advisory_lock из retry-пути и поставил FOR UPDATE SKIP LOCKED . Day-generation лок остался advisory-ным, но утечка там не критична - почему именно, разберу в конце. Полезно, если у вас Postgres на Neon (или Supabase, или Aiven serverless) и где-то по коду есть session-scoped advisory locks для координации задач между репликами.

    habr.com/ru/articles/1031236/

    #postgresql #advisory_lock #neon #serverless #retry #идемпотентность #distributed_lock

  9. Circuit breaker на Go: пишем свой за 100 строк и разбираем, почему gobreaker работает иначе

    Когда один зависимый сервис начинает отвечать медленнее, проблема быстро перестает быть локальной: горутины ждут, соединения заканчиваются, таймауты разъезжаются по всей цепочке. Circuit breaker помогает остановить этот каскад до того, как он положит соседние части системы. В статье разберем, как написать простой breaker на Go примерно за 100 строк, где у такой реализации границы применимости и почему production‑библиотека gobreaker устроена гибче.

    habr.com/ru/companies/otus/art

    #Circuit_breaker #Go #Golang #gobreaker #отказоустойчивость #таймауты #retry #микросервисы #downstreamсервисы #планировщик_Go

  10. Circuit breaker на Go: пишем свой за 100 строк и разбираем, почему gobreaker работает иначе

    Когда один зависимый сервис начинает отвечать медленнее, проблема быстро перестает быть локальной: горутины ждут, соединения заканчиваются, таймауты разъезжаются по всей цепочке. Circuit breaker помогает остановить этот каскад до того, как он положит соседние части системы. В статье разберем, как написать простой breaker на Go примерно за 100 строк, где у такой реализации границы применимости и почему production‑библиотека gobreaker устроена гибче.

    habr.com/ru/companies/otus/art

    #Circuit_breaker #Go #Golang #gobreaker #отказоустойчивость #таймауты #retry #микросервисы #downstreamсервисы #планировщик_Go

  11. Circuit breaker на Go: пишем свой за 100 строк и разбираем, почему gobreaker работает иначе

    Когда один зависимый сервис начинает отвечать медленнее, проблема быстро перестает быть локальной: горутины ждут, соединения заканчиваются, таймауты разъезжаются по всей цепочке. Circuit breaker помогает остановить этот каскад до того, как он положит соседние части системы. В статье разберем, как написать простой breaker на Go примерно за 100 строк, где у такой реализации границы применимости и почему production‑библиотека gobreaker устроена гибче.

    habr.com/ru/companies/otus/art

    #Circuit_breaker #Go #Golang #gobreaker #отказоустойчивость #таймауты #retry #микросервисы #downstreamсервисы #планировщик_Go

  12. Circuit breaker на Go: пишем свой за 100 строк и разбираем, почему gobreaker работает иначе

    Когда один зависимый сервис начинает отвечать медленнее, проблема быстро перестает быть локальной: горутины ждут, соединения заканчиваются, таймауты разъезжаются по всей цепочке. Circuit breaker помогает остановить этот каскад до того, как он положит соседние части системы. В статье разберем, как написать простой breaker на Go примерно за 100 строк, где у такой реализации границы применимости и почему production‑библиотека gobreaker устроена гибче.

    habr.com/ru/companies/otus/art

    #Circuit_breaker #Go #Golang #gobreaker #отказоустойчивость #таймауты #retry #микросервисы #downstreamсервисы #планировщик_Go

  13. Spring, kafka, неблокирующий retry, лаги

    История об особенностях использования механизмов retry , которые дает spring-kafka из коробки и проблемах с производительностью. Есть нужно сделать асинхронный retry сообщений на топике, который бы не блокировал основной поток сообщений «легко и быстро» — вам сюда😊 (А потом после «легко и быстро» несколько дней дебажить 🤔 )

    habr.com/ru/articles/1018174/

    #java #springboot #kafka #retry #scheduler

  14. Spring, kafka, неблокирующий retry, лаги

    История об особенностях использования механизмов retry , которые дает spring-kafka из коробки и проблемах с производительностью. Есть нужно сделать асинхронный retry сообщений на топике, который бы не блокировал основной поток сообщений «легко и быстро» — вам сюда😊 (А потом после «легко и быстро» несколько дней дебажить 🤔 )

    habr.com/ru/articles/1018174/

    #java #springboot #kafka #retry #scheduler

  15. Spring, kafka, неблокирующий retry, лаги

    История об особенностях использования механизмов retry , которые дает spring-kafka из коробки и проблемах с производительностью. Есть нужно сделать асинхронный retry сообщений на топике, который бы не блокировал основной поток сообщений «легко и быстро» — вам сюда😊 (А потом после «легко и быстро» несколько дней дебажить 🤔 )

    habr.com/ru/articles/1018174/

    #java #springboot #kafka #retry #scheduler

  16. Spring, kafka, неблокирующий retry, лаги

    История об особенностях использования механизмов retry , которые дает spring-kafka из коробки и проблемах с производительностью. Есть нужно сделать асинхронный retry сообщений на топике, который бы не блокировал основной поток сообщений «легко и быстро» — вам сюда😊 (А потом после «легко и быстро» несколько дней дебажить 🤔 )

    habr.com/ru/articles/1018174/

    #java #springboot #kafka #retry #scheduler

  17. Когда стойка умирает, а 5xx остаётся нулевым. Разбор скрытой деградации PostgreSQL

    09:12 — db-replica-02 connection timeout HTTP 5xx = 0.2% HAProxy зелёный p50 = 38-42ms Replica в другой стойке недоступна Отказоустойчивость потеряна Инцидент не объявлен Читать разбор

    habr.com/ru/articles/1002056/

    #PostgreSQL #отказоустойчивость #деградация #retry #HAProxy #PgBouncer #ToR #инцидент #latency #SRE

  18. Когда стойка умирает, а 5xx остаётся нулевым. Разбор скрытой деградации PostgreSQL

    09:12 — db-replica-02 connection timeout HTTP 5xx = 0.2% HAProxy зелёный p50 = 38-42ms Replica в другой стойке недоступна Отказоустойчивость потеряна Инцидент не объявлен Читать разбор

    habr.com/ru/articles/1002056/

    #PostgreSQL #отказоустойчивость #деградация #retry #HAProxy #PgBouncer #ToR #инцидент #latency #SRE

  19. Когда стойка умирает, а 5xx остаётся нулевым. Разбор скрытой деградации PostgreSQL

    09:12 — db-replica-02 connection timeout HTTP 5xx = 0.2% HAProxy зелёный p50 = 38-42ms Replica в другой стойке недоступна Отказоустойчивость потеряна Инцидент не объявлен Читать разбор

    habr.com/ru/articles/1002056/

    #PostgreSQL #отказоустойчивость #деградация #retry #HAProxy #PgBouncer #ToR #инцидент #latency #SRE

  20. Когда стойка умирает, а 5xx остаётся нулевым. Разбор скрытой деградации PostgreSQL

    09:12 — db-replica-02 connection timeout HTTP 5xx = 0.2% HAProxy зелёный p50 = 38-42ms Replica в другой стойке недоступна Отказоустойчивость потеряна Инцидент не объявлен Читать разбор

    habr.com/ru/articles/1002056/

    #PostgreSQL #отказоустойчивость #деградация #retry #HAProxy #PgBouncer #ToR #инцидент #latency #SRE

  21. Я почувствовал себя клоуном, подключая 5 библиотек ради устойчивого API-клиента

    Если ваш API-клиент выглядит как башня декораторов — вы уже в зоне инженерной боли. Рассказываю, как я из этого выбрался.

    habr.com/ru/articles/993206/

    #python #resilence #api #retry #circuit_breaker

  22. Я почувствовал себя клоуном, подключая 5 библиотек ради устойчивого API-клиента

    Если ваш API-клиент выглядит как башня декораторов — вы уже в зоне инженерной боли. Рассказываю, как я из этого выбрался.

    habr.com/ru/articles/993206/

    #python #resilence #api #retry #circuit_breaker

  23. Я почувствовал себя клоуном, подключая 5 библиотек ради устойчивого API-клиента

    Если ваш API-клиент выглядит как башня декораторов — вы уже в зоне инженерной боли. Рассказываю, как я из этого выбрался.

    habr.com/ru/articles/993206/

    #python #resilence #api #retry #circuit_breaker

  24. Я почувствовал себя клоуном, подключая 5 библиотек ради устойчивого API-клиента

    Если ваш API-клиент выглядит как башня декораторов — вы уже в зоне инженерной боли. Рассказываю, как я из этого выбрался.

    habr.com/ru/articles/993206/

    #python #resilence #api #retry #circuit_breaker

  25. Одно кольцо, чтобы повелевать остальными: собираем лимитирование, ретраи и circuit breaker в одной библиотеке

    Я чувстовал себя клоуном подключая 5ю библиотеку для написания устойчивого к ошибкам API клиента. После этого я написал библиотеку объединяющую все воедино. Мотивация и история архитектурных решений.

    habr.com/ru/articles/992902/

    #отказоустойчивость #отказоустойчивые_решения #отказоустойчивые_системы #отказоустойчивая_архитектура #python #ratelimiting #retry #pypi

  26. Одно кольцо, чтобы повелевать остальными: собираем лимитирование, ретраи и circuit breaker в одной библиотеке

    Я чувстовал себя клоуном подключая 5ю библиотеку для написания устойчивого к ошибкам API клиента. После этого я написал библиотеку объединяющую все воедино. Мотивация и история архитектурных решений.

    habr.com/ru/articles/992902/

    #отказоустойчивость #отказоустойчивые_решения #отказоустойчивые_системы #отказоустойчивая_архитектура #python #ratelimiting #retry #pypi

  27. Одно кольцо, чтобы повелевать остальными: собираем лимитирование, ретраи и circuit breaker в одной библиотеке

    Я чувстовал себя клоуном подключая 5ю библиотеку для написания устойчивого к ошибкам API клиента. После этого я написал библиотеку объединяющую все воедино. Мотивация и история архитектурных решений.

    habr.com/ru/articles/992902/

    #отказоустойчивость #отказоустойчивые_решения #отказоустойчивые_системы #отказоустойчивая_архитектура #python #ratelimiting #retry #pypi

  28. Одно кольцо, чтобы повелевать остальными: собираем лимитирование, ретраи и circuit breaker в одной библиотеке

    Я чувстовал себя клоуном подключая 5ю библиотеку для написания устойчивого к ошибкам API клиента. После этого я написал библиотеку объединяющую все воедино. Мотивация и история архитектурных решений.

    habr.com/ru/articles/992902/

    #отказоустойчивость #отказоустойчивые_решения #отказоустойчивые_системы #отказоустойчивая_архитектура #python #ratelimiting #retry #pypi

  29. [Перевод] Первый взгляд на новые фоновые задачи в Django 6.0

    Команда Python for Devs подготовила перевод статьи о новых фоновых задачах в Django 6.0. Фреймворк наконец получил встроенный API для очередей задач — но без воркеров, так что чудес пока ждать рано. Автор показывает, зачем это обновление всё равно важно, как оно работает внутри и что можно построить поверх него уже сегодня.

    habr.com/ru/articles/972320/

    #Django #задачи #backend #worker #очередь #выполнение #retry

  30. [Перевод] Первый взгляд на новые фоновые задачи в Django 6.0

    Команда Python for Devs подготовила перевод статьи о новых фоновых задачах в Django 6.0. Фреймворк наконец получил встроенный API для очередей задач — но без воркеров, так что чудес пока ждать рано. Автор показывает, зачем это обновление всё равно важно, как оно работает внутри и что можно построить поверх него уже сегодня.

    habr.com/ru/articles/972320/

    #Django #задачи #backend #worker #очередь #выполнение #retry

  31. [Перевод] Первый взгляд на новые фоновые задачи в Django 6.0

    Команда Python for Devs подготовила перевод статьи о новых фоновых задачах в Django 6.0. Фреймворк наконец получил встроенный API для очередей задач — но без воркеров, так что чудес пока ждать рано. Автор показывает, зачем это обновление всё равно важно, как оно работает внутри и что можно построить поверх него уже сегодня.

    habr.com/ru/articles/972320/

    #Django #задачи #backend #worker #очередь #выполнение #retry

  32. [Перевод] Первый взгляд на новые фоновые задачи в Django 6.0

    Команда Python for Devs подготовила перевод статьи о новых фоновых задачах в Django 6.0. Фреймворк наконец получил встроенный API для очередей задач — но без воркеров, так что чудес пока ждать рано. Автор показывает, зачем это обновление всё равно важно, как оно работает внутри и что можно построить поверх него уже сегодня.

    habr.com/ru/articles/972320/

    #Django #задачи #backend #worker #очередь #выполнение #retry

  33. A quotation from Charles Kettering

    [T]he more education a man has, the less likely he is to invent new things. Possibly this is because from the moment the boy or girl starts in school he or she is examined three or four times a year and a failure or two and he or she is out. Now because an inventor works differently, he thinks that’s all wrong. He knows he’ll never go far on any problem before he strikes snags. He may flunk 999 times but if on his 1,000th try he succeeds, he wins! The only time you don’t want to fail is the last time you try a thing.

    Charles F. Kettering (1876-1958) American inventor, engineer, researcher, businessman
    Essay (1952-01), “Don’t Be Afraid to Stumble,” The Rotarian, Vol. 80, No. 1

    More info about this quote: wist.info/kettering-charles/30…

    #quote #quotes #quotation #qotd #kettering #charleskettering #again #attempt #experimentation #fail #failure #faultanalysis #learning #perseverance #repetition #retry #success #testing #trialanderror #try #failforward

  34. A quotation from Charles Kettering

    [T]he more education a man has, the less likely he is to invent new things. Possibly this is because from the moment the boy or girl starts in school he or she is examined three or four times a year and a failure or two and he or she is out. Now because an inventor works differently, he thinks that’s all wrong. He knows he’ll never go far on any problem before he strikes snags. He may flunk 999 times but if on his 1,000th try he succeeds, he wins! The only time you don’t want to fail is the last time you try a thing.

    Charles F. Kettering (1876-1958) American inventor, engineer, researcher, businessman
    Essay (1952-01), “Don’t Be Afraid to Stumble,” The Rotarian, Vol. 80, No. 1

    More info about this quote: wist.info/kettering-charles/30…

    #quote #quotes #quotation #qotd #kettering #charleskettering #again #attempt #experimentation #fail #failure #faultanalysis #learning #perseverance #repetition #retry #success #testing #trialanderror #try #failforward

  35. A quotation from Charles Kettering

    [T]he more education a man has, the less likely he is to invent new things. Possibly this is because from the moment the boy or girl starts in school he or she is examined three or four times a year and a failure or two and he or she is out. Now because an inventor works differently, he thinks that’s all wrong. He knows he’ll never go far on any problem before he strikes snags. He may flunk 999 times but if on his 1,000th try he succeeds, he wins! The only time you don’t want to fail is the last time you try a thing.

    Charles F. Kettering (1876-1958) American inventor, engineer, researcher, businessman
    Essay (1952-01), “Don’t Be Afraid to Stumble,” The Rotarian, Vol. 80, No. 1

    More info about this quote: wist.info/kettering-charles/30…

    #quote #quotes #quotation #qotd #kettering #charleskettering #again #attempt #experimentation #fail #failure #faultanalysis #learning #perseverance #repetition #retry #success #testing #trialanderror #try #failforward

  36. A quotation from Charles Kettering

    [T]he more education a man has, the less likely he is to invent new things. Possibly this is because from the moment the boy or girl starts in school he or she is examined three or four times a year and a failure or two and he or she is out. Now because an inventor works differently, he thinks that’s all wrong. He knows he’ll never go far on any problem before he strikes snags. He may flunk 999 times but if on his 1,000th try he succeeds, he wins! The only time you don’t want to fail is the last time you try a thing.

    Charles F. Kettering (1876-1958) American inventor, engineer, researcher, businessman
    Essay (1952-01), “Don’t Be Afraid to Stumble,” The Rotarian, Vol. 80, No. 1

    More info about this quote: wist.info/kettering-charles/30…

    #quote #quotes #quotation #qotd #kettering #charleskettering #again #attempt #experimentation #fail #failure #faultanalysis #learning #perseverance #repetition #retry #success #testing #trialanderror #try #failforward

  37. A quotation from Charles Kettering

    [T]he more education a man has, the less likely he is to invent new things. Possibly this is because from the moment the boy or girl starts in school he or she is examined three or four times a year and a failure or two and he or she is out. Now because an inventor works differently, he thinks that’s all wrong. He knows he’ll never go far on any problem before he strikes snags. He may flunk 999 times but if on his 1,000th try he succeeds, he wins! The only time you don’t want to fail is the last time you try a thing.

    Charles F. Kettering (1876-1958) American inventor, engineer, researcher, businessman
    Essay (1952-01), “Don’t Be Afraid to Stumble,” The Rotarian, Vol. 80, No. 1

    More info about this quote: wist.info/kettering-charles/30…

    #quote #quotes #quotation #qotd #kettering #charleskettering #again #attempt #experimentation #fail #failure #faultanalysis #learning #perseverance #repetition #retry #success #testing #trialanderror #try #failforward

  38. Oh, joy! 🤦‍♂️ Yet another command-line tool that lets you #retry that command you *already* know is going to fail. Because obviously, the solution to bad code is to make it fail faster! 🚀 Why fix bugs when you can just keep smashing your head against the keyboard with style? 🧨
    github.com/MaxBondABE/attempt #commandline #tools #badcode #failfast #codinghumor #developerlife #HackerNews #ngated

  39. Oh, joy! 🤦‍♂️ Yet another command-line tool that lets you #retry that command you *already* know is going to fail. Because obviously, the solution to bad code is to make it fail faster! 🚀 Why fix bugs when you can just keep smashing your head against the keyboard with style? 🧨
    github.com/MaxBondABE/attempt #commandline #tools #badcode #failfast #codinghumor #developerlife #HackerNews #ngated

  40. Oh, joy! 🤦‍♂️ Yet another command-line tool that lets you #retry that command you *already* know is going to fail. Because obviously, the solution to bad code is to make it fail faster! 🚀 Why fix bugs when you can just keep smashing your head against the keyboard with style? 🧨
    github.com/MaxBondABE/attempt #commandline #tools #badcode #failfast #codinghumor #developerlife #HackerNews #ngated

  41. Oh, joy! 🤦‍♂️ Yet another command-line tool that lets you #retry that command you *already* know is going to fail. Because obviously, the solution to bad code is to make it fail faster! 🚀 Why fix bugs when you can just keep smashing your head against the keyboard with style? 🧨
    github.com/MaxBondABE/attempt #commandline #tools #badcode #failfast #codinghumor #developerlife #HackerNews #ngated

  42. Safe-fetch 1.0: от библиотеки к экосистеме за 72 часа

    Продолжение статьи о safe-fetch — библиотеке без try/catch для HTTP. Через день после первой публикации произошла эволюция: stable релиз 1.0 + экспериментальный адаптер для React Query. Рассказываю, как фидбек сообщества превратил простую обертку в экосистему с монорепо. Что нового в релизе

    habr.com/ru/articles/944362/

    #javascript #typescript #fetch #reactquery #http #frontend #opensource #retry #timeout

  43. Safe-fetch 1.0: от библиотеки к экосистеме за 72 часа

    Продолжение статьи о safe-fetch — библиотеке без try/catch для HTTP. Через день после первой публикации произошла эволюция: stable релиз 1.0 + экспериментальный адаптер для React Query. Рассказываю, как фидбек сообщества превратил простую обертку в экосистему с монорепо. Что нового в релизе

    habr.com/ru/articles/944362/

    #javascript #typescript #fetch #reactquery #http #frontend #opensource #retry #timeout