2015-04-01から1ヶ月間の記事一覧

遅延初期化Singleton

「Javaによる関数型プログラミング」を読んで、学び多かったんですが、そのひとつ、遅延初期化Singletonの実装をメモしておきます。Singletonインスタンスをオンデマンドで作成するのは案外難しくて、ダブルチェックロッキングは壊れていたりするわけですが…

継続渡しスタイルと末尾呼び出し最適化

先日からなんとか理解しようといろいろやっています。 元のJavaコードを写経して確かにStack Overflwが起きないことを確認。この時点ではまだコードがなにやっているかよく分かっていない。 まず、継続渡しスタイルについて、C++で書きなおしたりして、なに…

Agile Japan 2015 サテライト<名古屋>

今年もAgile Japanのサテライトを開催しました。昨年から本会場の開催後の最初の週末の開催にしています。内容は例年通り、午前中に基調講演の中継聴講、午後はアジャイル体験ワークショップです。基調講演1は「実践アジャイルテスト」のJanet Gregoryさんの…

名古屋アジャイル移動図書館「アジャイル入門」ブックトーク会

名古屋アジャイル移動図書館ブックトーク会ということで、毎月テーマを決めて行っています。書籍は名古屋アジャイル勉強会スタッフが用意しますので、参加者のみなさんは手ぶらで気軽に参加していただければよいです。ブックトーク会というのは、本を読むこ…

手作業による末尾呼び出し最適化

ここで紹介されている方法をC++で書きなおしてみました。 template<typename T> class tail_rec { public: tail_rec(const T& value): value(value), next(nullptr) {} tail_rec(std::function<tail_rec()> next): next(next) {} T get() const { tail_rec tr = *this; while (tr.nex</tail_rec()></typename>…

雑感

2パスで表現して結果が同じになることで正当性を示す、ってありますよね。テストとプロダクションコードだってそうですが、ウォーターフォールの文書とコードだって、そういう意味では同じです。なんだけど、中間生産物について検証するのって、それ本当に答…

「よいコード」に需要はあるか

あればいいことだと思いますよ。循環的複雑度とか測って評価するとか意味あると思います。でも、そういったものがまだ光をあてられていない場所ってある。凝集度とか結合度とかもそうですけど、そんなん概念として成立していないようなね。

YouTube時代

僕が一番多感だった頃にレンタルレコードってものがでてきて、それまでの個人レベルでの貸し借りとエアチェックの時代が大きく変わったんですけど、YouTube(とそれに類するサービス)が音楽体験を大きく変えましたね。今更ですけど。先日ドビュッシーの和音…

近況

この記事とかこの記事とか読んで継続渡しによる末尾呼び出しを勉強しています。 だいたい飲み込めたと思うんですけど、これで最適化されるかどうかは言語(実装)次第なんですよね。 lambdaとか絡むと最適化されない言語が多いようで、残念な感じ。 朝の連続…