isa_ok
とかいらない)implicit conversion
の解決遅すぎ問題lazy val
パラメーターのプレースホルダー
numbers.filter(x => x > 0)
numbers.filter(_ > 0)
numbers.foreach(x => println(x))
numbers.foreach(println _)
numbers.foreach(println) // 関数が期待されている場所では `_` も省略可能
_
を省略不可能def add(a:Int, b:Int) = a + b
val a = add _
val b = add:(Int, Int) => Int
val c = add(_:Int, _:Int)
val d = a // コレはOK
val ng = add // コレはエラー
val ng2 = add(_) // コレもエラー
Perlのモジュールの思想を受け継いだものが結構できた
データありきでそれに対して振る舞いを定義する。 > bless
っぽさ
type Centigrade float64
type Fahrenheit float64
func (ce Centigrade) ToFahrenheit() Fahrenheit {
...
}
こんなかんじの構成ですって以外にはあまり特筆すべきことはない。
シンプルでかつ最高のJavaScriptプロファイラ sjsp を作りました! ― Webアプリケーションが複雑化する中でプロファイラに求められるものとは何か
Perlでツール作成(標準モジュール縛り)
% perl tool/releng
% prove tool/releng
$ENV{HARNESS_ACTIVE}
を見て分岐ちゃんとテストを書けるのは安心
if (!$ENV{HARNESS_ACTIVE}) {
main();
} else {
# When called via `prove`, tests will run.
run_tests();
}
travis encrypt-file
を使って暗号化したものをrepoに置くtravis
コマンドのサブコマンド
gem install travis
travis encrypt-file
で暗号化した秘密鍵をリポジトリにコミットgit remote set-url origin git@github.com:mackerelio/mackerel-agent.git
でリモート書き換えプロジェクトの渋い脇役としても活きる