Haydnをコレクション演算部分に適用する例
利用するコード: https://github.com/phpmentors-jp/workflower/blob/master/src/Workflow/Workflow.php#L411
- ここではコレクションの要素を変換しつつ、変換結果を見てフィルタし、最終オブジェクトへ変換する。HaydnではPHPの配列/連想配列に入っているものなら何でも扱えるので、このようにオブジェクトのコレクションごと変換・フィルタといった操作として記述できる。
if (date.before(SUMMER_START) || date.after(SUMMER_END)) | |
charge = quantity * _winterRate + _winterServiceCharge; | |
else charge = quantity * _summerRate; | |
if (notSummer(date)) | |
charge = winterCharge(quantity); | |
else charge = summerCharge(quantity); |
Haydnをコレクション演算部分に適用する例
利用するコード: https://github.com/phpmentors-jp/workflower/blob/master/src/Workflow/Workflow.php#L411
vendor/ | |
composer.lock |
<?php | |
require_once './vendor/autoload.php'; | |
//Excel2007形式(xlsx)ファイルのリーダーを生成 | |
$obj_excel_reader = PHPExcel_IOFactory::createReader("Excel2007"); | |
//test.xlsxの読み込み | |
$obj_excel = $obj_excel_reader->load("test.xlsx"); | |
//test.xlsxのシートの名称一覧を配列で取得 |
モジュール分割して疎結合に保ち連携を非同期にすることは、非機能要件の充足のために大きな意味を持つ。 | |
機能の的確な分割なしにモジュールを分割することは出来ない。 | |
非機能要件を充足する上で機能分割はとても重要。 | |
P:モジュールを分割する | |
P’:モジュールを疎結合に保ち連携を非同期にする | |
Q:非機能要件を充足する | |
R:機能を分割する | |
(1) P ⊃ Q 大前提 |
{ | |
"sets": [ | |
{ | |
"name":"set1", | |
"fields":[ | |
"id","name","email" | |
] | |
}, | |
{ | |
"name":"set2", |
reviewers | title | content_template | weight | card | |||||
---|---|---|---|---|---|---|---|---|---|
|
Podの概要 |
templates/concept |
10 |
|
上記の問題を、次のように拡張する。