
【Slide 1】 開発フローの全体像
Web開発は一方通行ではなく、以下のループを高速で回す「アジャイル」なアプローチが主流です。
- 設計・準備: 何を作るか、どうデータを持つか(ER図など)を決める。
- ローカル開発: 自分のPC上でコードを書く。
- バージョン管理: Gitで変更履歴を残し、GitHubへ保管する。
- 検証・テスト: CI(自動テスト)を活用し、デプロイ前に不具合を見つける。
- デプロイ: 本番サーバーへ公開する(CD:継続的デリバリー)。
- 運用・保守: ログ監視、データバックアップ、セキュリティ修正。
【Slide 2】 設計:開発効率を左右する「地図」作り
C言語やMS-DOSでの開発経験がある方なら馴染みが深い、事前の定義ステップです。
- DB設計(ER図):
- シフト管理なら「ユーザー」「シフト」「業務」の紐付けを定義。
- UI/UXデザイン:
- 画面のラフ(ワイヤーフレーム)を作成し、ユーザー動線を確認。
- 環境変数の分離(.env):
- APIキーやDBパスワードなど、秘匿情報をコード(Git)から切り離す。
【Slide 3】 ローカル開発:仮想環境とGitブランチの活用
Python開発において、環境を汚さない工夫と、作業の「枝分かれ」が重要です。
- 仮想環境(venv / Poetry):
- プロジェクトごとにライブラリを独立させ、依存関係の衝突を防ぐ。
- ブランチ(Branch)戦略:
main: 常に正常動作する「本番用」。feature/xxx: 新機能開発のための「作業用」。- アトミック・コミット:
- 「1つの修正で1つの記録(コミット)」を徹底し、いつでも過去の状態に戻れるようにする。
【Slide 4】 リモート管理:GitHubは「保管庫」兼「検査場」
GitHubへPush(送信)した後は、以下の工程で品質を担保します。
- プルリクエスト(Pull Request):
- 変更内容を自分(またはチーム)でレビューし、
mainへのマージを申請する。 - CI(継続的インテグレーション):
- GitHub Actionsなどを使い、Push時に「自動テスト」や「構文チェック」を自動実行する。
【Slide 5】 デプロイ:環境分離による安全な公開
「一通りできたら公開」ではなく、段階を踏むことで事故を防ぎます。
- ステージング環境:
- 本番サーバーと同一構成の「テスト用サーバー」。本番公開前の最終確認。
- 本番環境(Production):
- 実際にエンドユーザーが触れる環境。
- CD(継続的デリバリー):
- 特定のブランチにコードがマージされたら、自動でサーバーへ反映される仕組みの構築。
【Slide 6】 リリース後の運用:サービスの寿命を延ばす
開発完了はスタート地点。ITリテラシーの高い運用が求められます。
- モニタリング:
- サーバーの死活監視や、エラーログの自動通知設定。
- バックアップ戦略:
- DBデータの定期バックアップと、復元(リストア)テスト。
- 保守アップデート:
- Python本体や各種ライブラリの脆弱性に対応するための定期的な更新。
まとめ:追加すべきアクションアイテム
- Gitブランチの活用: 全てをmainで作業せず、機能ごとに枝分かれさせる。
- 自動テストの導入:
pytest等を使用し、主要ロジックのテストコードを書く。 - 環境変数の管理:
.envファイルを使って機密情報を保護する。