サイトアイコン IT & ライフハックブログ|学びと実践のためのアイデア集

【授業レポート】システム開発(3年) 第51週目〜最終プロジェクト実装開始:設計を“動くシステム”へ〜

16のMBTI性格タイプとIT業界での適職

16のMBTI性格タイプとIT業界での適職

【授業レポート】システム開発(3年) 第51週目

〜最終プロジェクト実装開始:設計を“動くシステム”へ〜

第51週目は、前回決定した最終プロジェクトの設計をもとに、
いよいよ実装フェーズがスタートしました。

ここからは、設計書に基づき

  • API連携
  • 生成AI機能
  • エラーハンドリング
  • ログ設計

を実際のコードとして組み上げていきます。


■ 先生の導入:「設計を信じて実装する」

田中先生:「実装が始まると、設計を無視して書きたくなることがあります。
でも、迷ったら必ず設計に戻ること。設計は“開発の地図”です。」

先生は、実装中に起きやすい問題として

  • 設計と違うコードを書く
  • 途中で構造が崩れる
  • UIからAPIを直接呼び始める

などを挙げ、責務分離を守ることを強調しました。


■ 今日のゴール

  1. プロジェクトの基本構造をコードとして作る
  2. APIクライアントの骨組みを実装する
  3. AIクライアントの呼び出し部分を用意する
  4. ログと例外処理の基盤を整える

■ 実習①:プロジェクト構造の作成

まずは班ごとにプロジェクトのフォルダ構成を作成しました。

例:

project/
 ├─ app/
 │   ├─ ui/
 │   ├─ service/
 │   ├─ api_clients/
 │   ├─ ai_clients/
 │   └─ models/
 ├─ logs/
 ├─ tests/
 └─ README.md

ポイント:

  • UI / Service / API を分離
  • AI機能は専用クライアントにまとめる
  • ログフォルダを最初から用意

生徒A:「構造を作るだけで“プロジェクト感”が出る!」


■ 実習②:APIクライアント実装

次に、外部APIを呼び出すクラスを作成。

学習用イメージ

class WeatherApiClient:

    def fetch(self, city):
        response = requests.get(
            "https://api.example.com/weather",
            params={"city": city},
            timeout=5
        )
        response.raise_for_status()
        return response.json()

重要ポイント:

  • timeout設定
  • HTTPエラー処理
  • JSON変換

先生:「APIは必ず失敗する前提で書く。


■ 実習③:AIクライアント骨組み作成

生成AI呼び出し部分も同様に整理。

Service
 ↓
AiClient
 ↓
AI API

例(概念)

class AiClient:

    def generate(self, prompt):
        response = ai_api_call(prompt)
        return response

この段階では

  • プロンプト生成
  • 出力検証

はService側に置く設計にしました。

生徒B:「AIも“外部サービス”として扱うと整理しやすい」


■ 実習④:ログと例外処理の基盤

プロジェクト全体で共通のログ設定を追加。

例:

import logging

logging.basicConfig(
    filename="logs/app.log",
    level=logging.INFO
)

記録するログ:

  • API呼び出し
  • AI出力
  • エラー
  • フォールバック発動

生徒C:「ログがあると安心して実装できる」


■ 実習⑤:最初の動作確認

最後に、

  • API呼び出し
  • AI呼び出し(ダミー)

の基本動作を確認。

まだ機能は未完成ですが、
**プロジェクト全体が動く“土台”**ができました。


■ クラス全体の気づき

  • 設計どおりに書くと迷いが少ない
  • APIクライアントとService分離が重要
  • ログは最初に入れておくべき
  • AI機能も普通のAPIと同じ構造で扱える

■ 先生のまとめのひとこと

「今日の作業は、建物で言えば基礎工事です。

この基礎が弱いと、
後からどんな機能を追加しても崩れます。

逆に、
構造がしっかりしていれば
機能はいくらでも追加できます。」


■ 宿題(次週まで)

  1. API連携の基本機能を完成させる
  2. AIプロンプト生成部分をServiceに追加
  3. エラー発生時のフォールバック処理を書く

■ 来週の予告:機能実装フェーズ

次週は、

  • AI機能実装
  • APIデータ加工
  • UI表示

を進め、
システムの主要機能を完成させる段階に入ります。


第51週目は、
最終プロジェクトの実装が本格的に動き始めた週でした。
生徒たちは設計を実際のコードに変換しながら、
3年間の学びを一つのシステムとして形にし始めています。

モバイルバージョンを終了