makotan _at_ gmail dot com

何かをプログラミングする

どんな風に?って話
おさらい
「何か」は元々自動生成で生産性を高める方法の話
なんだけど業務システムの定義が曖昧だと話が混乱するのでそこを整理すると
業務システムは基本的に情報と状態の流れを制御するものと
その情報と状態を形式を変えて出力するものに分けられる


情報と状態の流れを制御するプログラムの構造

  • 情報を扱えるDaoとサービス
  • 状態の流れを制御するコンポーネント
  • UIとしての画面(検索・表示・新規登録・更新)+画面に必要なプログラム
  • 権限周りを制御するコンポーネント

#レイヤ構造風に書いたけどそんなのは誤差だから好きにすると良いよ。個人的にはこういうのが好みってだけだから


詳しくみていくと・・・

  • 情報を扱うDaoとかサービスとか状態の流れを制御するコンポーネントって言うのは情報毎に作る
  • 画面は状態毎に作る
  • それ以外は情報に影響されず共通


情報と状態を形式を変えて出力するもの

  • 結果にあわせて作るDaoとかSQL
  • 結果を探したりするためのUIとそれを制御するプログラム
  • 結果を出力するプログラム

これは詳しくみるまでもなく、個別に作る


さらに詳しく考えるとパターンが爆発的に増えて大変そうな気もするんだけど・・・
情報と状態の流れを制御するプログラムというのは基本的に自動生成しやすいので可能な限り自動生成する
情報と状態を形式を変えて出力するものは自動生成がしにくいので支援機能を充実させる
っていうのが基本
前にも書いたけど100%自動生成は編集が大変になってコードで書いた方が早くなることになるのでやらない。
ただ、単純作業に人間の力を使うんじゃなくなるべく複雑な作業に振り向けるのが基本


こっから先の自動生成ネタは自動生成関連ツールとかライブラリの作者が趣味嗜好環境に合わせて悩んだ方が良いところ。
なんだけど、ほかのネタに絡めて自動生成ネタは今後も書くかも