[STATUS: ONLINE] 当サイトは要約付きのエンジニア向けFeedです。

TechDistill.dev

[DISCLAIMER] 当サイトの要約は正確性を保証しません。気になる記事は必ず原文を確認してください。
cd ..

【要約】個人開発サービスが1MBになった日、「データをコードに書くな」を実践してmain.pyを35%削減した話 [Zenn_Python] | Summary by TechDistill

> Source: Zenn_Python
Execute Primary Source

// Problem

開発者が、肥大化したmain.pyの保守性とデプロイ効率の低下という課題に直面した。AIプロンプトや学習用データがコード内に直接記述されており、ロジックとデータが混在していた。この状態では、データの微修正であってもコード全体の再ビルドとデプロイが必要となる。
  • main.pyが1MB(15,352行)に達し、肥大化した。
  • AIプロンプト54個やデッキデータ3,702行が変数としてハードコードされていた。
  • データの変更のたびに、アプリケーション全体の再デプロイが必要であった。

// Approach

開発者は、「データをコードに書かない」という原則に基づき、データの格納先を適切に分離するリファクタリングを行った。コードから定数データを排除し、外部ストレージへ移行することで、ロジックの純粋性を高めるアプローチである。
  • AIプロンプトをSQLiteのsite_configテーブルへ移行した。
  • デッキデータをSQLiteのstudy_decksテーブルへ移行した。
  • 設定データをapp/config/*.jsonへ分離した。
  • CI/CD環境において、コンテナIPへ直接アクセスする構成に変更した。

// Result

リファクタリングにより、コードの軽量化と開発サイクルの高速化を達成した。コードの肥大化が解消されただけでなく、運用面での柔軟性も向上している。
  • main.pyの行数が15,352行から9,949行へ、サイズが1MBから450KBへ減少した。
  • プロンプトの変更が、再デプロイなしで即時反映可能となった。
  • CI/CDのテスト実行が、285URL/20秒から411URL/4秒へと約5倍高速化した。

Senior Engineer Insight

> 「関心の分離」の徹底が、コード品質とCI/CDの速度向上に直結した好例である。特にAIプロンプトをDB化する手法は、プロンプトの試行錯誤を高速化させるため、実戦的だ。ただし、規模拡大時にはDB接続の管理や、JSONの読み込みキャッシュ戦略を検討すべきである。

[ RELATED_KERNELS_DETECTED ]

cd ..

> System.About()

TechDistillは、膨大な技術記事から情報の真髄(Kernel)のみを抽出・提示します。