最近Scalaのコレクションクラスに「groupBy」というメソッドがあることを知り、ちょっと使ってみました。
使ってみて改めて画期的なメソッドだな~と感じたのでちょっと紹介いたします。
groupbyメソッドは引数に渡した関数の戻り値をキーにしたマップを作成するメソッドです。同じキーを返した値がマップの値になります。
例として売上げを商品毎にまとめてみます。
最近Scalaのコレクションクラスに「groupBy」というメソッドがあることを知り、ちょっと使ってみました。
使ってみて改めて画期的なメソッドだな~と感じたのでちょっと紹介いたします。
groupbyメソッドは引数に渡した関数の戻り値をキーにしたマップを作成するメソッドです。同じキーを返した値がマップの値になります。
例として売上げを商品毎にまとめてみます。
普段XYZZYで開発をしています。
文字補完にdabbrevを利用しているわけですが、dabbrevは表示バッファしか候補リストに表示してくれないので、補完リストに表示させるためだけに編集しないファイルを開いたりしなければいけなくって結構に面倒に感じていました。
関数が補完候補にあがってきてくれればいいので、関数のタグジャンプ機能を利用する際に生成されるファイル(XTAGS)をdabbrev実行時に読み込んで、関数を補完リストに表示させるようにしました。
仕事でつかっているのがPHP4(というか関数しかつかってないPHP)なので、そういった環境での利用を想定しています。
仕事でPHPを利用しているのですが、PHPは型の指定を一切しないのに、PHPDoc用の関数コメントには型を明記しないといけないんですよね。それとインデントをそろえるのが面倒くさくて関数とコメントを生成するマクロを作成してみました。
具体的には、
これはテスト用の関数です。 @test_function param:array:配列 return:string
/**
* これはテスト用の関数です。
*
* @param array param 配列
* @return string
*/
function test_function($param) {
}
これは次のような手順で実現しています。
随分昔に読んで、その時はいい本だけどプロジェクト型である自分の仕事(IT系SIer)では、このノウハウはあまり通用しないかなと思い、そのままにしてありました。
しかし先日「クリティカルチェーン」を読んで、TOC理論がプロジェクト型の仕事に当てはめられていく過程を読みすすめていくうちに、一度シリーズを一から読み直したいという衝動に駆られ、久しぶりに本書を読んでみることにしました。
本書を読んでいて
1.従業員というのは、実は企業の目的というのをあまり理解していないものである。
2.目的への達成度を測定するのに間違った指標、複雑すぎる指標を利用しがちである。
3.物事の本質を抜き出してモデル化すると、その姿は意外なほどシンプルである。
という教訓を得ることができました。
また、「クリティカルチェーン」を読んだあとだったせいか、前回読んだときより本書でのポイントが自分の中にすんなり入ってきてとても読みやすく感じました。
本書で紹介されている具体的な方法論(バッチサイズの変更、ボトルネックのリソースを最大化する方法)などは、工場での製造現場でしか利用できないことなのかもしれませんが、本書で提示されている概念や主人公たちの奮闘する姿勢などはとても参考になりました。ただ概念や姿勢の話などになると、実は次作の「ザ・ゴール2」の中でより詳しく説明されているのでそちらの方がより参考になると思います。
しかし、いきなり2の方を読むよりは本書を導入編と位置づけて一度読んでおいたほうが、理解もより深まるでしょう。
個人的には、小説形式のビジネス本というのはポイントがわかりづらいし、そのポイントにいたるまでの過程にまどろっこしさを感じてしまうのであまり好きではありませが、この本は小説としても楽しく読めました。昨年話題となった「もしドラ」といい、売れるビジネス本というのは、エンターテイメントの要素も必要なんだなと改めて思いました。