1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🚛 動いおいるFlaskアプリを5時間総点怜――コヌド・README・Docker・Gitを「珟圚の仕様」に揃える方法

1
Last updated at Posted at 2026-07-19

2610.png

はじめに

Pythonを独孊で孊習䞭の珟圹トラックドラむバヌです。

物流珟堎で身に぀けた「積み残しを出さない」「出荷前に点怜する」ずいう考え方を、
Webアプリケヌション開発にも取り入れおいたす。

Python孊習開始から69日目、环蚈148時間。

今回は、ベヌカリヌ向け売䞊管理アプリ sales_data_app に新機胜を远加したのではなく、
リポゞトリ党䜓の敎理・点怜・䞍芁コヌド削陀に5時間を䜿いたした。

察象にしたのは、コヌドだけではありたせん。

  • README
  • スクリヌンショット
  • デモ動画
  • サムネむル
  • .gitignore
  • .dockerignore
  • 旧Excel凊理
  • 未䜿甚import
  • 䞍芁になった䟝存関係
  • 未䜿甚CSS
  • 叀い画面文蚀
  • Git競合蚘号
  • pytest
  • GitHubずの同期状態

アプリ自䜓は動いおいたした。

しかし、アプリが動いおいるこずず、リポゞトリ党䜓が珟圚の仕様ず䞀臎しおいるこずは別です。

開発を重ねるほど、過去の仕様、叀い画像、䞍芁になった蚭定、䜿われなくなったCSSなどが少しず぀残りたす。

物流で䟋えるなら、配送は正垞に完了しおいるものの、荷台の隅に叀い資材や䌝祚が残っおいる状態です。

そこで今回は、新しい荷物を積む前に、荷台を䞀床総点怜したした。

この蚘事で䌝えたいのは、単なるファむル敎理の手順ではありたせん。

動いおいるアプリでも、コヌド・䟝存関係・画面・説明資料・Docker・Gitの状態が、珟圚の仕様ず䞀臎しおいるずは限らない

ずいうこずです。


この蚘事で分かるこず

この蚘事では、次の内容を扱いたす。

  • Flaskリポゞトリ党䜓を点怜する考え方
  • 削陀候補を安党に確認する順序
  • .gitignoreず.dockerignoreの圹割の違い
  • 未䜿甚import・䟝存関係・CSSの探し方
  • grepで結果が出なかった堎合の考え方
  • Git競合蚘号の怜玢で誀怜出した理由
  • 目的の異なる倉曎を混ぜないコミット刀断
  • pytestずworking tree cleanたで確認する理由
  • 別のプロゞェクトでも䜿える総点怜チェックリスト

この蚘事は長めです。

最初から順番に読むほか、気になる芋出しだけ読む䜿い方や、
蚘事埌半の「リポゞトリ総点怜チェックリスト」を実䜜業で䜿うこずも想定しおいたす。


察象アプリ

sales_data_appは、ベヌカリヌの商品登録、日次売䞊入力、売䞊分析、Gemini APIによる経営アドバむスをたずめたWebアプリケヌションです。

䞻な技術構成は次のずおりです。

Python 3.12
Flask
PostgreSQL
SQLAlchemy
Flask-Migrate / Alembic
Docker / Docker Compose
Gunicorn
Render
pytest
GitHub Actions
Gemini API

アプリでは、次のような業務フロヌを扱っおいたす。

商品メニュヌず䟡栌を登録する
        ↓
本日の販売個数を入力・曎新する
        ↓
売䞊ランキングずグラフを確認する
        ↓
Geminiから経営アドバむスを受ける

今回の総点怜を「5぀の局」で考える

今回の䜜業を振り返るず、リポゞトリの点怜察象は倧きく5぀の局に分けられたした。

① 実行コヌド
   未䜿甚import、旧凊理、叀い蚭定、未䜿甚CSS

② 䟝存関係
   requirements.txtに残っおいる䞍芁なラむブラリ

③ UI・説明資料
   HTMLの文蚀、README、スクリヌンショット、デモ玠材

④ 配送範囲
   .gitignore、.dockerignore

â‘€ 出荷状態
   pytest、git diff、git status、GitHubずの同期

この5局に分けるず、単に「䞍芁ファむルを探す」よりも点怜範囲が明確になりたす。

リポゞトリの総点怜ずは、䞍芁ファむルを消すだけの䜜業ではありたせん。

珟圚の仕様ず、コヌド・䟝存関係・画面・説明資料・出荷状態を䞀臎させる䜜業

だず考えおいたす。


今回行った䜜業

5時間で行った䞻な䜜業は次のずおりです。

  1. デモ動画・サムネむル・スクリヌンショットの敎理
  2. README内の画像パス修正
  3. 最新画面のスクリヌンショット撮圱
  4. .gitignoreの敎理
  5. .dockerignoreの敎理
  6. 旧Excel凊理の削陀
  7. 未䜿甚importの削陀
  8. openpyxl䟝存関係の削陀
  9. 未䜿甚CSSの削陀
  10. 叀い画面タむトルの修正
  11. 旧仕様の残存怜玢
  12. Git競合蚘号の怜玢
  13. 倉曎目的ごずのコミット
  14. pytest実行
  15. GitHubずの同期確認
  16. 2぀のREADMEぞの実瞟反映

ここから、実際に行った順番で蚘録したす。


1. 画像ず動画を甚途別に敎理する

最初に、リポゞトリ内のデモ玠材を敎理したした。

敎理埌の構成は次のずおりです。

sales_data_app/
├── demo_mp4/
├── demo_thumbnail/
├── screenshot/
├── static/
├── templates/
└── README.md

甚途も明確に分けたした。

demo_mp4/
└── デモ動画

demo_thumbnail/
└── YouTube甚サムネむル

screenshot/
└── README掲茉甚スクリヌンショット

以前は、動画や画像がルヌト盎䞋など耇数の堎所に混圚しおいたした。

アプリの動䜜には盎接圱響したせん。

しかし、第䞉者がリポゞトリを芋たずきに、次の刀断が難しくなりたす。

この画像は䜕に䜿うのか
珟圚も必芁なファむルなのか
アプリの実行に必芁なのか
説明甚の資料なのか

フォルダ名ず配眮を敎理するこずで、ファむルを開かなくおも圹割を掚枬しやすくなりたす。

フォルダ敎理は、単なる芋た目の問題ではありたせん。

ファむルの圹割を名前ず配眮で䌝える、
リポゞトリ内の情報蚭蚈でもありたす。


ファむル移動埌はREADMEのパスも修正する

ファむルを別フォルダぞ移動するず、README内の参照先も倉わりたす。

たずえば、スクリヌンショットをscreenshotフォルダぞ移した堎合は、README偎も珟圚の配眮に合わせたす。

![商品マスタ登録画面](screenshot/screen01.jpg)

ファむル敎理だけ行い、READMEのパスを修正し忘れるず、GitHub䞊で画像が衚瀺されなくなりたす。

そのため、今回は次の順番で確認したした。

ファむルを移動する
        ↓
README内の参照先を修正する
        ↓
GitHub䞊で画像が衚瀺されるか確認する

2. READMEず最新画面を䞀臎させる

READMEに掲茉しおいたスクリヌンショットの䞀郚は、珟圚の画面ず䞀臎しおいたせんでした。

そのため、最新版を起動しお画面を撮圱し盎したした。

曎新した䞻な画面は次のずおりです。

  • 商品マスタ登録画面
  • メニュヌ登録完了画面
  • 日次売䞊入力画面
  • 売䞊分析ダッシュボヌド

READMEのスクリヌンショットは、単なる食りではありたせん。

第䞉者がリポゞトリを開いたずき、コヌドより先に画面画像を芋る堎合がありたす。

画像が叀いたただず、珟圚は改善枈みのUIであっおも、叀い状態のアプリずしお䌝わっおしたいたす。


HTML内に残っおいた叀いタむトル

画面を確認する䞭で、HTML内に叀いタむトルが残っおいるこずも分かりたした。

修正前は次の衚珟でした。

<title>売䞊集蚈完了</title>

しかし、珟圚の画面の圹割は売䞊集蚈ではなく、商品メニュヌの登録完了です。

そこで、次のように修正したした。

<title>メニュヌ登録完了</title>

ブラりザのタブに衚瀺されるtitleも、利甚者ぞ䌝わる仕様の䞀郚です。

画面内の芋出しだけ盎しおも、タブのタむトルが叀ければ、凊理内容ず衚瀺が䞀臎したせん。

アプリが正垞に動䜜しおいおも、叀い文蚀が残っおいれば、利甚者やコヌドを読む人に誀解を䞎える可胜性がありたす。

UIの文蚀も、コヌドず同じように珟圚の仕様ぞ合わせる必芁がありたす。


3. .gitignoreを珟圚の開発環境ぞ合わせる

次に、Gitで远跡する必芁がないファむルを芋盎したした。

敎理埌の.gitignoreは次のようになりたした。

# Pythonç³»
.venv/
__pycache__/
*.pyc
.pytest_cache/

# 珟堎の生デヌタ・機密ファむル
過去売䞊高/
*.xlsx
*.db
.env

# その他䞍芁ファむル
*.bak
sales_data_app_android_demo.mp4

仮想環境・キャッシュを远跡しない

.venv/
__pycache__/
*.pyc
.pytest_cache/

これらは開発環境ごずに生成されたす。

GitHubぞ登録しなくおも、必芁に応じお各環境で再生成できたす。


機密情報を远跡しない

.env

.envにはGemini APIキヌなどの機密情報が含たれる可胜性がありたす。

公開リポゞトリぞ誀っおpushしないため、明瀺的に陀倖したす。


ロヌカルデヌタを远跡しない

*.db
*.xlsx
過去売䞊高/

本番環境ではPostgreSQLを䜿甚しおいたす。

ロヌカル開発甚のSQLiteファむルや、過去のExcel資料をGitHubぞ含める必芁はありたせん。

ただし、ここで泚意したいのは、

叀そうなファむル
=
すぐ削陀しおよいファむル

ではないこずです。

今回もlocal.dbに぀いおは、蚭定ファむルから参照されおいるこずを確認したした。

そのため、リポゞトリから远跡しない察象にはしたしたが、ロヌカル環境からすぐ物理削陀する刀断はしおいたせん。


4. .dockerignoreで本番ぞ積む荷物を決める

Gitで远跡しないファむルず、Dockerのビルド察象ぞ送らないファむルは、目的が異なりたす。

そのため、.dockerignoreも別に敎理したした。

# Git
.git
.gitignore

# 環境倉数・仮想環境
.env
.venv/
venv/

# Python・テストキャッシュ
__pycache__/
*.pyc
.pytest_cache/

# ロヌカルデヌタ・旧資料
*.db
*.xlsx
過去売䞊高/
*.bak

# 開発・説明甚ファむル
README.md
test_prompts.py
demo_mp4/
demo_thumbnail/
screenshot/

# OS・ログ
*.log
.DS_Store

README、スクリヌンショット、デモ動画、テストファむルは、GitHub䞊では意味がありたす。

しかし、今回の本番実行甚Dockerむメヌゞには䞍芁です。

.gitignoreず.dockerignoreは目的が異なりたす。

  • .gitignore
    Gitで远跡しないファむルを決める

  • .dockerignore
    Dockerのビルド察象ぞ送らないファむルを決める

物流で䟋えるなら、次の違いです。

倉庫に保管しおおく資料
≠
配送車ぞ積み蟌む荷物

GitHubには、開発蚘録や説明資料を残す䟡倀がありたす。

䞀方、Dockerにはアプリの実行に必芁なファむルだけを積みたす。


GitHubぞ残すか、Dockerぞ積むかを2぀の質問で刀断する

ファむルを分類するずきは、次の2぀を考えるず分かりやすくなりたす。

① GitHubぞ残す䟡倀があるか
② 本番実行時に必芁か
ファむル GitHub Docker 理由
アプリ本䜓 必芁 必芁 実行に必芁
HTML・CSS 必芁 必芁 画面衚瀺に必芁
README 必芁 䞍芁 説明資料
スクリヌンショット 必芁 䞍芁 GitHub䞊の説明甚
デモ動画 必芁 䞍芁 実行には䞍芁
テストファむル 必芁 今回は䞍芁 CI・開発甚
.env 䞍芁 䞍芁 機密情報
.venv 䞍芁 䞍芁 環境ごずに再生成
SQLiteファむル 䞍芁 䞍芁 ロヌカルデヌタ

この分類なら、単に蚭定䟋をコピヌするのではなく、自分のプロゞェクトに合わせお刀断できたす。


5. 旧Excel凊理の残骞を探す

このアプリは、開発初期にExcelを利甚しおいたした。

その埌、PostgreSQL䞭心の構成ぞ移行したしたが、旧仕様の䞀郚が残っおいたした。

今回芋぀かった䞻なものは次のずおりです。


config.pyに残っおいた旧フォルダ蚭定

PAST_FOLDER_NAME = "過去売䞊高"
PAST_FOLDER = os.path.join(BASE_DIR, PAST_FOLDER_NAME)

app.pyに残っおいたフォルダ䜜成凊理

os.makedirs(config.PAST_FOLDER, exist_ok=True)

未䜿甚になっおいたimport

from flask import send_file
from google.genai import types

䞍芁になった䟝存関係

openpyxl

珟圚のアプリでは、売䞊デヌタをPostgreSQLぞ保存しおいたす。

Excelファむルを生成・送信する凊理は䜿っおいたせん。

そこで、参照箇所を確認したうえで削陀したした。


6. 削陀候補を芋぀けおも、すぐ削陀しない

今回の点怜で重芁だったのは、叀そうなコヌドを芋぀けた瞬間に削陀しなかったこずです。

削陀候補は、次の順番で確認したした。

名前で怜玢する
        ↓
どこから参照されおいるか確認する
        ↓
珟圚の仕様で必芁か確認する
        ↓
削陀する
        ↓
同じ名前でもう䞀床怜玢する
        ↓
テストする

たずえば、openpyxlずいう文字列を芋぀けた堎合でも、requirements.txtからすぐ消すのではなく、コヌド内で本圓に䜿われおいないか確認したす。

同様に、蚭定名やCSSクラスも、定矩だけでなく参照偎を探したす。

「叀そう」「䜿っおいなさそう」ずいう感芚だけで削陀するず、別ファむルから参照されおいる凊理を壊す可胜性がありたす。

削陀前ず削陀埌の怜玢を1セットにするず、安党性を䞊げられたす。


7. 倉曎結果は23行削陀、2行修正

旧Excel凊理、未䜿甚import、䞍芁䟝存関係、未䜿甚CSS、叀い画面タむトルを敎理した結果、差分は次のようになりたした。

app.py                 | 10 +---------
config.py              |  4 ----
requirements.txt       |  1 -
static/style.css       |  8 --------
templates/success.html |  2 +-
5 files changed, 2 insertions(+), 23 deletions(-)

今回は、新しいコヌドを倧量に远加したわけではありたせん。

珟圚の仕様では䞍芁になった23行を削陀したした。

コヌド量が増えるこずだけが開発ではありたせん。

珟圚䜿われおいない凊理を、根拠を持っお枛らすこずも改善です。

コヌドが少なくなれば必ず良いわけではありたせん。

しかし、䞍芁なコヌドが枛るこずで、次の効果が期埅できたす。

  • 珟圚の凊理を理解しやすくなる
  • 旧仕様を誀っお再利甚する可胜性が枛る
  • 䟝存関係の圹割が明確になる
  • 将来の修正察象が枛る
  • READMEず実装の䞍䞀臎を防ぎやすくなる

8. 未䜿甚CSSを怜玢しお削陀する

HTMLやJavaScriptから䜿われおいないCSSが残っおいないか、grepで確認したした。

grep -Rni "ai-loading" \
  templates \
  static \
  app.py

最初の怜玢では、CSSファむル内の定矩だけが芋぀かりたした。

static/style.css:680:.input-page .ai-loading {

テンプレヌトやJavaScriptからは䜿甚されおいたせんでした。

そのため、セレクタ名だけではなく、CSSブロック党䜓を削陀したした。

.input-page .ai-loading {
    /* 未䜿甚だったスタむル */
}

削陀埌、同じ怜玢をもう䞀床実行したした。

grep -Rni "ai-loading" \
  templates \
  static \
  app.py

結果は0件でした。

䜕も衚瀺されない

同様に、珟圚のダッシュボヌドでは䜿われおいない叀い.btn-backのスタむルも削陀したした。


CSSは定矩だけ芋぀かっおも、䜿甚䞭ずは限らない

CSSクラスがファむル内に存圚するこずず、画面から実際に䜿われおいるこずは別です。

確認するずきは、次の䞡方を芋たす。

CSS偎に定矩があるか
HTML・JavaScript偎から参照されおいるか

CSS定矩だけが残り、どこからも参照されおいない堎合は、削陀候補になりたす。

ただし、JavaScriptで動的に付䞎されるクラスもあるため、HTMLだけを芋お刀断しないよう泚意が必芁です。


9. grepの赀いバツは、必ずしも異垞ではなかった

叀い文蚀やクラス名を怜玢したずころ、結果は䜕も衚瀺されたせんでした。

しかし、タヌミナルには赀いバツが衚瀺されたした。

最初は、コマンドが倱敗したのではないかず思いたした。

調べるず、grepの終了ステヌタスは次の意味を持ちたす。

0: 䞀臎する行が芋぀かった
1: 䞀臎する行が芋぀からなかった
2以䞊: コマンド自䜓の゚ラヌ

今回は、探しおいた叀い蚘述が芋぀からなかったため、終了コヌド1になっおいたした。

぀たり、今回の目的では期埅した結果です。

䞀臎なし
=
旧仕様の残骞なし

タヌミナルの蚘号や色だけで成功・倱敗を刀断せず、
コマンドの終了コヌドが䜕を意味しおいるか確認する必芁がありたす。


怜玢結果0件も立掟な確認結果

怜玢は、問題を芋぀けるためだけに䜿うものではありたせん。

「存圚しないこず」を確認するためにも䜿えたす。

たずえば、削陀埌に同じ名前を怜玢し、0件になれば、

削陀察象の名前が残っおいない

こずを確認できたす。

この堎合、䜕も衚瀺されないこず自䜓が結果です。


ここたでに登堎したコマンドを、すべお暗蚘する必芁はありたせん。

倧切なのは、

  • 䜕を探すためのコマンドなのか
  • 結果が出た堎合ず出なかった堎合をどう刀断するのか
  • 必芁なずきに履歎や蚘事から再利甚できるこず

です。

次に登堎する正芏衚珟も、现かい蚘号をすべお暗蚘するのではなく、
今回は「Gitの競合蚘号だけを行単䜍で探す条件」ず考えれば倧䞈倫です。


10. Git競合蚘号の怜玢でCSSを倧量怜出した

次に、Gitの競合蚘号が残っおいないか確認したした。

Gitで競合が発生するず、ファむル内に次のような蚘号が入るこずがありたす。

<<<<<<< HEAD
珟圚の内容
=======
別の倉曎内容
>>>>>>> branch-name

最初に実行した怜玢は次のずおりです。

grep -RniE \
  '<<<<<<<|=======|>>>>>>>' \
  --exclude-dir=.git \
  --exclude-dir=.venv \
  --exclude-dir=__pycache__ \
  --exclude-dir=.pytest_cache \
  .

するず、static/style.cssの区切りコメントを倧量に怜出したした。

/* ========================================
芋出し
======================================== */

怜玢条件の=======が、CSSの装食甚むコヌルにも䞀臎したためです。


行頭ぞ限定しおも、ただ誀怜出した

次に、行頭ぞ限定したした。

grep -RniE \
  '^(<<<<<<< |=======|>>>>>>> )' \
  --exclude-dir=.git \
  --exclude-dir=.venv \
  --exclude-dir=__pycache__ \
  --exclude-dir=.pytest_cache \
  .

しかし、CSSの区切り線もむコヌルから始たっおいたした。

そのため、ただ倧量に怜出されたした。


Git競合蚘号の圢匏だけぞ絞る

最終的に、行頭ず行末を含め、Git競合蚘号の圢匏だけぞ条件を絞りたした。

grep -RniE \
  '^(<<<<<<< .+|=======$|>>>>>>> .+)$' \
  --exclude-dir=.git \
  --exclude-dir=.venv \
  --exclude-dir=__pycache__ \
  --exclude-dir=.pytest_cache \
  .

結果は0件でした。

䜕も衚瀺されない

これで、Git競合蚘号が残っおいないこずを確認できたした。


怜玢結果が倚いからずいっお、問題が倚いずは限らない

今回の経隓から、次のこずが分かりたした。

怜玢結果が倚い
=
問題が倚い

ずは限りたせん。

怜玢条件が広すぎるず、正垞なコヌドやコメントたで拟いたす。

今回の堎合は、

Git競合蚘号を探したい
        ↓
=======を含む行を怜玢
        ↓
CSSの装食甚むコヌルにも䞀臎

ずいう状態でした。

怜玢結果を芋る前に、

この怜玢条件は、問題以倖の䜕に䞀臎する可胜性があるか

を考える必芁がありたす。


11. 怜玢コマンドは「発芋」より「仮説怜蚌」に䜿う

今回のgrepは、単にファむル内の文字を探すためだけに䜿ったわけではありたせん。

次のような仮説を確認するために䜿いたした。

旧Excel凊理がただ残っおいるのではないか
未䜿甚CSSが残っおいるのではないか
叀い画面文蚀が残っおいるのではないか
Git競合蚘号が残っおいるのではないか

怜玢結果を芋お、必芁に応じお条件を修正したす。

仮説を立おる
        ↓
怜玢する
        ↓
結果を確認する
        ↓
誀怜出か本圓の問題か刀断する
        ↓
怜玢条件たたはコヌドを修正する
        ↓
再怜玢する

この流れなら、怜玢コマンドを暗蚘するこずよりも、䜕を確かめたいかが䞭心になりたす。


12. 関連する倉曎はたずめ、別目的が混ざる前にコミットする

今回倉曎したファむルは次の5぀です。

app.py
config.py
requirements.txt
static/style.css
templates/success.html

ファむルは耇数ありたすが、倉曎内容はすべお次の1぀の目的にたずたっおいたした。

旧仕様ず未䜿甚コヌドの敎理

そのため、次のコミットメッセヌゞで蚘録したした。

git commit -m "旧Excel凊理ず未䜿甚コヌドを敎理"

コミットを现かく分けすぎおも、たずめすぎおも読みにくい

1行倉曎するたびにコミットするず、䜜業の流れが现かく分断されたす。

䞀方で、目的の異なる倉曎を倧量にたずめるず、あずから差分を理解しにくくなりたす。

今回は、次の基準でコミットしたした。

関連する倉曎はたずめる
別の目的が混ざる盎前でコミットする

物流で䟋えるなら、

同じ届け先の荷物
        ↓
䞀緒に積む

別の届け先の荷物
        ↓
混ざる前に出荷する

ずいう感芚です。


コミット前に確認したこず

コミット前には、次の2぀を確認したした。

git status
git diff --stat

git statusでは、倉曎されたファむルを確認したす。

git diff --statでは、倉曎量の抂芁を確認したす。

今回の結果は次のずおりでした。

app.py                 | 10 +---------
config.py              |  4 ----
requirements.txt       |  1 -
static/style.css       |  8 --------
templates/success.html |  2 +-
5 files changed, 2 insertions(+), 23 deletions(-)

この段階で、関係のないファむルが混ざっおいないこずを確認したした。


13. 最終テストを実行する

倉曎をコミットしおpushしたあず、pytestを実行したした。

pytest

結果は次のずおりです。

================================================== test session starts ==================================================
platform linux -- Python 3.12.3, pytest-9.1.1, pluggy-1.6.0
rootdir: /home/tosane/sales_data_app
plugins: anyio-4.13.0
collected 3 items

test_prompts.py ...                                                                                                [100%]

=================================================== 3 passed in 0.20s ===================================================

3件すべお成功したした。

3 passed in 0.20s

ただし、珟圚のpytestはプロンプト生成ロゞックを䞭心ずした3件です。

そのため、

pytestが通った
=
アプリ党䜓のすべおが保蚌された

ずいう意味ではありたせん。

テスト察象の範囲を理解したうえで、怜玢・差分確認・画面確認も組み合わせおいたす。

テストが存圚するこずず、重芁な凊理が十分に守られおいるこずは別です。

どの凊理がテスト察象なのかを把握する必芁がありたす。


14. working tree cleanたで確認する

最埌にGitの状態を確認したした。

git status

結果は次のずおりです。

On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

これで、次の状態を確認できたした。

未コミットの倉曎がない
GitHubずmainブランチが同期しおいる
䜜業途䞭のファむルが残っおいない

コヌドを盎しただけでは、䜜業完了ではない

今回、䜜業完了を次のように定矩したした。

コヌドを修正した
        ↓
差分を確認した
        ↓
テストが通った
        ↓
コミットした
        ↓
GitHubぞpushした
        ↓
GitHubず同期した
        ↓
未凊理の倉曎が残っおいない

぀たり、

コヌドを盎した
≠
䜜業が終わった

です。

working tree cleanは、単なる衚瀺ではありたせん。

次の䜜業を、前回の未凊理倉曎ず混ぜずに始められる状態を瀺しおいたす。

物流で蚀えば、配送が終わっただけでなく、垰庫埌に荷台を確認し、積み残しがないこずたで確かめた状態です。


15. READMEにも今日の実瞟を反映する

コヌドずリポゞトリの敎理が終わったあず、次の2぀のREADMEも曎新したした。

  • sales_data_appのREADME
  • GitHubプロフィヌル甚README

sales_data_app偎のREADME

曎新履歎ぞ、次の内容を远加したした。

  • デモ動画・サムネむル・スクリヌンショットの敎理
  • README内の画像パス修正
  • .gitignoreの敎理
  • .dockerignoreの敎理
  • 旧Excel凊理の削陀
  • 未䜿甚import・䟝存関係・CSSの削陀
  • 叀い画面タむトルの修正
  • pytest 3件成功
  • Git䜜業ツリヌcleanの確認

GitHubプロフィヌル甚README

2026幎7月19日のマむルストヌンずしお、今回の総点怜を蚘録したした。

孊習時間も曎新したした。

环蚈143時間
        ↓
环蚈148時間

READMEの倉曎は、次のコミットメッセヌゞで蚘録したした。

git commit -m "READMEにリポゞトリ総点怜ず孊習148時間を反映"

16. 5時間の䜜業結果

今回の結果をたずめるず、次のずおりです。

䜜業時間              5時間
环蚈孊習時間          148時間
コヌド倉曎            5ファむル
差分                  23行削陀、2行修正
旧仕様の怜玢          0ä»¶
Git競合蚘号           0ä»¶
pytest                3 passed
GitHubずの差分         なし
最終状態              working tree clean

新機胜の远加はありたせん。

しかし、次の芁玠を珟圚の仕様ぞ合わせられたした。

コヌド
䟝存関係
HTMLの文蚀
CSS
README
スクリヌンショット
フォルダ構成
.gitignore
.dockerignore
Gitの状態

今回孊んだこず

1. 動いおいるアプリにも叀い郚品は残る

アプリが正垞に動いおいおも、以前の構成で必芁だったコヌドや䟝存関係が残るこずがありたす。

今回の䟋では、次の倉化がありたした。

Excel䞭心の構成
        ↓
PostgreSQL䞭心ぞ移行
        ↓
旧Excelフォルダ蚭定やopenpyxlが䞍芁になる

機胜远加だけを続けるず、過去の仕様が静かに残りたす。

そのため、珟圚の構成ず䞀臎しおいるか、定期的に確認する必芁がありたす。


2. READMEや画像も゜フトりェアの䞀郚

コヌドが最新でも、READMEの画像や説明が叀ければ、第䞉者には叀い状態ずしお䌝わりたす。

公開リポゞトリでは、次のすべおが成果物です。

コヌド
README
スクリヌンショット
デモ動画
フォルダ構成
コミット履歎

READMEは、コヌドの倖偎にある付属品ではありたせん。

利甚者や採甚担圓者、別の開発者が、プロゞェクトを理解するための入口です。


3. GitHubぞ眮くものずDockerぞ積むものは異なる

READMEやテストファむルはGitHubには必芁です。

しかし、本番Dockerむメヌゞには必芁ない堎合がありたす。

GitHub
└── 開発蚘録・テスト・説明資料も保管する

Docker
└── 本番実行に必芁なファむルを積む

.gitignoreず.dockerignoreを同じ内容にするのではなく、それぞれの目的で刀断する必芁がありたす。


4. 削陀には根拠が必芁

未䜿甚に芋えるコヌドを、勢いだけで削陀するのは危険です。

今回は、次の順番で確認したした。

怜玢
↓
参照元の確認
↓
珟圚の仕様ずの比范
↓
削陀
↓
再怜玢
↓
テスト

削陀ずは、単にコヌドを枛らす䜜業ではありたせん。

「珟圚は䞍芁である」ず説明できる状態にしおから行う䜜業です。


5. 怜玢結果0件も重芁な確認結果

旧仕様が残っおいないこずを確認する堎合、grepの䞀臎なしは期埅した結果になりたす。

問題を芋぀ける怜玢
䞀臎あり → 確認察象がある

残存しおいないこずを確かめる怜玢
䞀臎なし → 期埅した状態

怜玢結果の意味は、怜玢した目的によっお倉わりたす。


6. 怜玢条件は誀怜出の可胜性たで考える

=======を怜玢するず、Git競合蚘号だけでなく、CSSの区切り線にも䞀臎したした。

怜玢結果が倚い
=
問題が倚い

ではありたせん。

怜玢条件が広すぎる可胜性もありたす。

怜玢結果だけで刀断せず、なぜ䞀臎したのかを芋る必芁がありたす。


7. コミットは「倉曎ファむル数」ではなく「倉曎目的」で分ける

今回の倉曎は5ファむルにたたがりたした。

しかし、目的はすべお同じでした。

旧仕様ず未䜿甚コヌドの敎理

そのため、1぀のコミットずしおたずめたした。

コミットを分ける基準は、

䜕ファむル倉曎したか

より、

䜕のために倉曎したか

の方が理解しやすいず感じたした。


8. working tree cleanは次の䜜業ぞの出発条件

未コミットの倉曎が残ったたた次の䜜業を始めるず、別目的の倉曎が混ざる可胜性がありたす。

今回の倉曎
+
次回の倉曎
=
コミットの目的が分かりにくくなる

working tree cleanたで確認しおおけば、次の䜜業を空の荷台から始められたす。


別のプロゞェクトでも䜿えるリポゞトリ総点怜チェックリスト

今回の䜜業を、自分以倖のプロゞェクトでも再利甚できる圢にたずめたす。

実行コヌド

  • 未䜿甚importが残っおいないか
  • 廃止した仕様の蚭定が残っおいないか
  • 䜿われおいない関数や凊理が残っおいないか
  • 旧フォルダや旧ファむル名ぞの参照が残っおいないか
  • 未䜿甚CSSやクラスが残っおいないか
  • JavaScriptから動的に䜿われるクラスではないか確認したか

䟝存関係

  • 珟圚䜿っおいないラむブラリが残っおいないか
  • 削陀前にコヌド内の参照箇所を怜玢したか
  • 盎接䜿甚しおいなくおも別ラむブラリが必芁ずしおいないか
  • 䟝存関係削陀埌にアプリやテストが動くか確認したか

README・画面

  • READMEの説明ず珟圚の実装が䞀臎しおいるか
  • スクリヌンショットは最新版か
  • 画像パスが珟圚のフォルダ構成ず䞀臎しおいるか
  • デモ動画の説明が珟圚の画面ず矛盟しおいないか
  • 叀い画面文蚀やtitleが残っおいないか
  • 珟圚䜿っおいない機胜がREADMEに曞かれおいないか

ファむル構成

  • 動画・画像・資料が甚途別に敎理されおいるか
  • ルヌト盎䞋ぞ䞍芁なファむルが散らばっおいないか
  • バックアップファむルが残っおいないか
  • ファむル名だけで甚途を掚枬できるか

Git

  • .gitignoreで機密情報を陀倖しおいるか
  • 仮想環境やキャッシュを陀倖しおいるか
  • ロヌカルDBや生デヌタを陀倖しおいるか
  • git statusで倉曎察象を確認したか
  • git diffたたはgit diff --statで差分を確認したか
  • 目的の異なる倉曎が混ざっおいないか
  • Git競合蚘号が残っおいないか
  • GitHubぞpushしたか
  • working tree cleanになっおいるか

Docker

  • .dockerignoreで.gitを陀倖しおいるか
  • .envをビルド察象から陀倖しおいるか
  • 仮想環境やキャッシュを陀倖しおいるか
  • ロヌカルDBやExcel資料を陀倖しおいるか
  • README・画像・動画など本番䞍芁資料を陀倖しおいるか
  • GitHubぞ残すファむルずDockerぞ積むファむルを区別しおいるか

最終確認

  • 削陀した名前を再怜玢したか
  • 怜玢結果が誀怜出ではないか確認したか
  • テストが通ったか
  • テスト察象の範囲を理解しおいるか
  • 必芁な画面を目芖確認したか
  • READMEぞ今回の倉曎を反映したか
  • GitHubずロヌカルが同期しおいるか

おわりに

今回の5時間では、新しい機胜を远加しおいたせん。

それでも、次の状態たで敎えるこずができたした。

  • 珟圚の仕様ずコヌドが䞀臎しおいる
  • 叀い䟝存関係が残っおいない
  • READMEず最新画面が䞀臎しおいる
  • 動画や画像の圹割が分かりやすい
  • GitHubぞ残すものが敎理されおいる
  • 本番Dockerぞ䞍芁な資料を積たない
  • テストが通っおいる
  • GitHubず同期しおいる
  • 䜜業ツリヌがcleanである

物流珟堎では、荷物を積むだけでなく、次の点も確認したす。

䞍芁な荷物が混ざっおいないか
積茉堎所は分かりやすいか
荷物ず䌝祚が䞀臎しおいるか
配送埌に積み残しがないか
次の運行を空の荷台から始められるか

゜フトりェア開発でも同じでした。

コヌドを远加する
        ↓
䞍芁なコヌドを降ろす
        ↓
説明資料を珟圚の状態ぞ合わせる
        ↓
本番ぞ積むファむルを敎理する
        ↓
テストする
        ↓
GitHubぞ出荷する
        ↓
working tree cleanを確認する

今回の総点怜で䞀番匷く感じたのは、次のこずです。

リポゞトリの総点怜ずは、䞍芁ファむルを消す䜜業ではない。
珟圚の仕様ず、コヌド・䟝存関係・画面・説明資料・出荷状態を䞀臎させる䜜業である。

新機胜を積む前に、珟圚の荷台を点怜する。

今回の5時間は、次の開発を安党に始めるための敎備時間になりたした。


関連リンク

GitHub

オンラむンデモ

Qiita

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?