2014/02/14 デブサミ2014【14-A-6】Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所 #devsumiA
- natsu_nanana
- 3431
- 0
- 1
- 1
特に implicit converter は誰も読めない技術的負債になりがちだったのでなるべく避けた。 Actor プログラミングははまった時に苦しんだ。 #devsumiA
2014-02-14 16:20:47吉村「コミュニケーションの問題を解決するために、インフラメンバーにデイリースタンドアップに参加してもらった。座席も工夫して、近くにしてもらっている。」 #devsumi #devsumiA
2014-02-14 16:21:35吉村「インフラはクラウドではなく、オンプレミスという選択。IOパフォーマンスや費用、社内方針としてオンプレミス。」 #devsumi #devsumiA
2014-02-14 16:22:13インフラ技術者とアプリ技術者を隔てないために席の配置等も含めて組み替えた。インフラ技術者もスタンドアップミーティングに参加。 #devsumiA
2014-02-14 16:22:52吉村「DBにはMySQL。水平分割できるように設計時から考慮。InstagramのID設計、Twitterのsnowflakeなどを参考に。」 #devsumi #devsumiA
2014-02-14 16:23:53速いDBとしてredisを採用。大きなデータを突っ込むとパフォーマンスが落ちるので、小さいデータで扱うように工夫している #devsumiA
2014-02-14 16:24:51DBはMySQLの水平分割と垂直分割の合わせ技。64bitのキーの中にシャードID(12bit)やデータタイプID(10bit)を組み込んでシャーディングを容易にできるようにした。 #devsumiA
2014-02-14 16:25:38吉村「websocketアプリ1インスタンスで5万ユーザの視聴環境を実現(従来の4倍の効率化)nginxとNettyサーバーで非同期IOを利用することで最大接続数が改善。REST APIからWebsocketを利用することで接続コストが低減」 #devsumi #devsumiA
2014-02-14 16:26:47websocketアプリ1インスタンスで5万ユーザの視聴管理を実現!! nginx,nettyで非同期IOを利用。REST APIからWebsocketで接続 #devsumiA
2014-02-14 16:26:51吉村「ドメイン駆動設計について最低限徹底したこと。1.ユビキタス言語、2.モデルを使って議論すること、3.レイヤードアーキテクチャ、4.正しいモジュール化。変更時に読まなきゃいけないコードを減らす。5.エンティティと値オブジェクトの使い分け」 #devsumi #devsumiA
2014-02-14 16:28:19