Slide 18
Slide 18 text
AIによる漸進的な導入を行う
全置換は失敗する。 4ステップで段階的に進めた
- ① 自前ラッパー @liam-hq/neverthrow を作る
- ② 1〜2パッケージで人間が代表例を書く
- ③ AI (Devin) に他パッケージへ横展開
- ④ ESLint で後戻り禁止
18
2. 実際のプロジェクトに導入した際の Tips
OSSのコードベースに neverthrowを漸進的に導入して、 AIにも人間にも優しいエラーハンドリングを実現する
// configs/eslint/no-throw-error-plugin.js
ThrowStatement(node) {
if (node.argument?.callee?.name === 'Error') {
context.report({
message: 'Use neverthrow Result types instead.',
})
}
}
// configs/eslint/base.js
'no-restricted-imports': ['error', {
paths: [{ name: 'neverthrow',
message: 'Use @liam-hq/neverthrow instead' }],
}]
📎 github.com/liam-hq/liam/.../configs/eslint/no-throw-error-plugin.js