はじめに
「このCOBOL、誰も読めないから触れません」
え、まだレガシーコードを『聖域』にしてるんですか?AIに貼り付けるだけで現代語訳してくれます
この記事で解決すること
動画「【AI】AIでレガシーCOBOLコードを解読」の補足記事です。
動画では時間の都合で触れられなかった詳細を解説します。
問題:なぜこれが危険なのか
え、まだレガシーコードを『聖域』にしてるんですか?AIに貼り付けるだけで現代語訳してくれます
解決策:明日から使えるベストプラクティス
コードをAIに渡し『このコードを日本語で説明して、Pythonに書き直して』と指示する
以下は、「レガシーコードをAIで現代化する」というテーマで、危険性とベストプラクティスを伝えるための具体的なコード例です。
問題:なぜこれが危険なのか
え、まだレガシーコードを『聖域』にしてるんですか?
「動いているから触らない」は一番危険です。
レガシーコードは仕様が分からなくなり、修正のたびにバグが増えます。
しかし今はAIに貼り付けるだけで、
- 日本語で仕様を説明
- リファクタリング案を提案
- Pythonなど別言語へ変換
まで短時間で行えます。
古いPHPコード(例)
<?php
$conn = mysqli_connect("localhost","root","","shop");
$id = $_GET['id'];
$sql = "SELECT * FROM products WHERE id=".$id;
$result = mysqli_query($conn,$sql);
while($row=mysqli_fetch_assoc($result)){
echo $row["name"];
}
このコードだけを見ると、
- SQLインジェクション対策なし
- エラー処理なし
- コメントなし
- 何をしているか分かりにくい
という典型的なレガシーコードです。
AIへのプロンプト例
以下のコードを解析してください。
1. 初心者にも分かる日本語で説明してください
2. 問題点を列挙してください
3. Pythonへ書き直してください
4. セキュリティを改善してください
5. より読みやすいコードへリファクタリングしてください
AIが説明してくれる内容(例)
このプログラムは
・URLから商品IDを取得する
・データベースから商品情報を検索する
・商品名を表示する
という処理です。
問題点
・SQLインジェクションの危険
・エラー処理がない
・型チェックがない
・コメントがない
・保守性が低い
Python版(改善後)
import sqlite3
def get_product(product_id: int):
conn = sqlite3.connect("shop.db")
cursor = conn.cursor()
cursor.execute(
"SELECT name FROM products WHERE id = ?",
(product_id,)
)
result = cursor.fetchone()
conn.close()
return result
product = get_product(1)
if product:
print(product[0])
else:
print("商品が見つかりません")
改善点
- SQLインジェクション対策
- 関数化
- 型ヒント追加
- 可読性向上
- エラー処理を追加しやすい構成
さらにAIへ依頼できること
このPythonコードに
・型ヒントを追加
・ログ出力
・例外処理
・ユニットテスト
・FastAPI版へ変換
してください。
すると、AIは次のようなコードまで生成できます。
from fastapi import FastAPI
import sqlite3
app = FastAPI()
@app.get("/products/{product_id}")
def get_product(product_id: int):
conn = sqlite3.connect("shop.db")
cursor = conn.cursor()
cursor.execute(
"SELECT name FROM products WHERE id = ?",
(product_id,)
)
row = cursor.fetchone()
conn.close()
if row:
return {"name": row[0]}
return {"error": "Not Found"}
明日から使えるベストプラクティス
レガシーコードを丸ごとAIに渡すのではなく、小さな単位(関数やクラスごと)で解析させると、説明や改善案の精度が高まります。例えば次のように依頼すると効果的です。
このコードを解析してください。
・初心者向けに日本語で説明
・問題点を列挙
・リファクタリング案を提案
・Pythonへ変換
・ユニットテストも作成
・処理フローを図解できるよう文章化
変更前と変更後の違いも比較してください。
このようにAIを活用すれば、ブラックボックス化したレガシーコードの理解、モダン言語への移行、ドキュメント整備までを効率よく進められます。
まとめ
レガシー解読不能を卒業して、AIで技術的負債を一掃しましょう!
#まだやってるんですか #コードの女神はみた #プログラミングスキル
動画で見る
YouTubeショート動画でも同じテーマを解説しています👇
チャンネル登録・高評価もよろしくお願いします 🔔
この記事は「コードの女神は見た!」チャンネルの連動記事です。