Codemod в JavaScript: как менять сотни файлов кода с помощью jscodeshift

Всем привет! Меня зовут Саша. Я тимлид команды разработки личного кабинета пользователя в Банки.ру. В какой-то момент я понял, что мы тратим слишком много времени на однотипные изменения в коде: обновления зависимостей, правки после breaking changes, синхронизация между проектами. Всё это делается через поиск, регулярки и ручное редактирование и быстро начинает масштабироваться в боль. В статье разобрал, как можно подойти к этому иначе: использовать codemod и jscodeshift, чтобы автоматизировать такие изменения и применять их сразу ко всей кодовой базе. Как это работает через AST, и посмотрим на примере, как писать свои трансформации.

https://habr.com/ru/companies/banki/articles/1011580/

#codemod #jscodeshift #AST_JavaScript #рефакторинг_JavaScript #автоматический_рефакторинг_кода #AST_transformation #JavaScript_codemod #AST_Explorer #code_transformation #массовый_рефакторинг_кода

Codemod в JavaScript: как менять сотни файлов кода с помощью jscodeshift

Всем привет! Меня зовут Саша. Я тимлид команды разработки личного кабинета пользователя в Банки.ру, и хочу рассказать про свой опыт изучения codemod и jscodeshift для оптимизации работы с кодом. ...

Хабр

[AI 시대, 리팩터링은 더 이상 노가다가 아니다

AI와 Codemod(jscodeshift)를 활용해 대규모 리팩터링을 효율적으로 수행한 사례를 소개. Deprecated Typography 컴포넌트를 새 Design System으로 자동 변환하여 코드 일관성과 온보딩 경험을 개선했다.

https://news.hada.io/topic?id=26040

#ai #refactoring #codemod #designsystem #jscodeshift

AI 시대, 리팩터링은 더 이상 노가다가 아니다

<p>AI + Codemod로 Design System 레거시를 정리한 글입니다.<br /> 대규모 리팩터링을 앞두고 있는 분들께 참고가 되었으면 합니다.</p> <h3>문제...

GeekNews

Một kỹ sư vừa phát triển công cụ viết lại cấu trúc nhỏ gọn, học các mẫu chuyển đổi từ các ví dụ trước-sau. Nó không dùng LLM hay regex, hoạt động tốt trong nhiều lĩnh vực như đại số, logic, và thậm chí tự động chuyển đổi mã (ví dụ: Lodash sang optional chaining). Mời mọi người thử nghiệm và tìm lỗi!
#côngnghệ #viếtlại #mãnguồn #AI #họcmáy #tech #rewriteengine #codemod #machinelearning #programming

https://www.reddit.com/r/LocalLLaMA/comments/1pflf9f/ive_been_experimenting_with_a_small_structura

📦 Express 5.1.0 is out!
✅ v5 is now the default on #npm
🛠️ New #codemod for easy migration from v4
📅 LTS timeline announced (including v4 EOL)

Big step for #express 👏👏👏

👉 https://expressjs.com/2025/03/31/v5-1-latest-release.html

[email protected]: Now the Default on npm with LTS Timeline

Express 5.1.0 is now the default on npm, and we're introducing an official LTS schedule for the v4 and v5 release lines.

Say hello to ember-vite-codemod! Bringing Vite to your Ember app is now just one command away 🐹 As part of the Ember Initiative, we built a codemod that upgrades classic Ember apps to Vite smoothly. Step-by-step, keeping Ember modern.

Read more on @BlueCut piece ➡️ https://mainmatter.com/blog/2025/03/10/ember-vite-codemod/

#EmberJS #Vite #Codemod #WebDev

Ember Vite Codemod - Mainmatter

Announcing the first release of ember-vite-codemod

Mainmatter
BlueCutOfficial/articles/ember-initiative-journey/week-3.md at main · BlueCutOfficial/BlueCutOfficial

Contribute to BlueCutOfficial/BlueCutOfficial development by creating an account on GitHub.

GitHub
BlueCutOfficial/articles/ember-initiative-journey/week-1.md at main · BlueCutOfficial/BlueCutOfficial

Contribute to BlueCutOfficial/BlueCutOfficial development by creating an account on GitHub.

GitHub
Has anyone had any experience using Syntax Tree to create codemods? I have used Synvert in the past, but wondering if Syntax Tree is also capable of playing that role. #formatting #codemod #refactoring

Мощь AST в действии, или как переписать код 10 летней давности на ES6-модули и ничего не сломать

Всем привет! Меня зовут Кирилл и я работаю фронтенд-разработчиком. Я расскажу о том, как мы перевели несколько тысяч файлов, написанных на JavaScript, с легаси кода, который использовал goog.module , на новые ES6-модули с помощью построения и преобразования абстрактного синтаксического дерева. Эта статья будет полезна тем, у кого тоже возникла потребность в рефакторинге большого количества кода.

https://habr.com/ru/companies/ispring/articles/822975/

#javascript #jscodeshift #ast #рефакторинг #codemod

Мощь AST в действии, или как переписать код 10 летней давности на ES6-модули и ничего не сломать

Всем привет! Меня зовут Кирилл и я работаю фронтенд-разработчиком. Я расскажу о том, как мы перевели несколько тысяч файлов, написанных на JavaScript, с легаси кода, который использовал goog.module ,...

Хабр

Принципы непрерывного рефакторинга

Работа со старым кодом для многих команд является частью повседневных обязанностей. За свою карьеру я видел и применял разные способы борьбы с тяжестью легаси. Они обычно сводились к одному из трёх основных сценариев: " Работает - не трогай! ": вообще забить на чистки и ничего не менять. В некоторых случаях валидный подход. Но в коде, который приходится менять хотя бы даже эпизодически (фиксы багов, мелкие доделки, смена окружения и т.п.), со временем неизбежно приводит к катастрофе. Вам надо что-то поменять в коде, и это оказывается невозможно сделать легко. Даже за тривиальные изменения приходится платить большой кровью. " Я прочитал Роберта Мартина ": включаем чистки в обычный код. Надеваем галстук бойскаута и чистим код прямо по ходу работы над текущими задачами. Отправляем его коллегам на ревью и ждём несколько дней, покуда они не разберутся, где заканчиваются рефакторинги и начинаются непосредственно изменения по задаче. Или же уходим по кривой дорожке рефакторингов в тёмный лес и продалбываем к чертям все изначальные сроки. Когда начинаешь приводить код к идеалу, не всегда бывает так легко остановиться! " Нужен порядок и учёт ": делаем отдельные коммиты с чистками, но нерегулярно - только когда в дело берётся соответствующий тикет. Правда, тикеты на рефакторинг почему-то регулярно получают самый низкий приоритет во время планирования и маринуются в беклоге месяцами. Но что уж тут поделать? Это всё ловушки! Все эти сценарии страдают одной общей проблемой: темп чисток неудовлетворительно низок. Код зарастает грязью и происходит неизбежная деградация. Задачи делаются всё медленнее, процент дефектов всё выше, отвращение от работы с кодом растёт, новички адаптируются всё медленнее и медленнее. Все несчастны и не знают, что делать. За прошедший год я нащупал и отточил ещё один подход, который лишён указанных недостатков. И теперь готов поделиться им с вами.

https://habr.com/ru/articles/774722/

#refactoring #clean_code #codemod #siebenapp #mikado_method #legacy_code

Принципы непрерывного рефакторинга

Работа со старым кодом для многих команд является частью повседневных обязанностей. За свою карьеру я видел и применял разные способы борьбы с тяжестью легаси. Они обычно сводились к одному из трёх...

Хабр