なぜPythonからElixirへ? きっかけはElixirカンファレンスでCTOが突如発言した事。 無茶ぶりだと思ったが、正当な理由がいくつかあった。 djangoがPython2がサポートされなくなる2020年問題。 Python3への移行なのか、別にいくかで悩んでいた #sig_ns
2018-05-12 14:35:58blog.discordapp.com/scaling-elixir… この記事が非常に面白いのでお勧めです #sig_ns
2018-05-12 14:38:34How Discord Scaled Elixir to 5,000,000 Concurrent Users blog.discordapp.com/scaling-elixir… #sig_ns
2018-05-12 14:38:34ElixirのWAF、Phoenix useを使うとコードの理解が難しくなるのでつらい 書く量は少ないが読む量は多くなる #sig_ns
2018-05-12 14:41:28DBは垂直分割(機能分割)。 さらに機能毎に分けた後に水平分割。 シャーディングに対応することが必須だった #sig_ns
2018-05-12 14:43:37ゲームのバックエンドではDBのWriteが多く、Writeはキャッシュできないので問題になりがち DBを分割するとよいが、垂直分割、水平分割が必要 ElixirのDBライブラリEctoではシャーディングに対応していない、マイグレーションがDBごとにしかできないなどがあったので、ライブラリを作った #sig_ns
2018-05-12 14:44:47[Yacto] Ecto のマイグレーションを自動化したり水平分割するためのライブラリを作った qiita.com/melpon/items/5… #sig_ns
2018-05-12 14:44:58もっと詳しい内容を知りたい人は、発表者のElixir一人Advent Calendar に色々あるのでこちらをー qiita.com/advent-calenda… #sig_ns
2018-05-12 14:45:31use問題は、Phoenixのコードを理解することで解消 Phoenixに詳しい人を一人用意して対応した クリティカルなところだけ自作して、それ以外は既存のものを使わせてもらうのがよい #sig_ns
2018-05-12 14:47:05Python時代の開発… テンプレートとなるプロジェクトからforkして開発していた 基盤チームがメンテ不可能。ヤバい… #sig_ns
2018-05-12 14:47:45Ecto そのままだとスキーマファイルとマイグレーションファイルと両方をメンテせなあかんのがつらいので Yacto #sig_ns
2018-05-12 14:47:55テンプレート止めました。ライブラリ化しました ちゃんとバージョンニングしてメンテ可能に #sig_ns
2018-05-12 14:48:31Phoenix の use はまあ気持ち悪いんだけど、動くコード書く分には気にしなければいいんじゃないですかね。詳しい人を1人つくって聞けばいいかなと。ウチは Phoenix 使わなかったけど。 #sig_ns
2018-05-12 14:49:58フレームワークをライブラリ化してバージョン管理 開発環境はdocker-composeを使ってバージョンを揃えている #sig_ns
2018-05-12 14:50:16あと use 自体は最初イラッとしたけど、共通処理をやらせたいときには普通に便利なので、最小範囲で使えば良いモノだと思う。使いたがるのはアカン。 #sig_ns
2018-05-12 14:52:29言語を変えるだけのつもりだったけど、チームの体制やつくりなどいろいろ見直す良い機会だった #sig_ns
2018-05-12 14:52:37Elixir質問を受け付けるチャットルームを用意 即時回答が求められるので担当者がつらい StackOverflowを導入するのを検討 #sig_ns
2018-05-12 14:52:41Elixirを選んだ理由 Erlang VMを使った実績があり、Erlang VM上で動くので、これが理由 #sig_ns
2018-05-12 14:55:39