• クラス設計

    By Muneyuki Ohkawa 2 decades ago

    技術検証フェーズもそろそろ終わりに近づきつつあるので、画面設計、クラス設計へと進んでいきたいと思っています。しかし、私はJavaの実開発経験が無いので、クラス設計の方法論が分かっていません。どなたかたたき台をつくっていただけないでしょうか。これはTeradaさんかな?どうですか、Teradaさん?



    それとも、私がまがい物をつくって、Teradaさんに直してもらう?

    • 少しお時間いただければ

      By Junya Terada 2 decades ago

      少しお時間をいただければ(1週間くらい?)たたき台を作りますが、それでよければ引き受けたいと思います。

      • 寺田さん、ぜひお願いします!

        By Muneyuki Ohkawa 2 decades ago

        非常に助かります。

        Notes開発者の中で、Javaクラス設計の経験者は希少でしょうから、寺田さんの参加は心強いです。

        スキルをお互い補完しながらプロジェクトが進んでいて、いい感じです!

        • たたき台

          By Junya Terada 2 decades ago

          仕事の雲行きが怪しくなってきたため、今時点で考えている構想をたたき台としておいておきます。

          クラス図とか作るか悩んだのですが、まずは基本方針からと思いまして、図はありません<( )>



          NotesでのJavaの設計はしたことが無いので、どんどんご意見ください。

          ※後半のコントローラーとサービスについては、バッチ処理であるために、細かく分けなくても良いかなと思いますが、とりあえずはWebのJavaのクラス構造っぽくしてみました。





          カレンダーデータアクセス

          BaseDAO←親クラス

          共通処理(検索、更新、追加、削除)<br/>
          GoogleCalendarDAO<br/>
              Google固有の処理<br/>
          NotesCalendarDAO<br/>
              Notes固有の処理<br/>
          



          カレンダーデータ(ラッパーの様な存在)

          BaseDoc←親クラス

          共通データ(他のClassとのデータ渡しなどに使う)<br/>
          GoogleCalendarDoc→Gdataで代用可能だがwrapperとしてつかう?<br/>
              Google固有のデータ<br/>
          NotesCalenderDoc→Documentで代用可能だがwrapperとしてつかう?<br/>
              Notes固有のデータ<br/>
          



          Setting

          設定関連のデータ保持&処理<br/>
          



          Log→NotesのLogで代用する?

          Log関連:処理結果等を残す場合<br/>
          



          Util

          日付変換など<br/>
          その他必要に応じて追加<br/>
          

          Constants

          定数定義<br/>
          



          Controller

          指定されたServiceを呼び出す<br/>
          



          処理実行クラス(MVCモデルで言うM?)

          BaseService→同期以外の処理を作るのであれば定義しても良いと思います。←Interface

          共通<br/>
          SyncService<br/>
              メイン処理:順に処理を実施していく
          
          • クラス設計ありがとうございます。

            By Muneyuki Ohkawa 2 decades ago

            Javaアプリケーションでも、MVCモデルを適用するんですねぇ。なるほど。確かに、機能ごとに分離した方が、拡張性や保守をする上では有利であり、これはWebアプリケーションに限ったことではないですからね。勉強になります。



            クラス設計を含め、ここまでの内容を一度Docsにまとめます。その後、分担を決めてコーディングしていきましょう。