はてなブックマーク in Scala
- Scalaとの関わり(まだ4ヶ月)
- もともと型理論やってた => Ocamlやってた
- はてなブックマーク10周年 => 10周年で作り直し!Scalaで!
- コードベース肥大化、変更が困難
- 開発中ベース
- 構成 => 前段perl 後段 scala コアははてなブックマーク以外からも使う
- なんで使いたいか
- Perlは
- 頻繁に変更があっても楽
- デザイナもHTMLテンプレート使うので
- これまで
- 新コア
- DDD
flyway-play
- Playのマイグレーションをもっと便利にする
- scala-csv
- Database migration は難しい
- DBでなんでこまるか
- Mutable
- Like global variable/state
- 手動で管理されてたり、本番が正だったり(なんとかしたい)
- 開発者がいろいろ困る
- Gaol
- 開発者とDB管理者で作業できる
- マイグレーションの変更履歴がおえる
- flyway
- SQL base migration
- Java based migration
- データの移行とかをする場合の奥の手
- WEB+DB press 84 に記事がある
- flyway-play
- flyway module for play 2.4
- play-flyway is available for <= 2.3
- play-evolutions => いろいろあってflyway-play
- アプリへの組み込み方
- slick-codegenと相性良くない => play appが動くときflyway-playが動く、コード生成はコンパイル時
- DEMO
FitureとServlet
- スレッドローカルが存在する世界
- Future
- Futureを産んだ元スレッドの値をFuture側のスレッドから簡単にアクセスできる
- mutability
- Scalatraのreq/resスレッドローカル、Futureからさわれない
- Sknnyでのアプローチ
- skinny-engine
- stable request
- no more dynamic scope
- Contextをimplicit parameterとして渡す
- コンパイルエラーで確実に潰す
- new async trait
チャットワーク scala化プロジェクトの一年
- ビジネスが加速するほうがチャットワーク
- Scalaで刷新する理由
- Scala化プロジェクト開始
- 0から設計実装
- 4年間で追加された多くの機能、使用をみたす必要がある
- DDD
- 複雑な仕様と立ち向かうための道具
- 日々のコミュニケーションの効率化
- コミュニケーションで使う言葉とコードを結び付ける
- どのようにプロジェクトを進めたか
- Scalaエンジニアを集める
- 進捗どうですか?
- リリースのめどがようやく立ってきた……かな?
- Scala採用してよかったか?
Refactoring with Functional Programming Style
- Scalaコードレビューサービス
- GitHub(クローン)上でのOnlineコードレビューサービス
- Slackなどでリアルタイムに質問できる
- 典型パターンがあるので、それからFPStyleをどう適用するか
- Listのコード
- でかいリスト
- mapとかを使うとmutableがなくなる => 2回全件ループしてる => FPstyleはだめなんじゃ……
- Monoid => 集合と2項演算の組み合わせ 引数と戻り値の型が同じ
- 整数と足し算
- Listと連結
- Monoidではない
- 整数と割り算
- 整数と引き算
- Foldable 畳み込みができる型クラス(Javaのインタフェースみたいなもの、後付ができる)
- もしListの要素がMonoidであれば畳み込みができる
- foldMapメソッド
- Monoidは合成ができる
- 要素の順序さえ同じであれば、どこからでも畳み込みができる
- 平衡畳み込みができる
- 巨大な集合に対する状態をもった複雑なループもMonoid+foldMapで簡潔に書ける
- 今のところ20万(月額)
LT大会
パネルトーク
- Scalaのか同案件
- なぜScalaを採用したのか
- Scalaを使っていて最高に気持ちいい瞬間
- 型がぴったりあてはまったとき
- 型合わせゲームはたのしい
- 継続的にアドレナリンが出ている
- Scalaを使うときに障害になったこと(ブレイクスルーになったこと)
- Scalaを業務で使うのは難しくない?
- 人のバックグラウンドにもよる
- 役に立つ部分から導入すれば問題ないのではないか
- これを読めば!というのがあればとは思う
- 新しい概念はそりゃ難しいが、それほど心配するものでもないと思う
- これからもScalaを使い続けるか?
Scala逆引きレシピ (PROGRAMMER’S RECiPE)
- 作者: 竹添直樹,島本多可子
- 出版社/メーカー: 翔泳社
- 発売日: 2012/07/03
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 54回
- この商品を含むブログ (14件) を見る
- 作者: 竹添直樹,島本多可子
- 出版社/メーカー: 翔泳社
- 発売日: 2013/06/20
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
とりあえず面白かった。細かい話はまた後。
追記
書きました。