programming

MVCアーキテクチャでのテストの分け方  [TDD]  [programming]  [idea]

こういう風に分けると意外とうまくいく気がする。

  • Security:主にController
  • Routing:主にController
  • Logic:主にController。
    (ActiveRecordアーキテクチャ(Railsとか)だとControllerだけど、他のフレームワークの場合ModelとControllerの間の層にもこのあたりの機能が入ると思われる。)
  • Server Side Validation:主にModel
  • Client Side Validatoin:主にjavascript
  • Server Side View:主にView。
    テンプレートによるView生成とか
  • Client Side View:主にjavscript。
    Formの入力制御とか、Viewフィルタとか、Tableのsortとか。Ajaxとか。



このブログではコメントとかが入らないので反応が見れないのが残念。(はてぶとかに載ればいいけどね。)

Dateアップデート時の注意事項  [programming]  [tips]

どんな言語でもそうだと思うけど、日付のアップデート時には、月→日の順番でアップデートする。
先に日をアップデートすると、31日の処理にバグが出る。

オブジェクト指向開発の指針  [programming]  [OO]  [tips]

たまには振り返っておく。

  • OCP: Open Closed Principle</br>拡張に開き、修正に閉じる。
  • DRY: Don't Repeat Yourself</br>適切な場所一箇所で処理する。(複数個所に同じようなコードがあるのは、あやしい。)
  • SRP: Single Responsibility Principle
    一つのことをうまくやる。
  • LSP: Liskov Substitution Principle
    サブクラスは親クラスと同じインタフェースを持つ。(2Dimensionクラスのサブクラスで3Dimensionクラス作るのはだめ。)