アーキテクチャの話し

開発者、永遠のテーマであるアーキテクチャ。
自身ではMVCがシンプルで拡張性も高く好きです。

先日開催された「PHPカンファレンス福岡2015」で発表されたスライドを引用させてもらいます。

CakePHPを土台に作る事が多い+改修などでも出会う機会が増えてきました。
割りと制約が多い方に部類されるCakePHPでも、それぞれ特徴が出たり、ありがちなControllerにビジネスロジックがごっそり入っているパターンだったり、Modelにビジネスロジックが入っていてもシステムが大きくなる程に、役割や責任の範囲が曖昧になり、巨大なModelの出来上がりとなるのは「開発あるある」ではないでしょうか。

スライドにあるような、レイヤーにサービス層を入れる事で、Facadeパターンを取り入れたような設計ができます。

ちなみにCakePHP2系でパッケージを追加するのは簡単です。

app/Config/bootstrap.php

App::build(array(
    'Service' => array('%s' . 'Service' . DS)
), App::REGISTER);

で追加して、下記のように呼び出せます。

app/Controller/HogeController.php

App::uses('FugaService', 'Service');

ControllerはHTTPリクエストの操作、Viewの呼び出し、Service実行のみを行う。
Serviceはリクエストの検証、ビジネスロジック。Model実行。
Modelはバリデーション、DB操作のみを行う。ORマッパ経由でもServiceレイヤーには書かない。
Viewはロジックを入れないでとか、データ加工ならHelperとかElementを上手く使って。

これだけでも後から見たり、人が増えたりしても仕様理解が早く済む。と思っています。

これからはCakePHP3が既にリリースされているので、新機能との合わせ技で試行錯誤してみたいですね。

PHP7のリリースも迫っていて、楽しみ半分、大変そうです。

開発の現場から

後ろ向きになりがちな環境でも前向きになる姿勢。見習いたい。

泥臭い受託開発Dev love関西 from Toshiyuki Ohtomo

オッサンからも言わせていただきたい。別にプログラマーだとかSEだとか関係ない。これが至って当たり前の考えだと。

泥臭い受託開発Dev love関西 from Toshiyuki Ohtomo

ITエンジニアのこれから

日本のITエンジニアの地位はなぜ低いのか
「負債」は「資産」です。ご注意を / 医者に風邪引いてるんですって言うな 〜 非エンジニアに知ってほしいこと、エンジニアに知ってほしいこと

毎度だけど、経営層までエンジニアが浸透しなければ、何も変わらないだろうと言う事。
当たり前だけど、経営と管理と技術は全く別物で、全て出来るスーパーマンはそうそう居ないし、管理をやりたがるエンジニアは少ない、と思う。
その間を埋める努力、もしくは歩み寄りってなんだろう。

改正派遣法、施行されれば廃業

営業と販売員は違う。ただ右から左に流すだけなら誰でも良い。
何故その会社、その人から買うのか。どんな業種だって同じ事。
それが出来ていれば、むしろ追い風じゃなかろうか。

追記
【公開】第30回IT勉強宴会「最近感じる日本企業のITの問題と展望~「ソフトを他人に作らせる日本、自分で作る米国」を読んで」