焼きぶろぐ

思いついたことをだらだら書いてます

Tracチケット管理ツールを作る:クラス設計

Tracチケット管理ツールを作る:アクション設計 - 焼きぶろぐの続き

INDEX:Tracチケット管理ツールを作る:まとめ - 焼きぶろぐ

※実際はクラス設計はしっかりせずに実装をごりごりすすめていたので、実質設計なしからつぎはぎで実装していました
※本記事はリファクタリング後の結果です。とはいえ今見るとまだ改善の余地があるので、まだ試行錯誤中です。。。

Controller

リクエストの受付とDB接続を担当(DB接続は切り離してもよかったかも)

  • メインController
    • 初期表示時:TicketLogic.GetTicketメソッドを使用してチケットを取得。(DB情報は取得しておいて渡す)
    • メイン画面のViewに渡す
  • チケットController
  • プロジェクトController
  • プロジェクトカスタム項目Controller

Logic

Tracとの接続やチケットデータの加工などのロジックを分離

  • TicketLogic
    • GetTicketメソッド:初期表示用のチケット取得
    • Tracに発行するURLを作成してリクエス
    • Tracから取得したCSVをTicketクラスのインスタンスに変換してListにつめる
    • DBから取得したIDと比較してDB登録/Trac再問合せ&上書きをする
    • Listを返却(Projectの中にListが入っている)
  • CommonLogic
    • HttpRequestしてGetするところとかStreamからCSVに変換するところとか一般的なもの

Model

Tracチケット管理ツールを作る:設計 - 焼きぶろぐのモデル設計参照

View

  • メイン画面
  • 過去チケット
  • 各DBに対するIndex/Create/Edit/Delete/Details(自動生成)

NEXT:Tracチケット管理ツールを作る:実装 - 焼きぶろぐ

INDEX:Tracチケット管理ツールを作る:まとめ - 焼きぶろぐ