TGViewer
Андруша пишет код Андруша пишет код @xavescor_code · 1.33K subscribers
Post #164 1.32K
Совместимость и технический PR.

Обратная совместимость с конкурентами - это то преимущество, которое почему-то современные решения почти полностью игнорируют. И я не говорю про необходимость обратной совместимости между версиями, которую, к примеру, полностью игнорирует react-router. Я говорю про обратную совместимость между решениями, в случае когда одно решение пытается заменить собой другое.

Возьмём реакт мир: у нас куча библиотек, которые являются "убийцами редакса", "убийцами react-router", "убийцами реакта", но которые предоставляют примерно 0 совместимости с предыдущими решениями. Почему-то авторы либ считают, что пользователи с радостью будут брать и переписывать проект полностью на новое решение, что пользователи сами будут придумывать как дружить старое решение и новое, что нужно лишь придумывать как делать прекрасный новый мир, не задумываясь над старым.


Хорошим примером противоположного подхода является мной обожаемый vitest, на который мы недавно мигрировались буквально за неделю с jest'a. Причём большую часть времени мы занимались тем, чтобы подружить vitest с нашей немного чуждой системой для фронтенд мира(Bazel). Схожее апи с jest'ом на 90-95% позволило не просто переписывать тесты, не включая мозг, а перепоручить этот опыт LLMке, которая сделала почти что всю работу за людей. Достаточно было промта для chatgpt 4o:

Rewrite the typescript file from jest to vitest. Also port the script to ESM. Give me ONLY the total file content. No explanations!. No markdown. I want to paste your response directly into the file. Do NOT erase types inside the file.
[File]
${content}

И 95% кода было успешно переписано. Да, в некоторых ситуациях были ошибки. Но их легко поправить руками. Но почти вся рутина была автоматизирована.


Другим хорошим примером является preact. Эти ребята сделали почти полную совместимость с реактом, добавив нормальное решение в виде сигналов. Что позволяет взять и максимально постепенно переписывать код на реактивные рельсы. В отличии от solid'a, который паразитирует на реакте, но заставляет полностью переписывать код.

Ещё один хороший концептуально пример: https://github.com/SukkaW/nolyfill. Чувак ничего не изобретает и просто создаёт более эффективные решения на основе существующих апи.

Если вы захотите разрабатывать библиотеку, то сначала подумайте как ваша концепция ложится на то, чтобы создать имплементацию текущего плохого решения на вашей либе. К примеру, как реализовать редакс на ваших примитивах, чтобы пользователь 1 движением мог заменить его на вашу реализацию. Потому что простая интеграция - это ключ к продажам вашего решения.
GitHub GitHub - SukkaW/nolyfill: Speed up your package installation process, reduce your disk usage, and extend the lifespan of your precious… Speed up your package installation process, reduce your disk usage, and extend the lifespan of your precious SSD. - SukkaW/nolyfill
  • 👍 20
  • 💩 5
  • 🤡 4
More from @xavescor_code
  1. Sep 29, 2026https://x.com/thsottiaux/status/2104823812042940713 Ну, впервые в жизни ванганул, и походу…
  2. Sep 24, 2026Тут в моём казахстанском пузыре происходит прикольная вещь. Ща, в пятницу, в кз обьявлен т…
  3. Sep 22, 2026Чуть чуть проснусь от спячки по важному поводу. Мы походу пришли к AGI в ЛЛМках. Ну, точне…
  4. Aug 6, 2026Уже почти месяц прошел после взлома моделями OpenAI – HuggingFace. Спустя это время каждая…
  5. Jul 28, 2026https://t.me/denissexy/11581 Знаете, меня очень сильно удивляет вопрос: какого чёрта подоб…
  6. Jul 28, 2026Антропик: китайцы дистилируют наши модели, надо забанить их Опенаи: китайцы дистилируют на…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →