AI にコードを書かせた後、余計なコードを見つけて消す作業があります。
不毛なことなので、それらの作業を減らすためのお作法を紹介します。
以下でも書きましたが、未使用コードの検査に knip を使うことが多いです。
Git の pre commit 時に knip を動かして未使用ファイルを削除するように強制します。
これにより、使われていないコードや未使用な npm package などを消すことができます。
プロジェクトごとに、 knip の設定ファイルを書く必要があります。
AI にコードを書かせると、テキストが他のページと合わない用語を使ったりします。
そういった用語を手直しするのが不毛です。
そこで以下の記事でも触れている通り、画面表示などに使用する文言を言語ファイル( ja.json )として管理します。
その上で、ESLint の設定で 直接テキストを使用できないようにします。
例えば、jsx-no-literals が手っ取り早いでしょう。
これを導入することで、表示するテキストの表記揺れの修正が言語ファイル内で完結します。
そうすると、AI から比較的マシなテキストを書き上げてくれます。
また良くなかった場合も、文言ファイル内の修正だけに止まるため修正が楽になります。
よく AI にコードを書かせていると、試行錯誤によって無駄なコードが生まれることがあります。
基本的に、変更前に戻せる状態を意識しておくと楽です。
うまく行っている状態までをステージに上げておくのです。
こまめにコミットしちゃうのが良いのですが、そうはいかない場合もあります。
そういう場合うまく行っている状態の箇所をステージにあげておけば、AIのコードがNGだった場合にコードをリセットできます。
pre commit 時に、さまざまなチェックを入れておくと安全です。
私の場合は、以下の npm script の ci:fix を pre commit に通すようにしています。
{
"scripts": {
"ci:fix": "pnpm knip:fix && pnpm lint:fix && pnpm format && pnpm check-types && pnpm test:fix",
"knip": "knip",
"knip:fix": "knip --fix",
"lint": "eslint . --max-warnings 0",
"lint:fix": "pnpm lint -- --fix",
"format": "prettier --write \"**/*.{ts,tsx}\"",
"check-types": "tsc --noEmit",
"test": "vitest --run",
"test:fix": "pnpm test -- --update"
}
}knipの未使用コードの削除、lintのチェック、formatで整え、check-typesで型チェック、テストの実行です。
テストにはvitest のテストだけでなく、storybook のテストを実行しています。
Storybook を Vitest Browser Mode で Visual Regression Test (以下、VRT)します。
詳しくは、以下の記事をご参考ください。
VRTに加えて、Storybookのa11yも導入しておきます。
a11yのテストを動かしておくと最低限のa11yのエラーを見つけることができます。
例えば色のコントラストなどが多いです。
いちいち指摘せずとも、テストでエラーになれば AI 側で修正してくれるようになります。
Lintの設定は、自身が手直しをよくするものはLintで対応できるならやっておきます。
例えば、Propsなどの並び順は気になる場合は それらを強制する設定を登録しておきます。
あとは、『classNameを使わせない』という強硬策を取ることもあります。
className で自由にスタイルを書かせると、AI がデザインシステム外のスタイルで仕上げてくることがあります。
基本的に、デザインの最終調整は人間の目でやるべきと思いますが、土台はある程度 AI に書かせたいです。
そこで、ESLintの設定で className を使用させない設定を取り入れます。
設計次第ですが、以下のようなルールで縛っておけば楽です。
className の使用を許可する
class-variance-authority を使用し、UIのバリエーションを定義するこれらのお作法を守っておくと、AI のコーディングからの手直しを比較的減らせることができます。
より効率的に開発していきましょう。
-
※ ログイン不要で投稿できます。
※ 同じブラウザから投稿を削除できます。
0
読み込み中...
タグ「AI」の記事
Claude Code や Codex 等の AI にプルリク(以下、PR)を書かせて効率化することができます。 けれど、その書かれたプルリク説明文、ちゃんと全部読んでいますか? レビュワーの負担になっていませんか? ノイズが多い プルリク
個人ブログ記事の執筆に AI を使わなくなりました。 その理由について、経緯などを含めて紹介します。 ChatGPTが流行り出した時代 その当時は、ブログ記事の粗い原稿を ChatGPT に渡して推敲を依頼していました。 粗い原稿とは、以下
主にWeb関連の個人開発をしている際に心がけていることを書きます。 月末に近づくにつれ、AIの利用上限に達してしまうことがあります。 その状況になった時、以下のいずれかの選択肢が私の中では残っています。 課金して利用上限を増やす 無料モデル
タグ「フロントエンド」の記事
Webフロントエンドのコードレビューをしているときに考えていることについて書きます。 毎日1記事投稿、1記事30分という制約を課していますので、本記事は完璧ではありません。(言い訳) また希望的な考えもあるので、実践していないものもあります
2026年03月12日
最近、iframeを使っています。 クライアントサイドで埋め込む想定で、iframeを使おうとしています。 色々と苦労したことがあったので、書いて残しておこうと思います。 レスポンスヘッダー 前提として、ウェブアプリケーションをプロダクショ
紙を積んだイラストをSVGで書こうとしていました。 (当たり前ですが)図形を表現するためには数学の知識が必要で、学生の頃の記憶を思い出したので疲れました。 所感について、諸々書こうと思います。 成果物 実際に完成したのは、以下の画像ができま
2026年02月17日