Shibuya.ex #1 の様子
Shibuya.ex #1 - Shibuya.ex | Doorkeeper
参加してきました。スライドの簡単なメモとツイートをピックアップして載せておきます
もうすぐ始まります #shibuyaex @ Increments Inc. https://t.co/6FCnQqIetr
— Hiroshige UMINO ☕ (@yaotti) August 25, 2015
Elixirご紹介(@naoya_ito さん)
WEB+DB PRESS Vol.88 の Elixirの記事は本当に事始めとして良いのでオススメ #shibuyaex
— ハヤブサ@鉄の人(代理) (@hayabusa333) August 25, 2015
Elixirでrubyに似てるのはdefとdoとendくらい #shibuyaex
— κeen (@blackenedgold) August 25, 2015
Rubyみたいに書ける関数型言語、がポイントではなく、Erlang VM上に乗っかってるというのがポイント。#shibuyaex
— yasaichi (@_yasaichi) August 25, 2015
関数呼び出しにパターンマッチが使えるすごい #shibuyaex
— もっぱら (@orih_y) August 25, 2015
Elixirの資料たくさんある http://t.co/7wXGxFdtmt #shibuyaex
— Hiroshige UMINO ☕ (@yaotti) August 25, 2015
ざっくり特徴
なぜElixir?
- ランタイムが強力
- 重要なのはErlang/OTPの上に乗っていること
関数型
- 動的型付けの関数型言語
- なし
- 静的型付け
- 純粋関数型
- 部分適用、カリー化
- オプション型(Maybe)
- ある
- リスト内包表記
- 遅延評価、無限リスト
- なし
参考
- Programming Elixir
- http://elixir-ja.sena-net.works/getting_started/1.html
- http://www.slideshare.net/joe_noh/presentations
- https://github.com/h4cc/awesome-elixir
次の10年の為にElixirをハックする(@mizchi さん)
「Elixirで一発当てたい」 #shibuyaex
— κeen (@blackenedgold) August 25, 2015
「mizchi は仕事で Elixir を使いたいから Qiita 書いて naoya を焚きつけたら Web+DB PRESS に記事が書かれた」完全に術中に嵌った俺です。REST のときも同じく yohei さんの術中に嵌った罠 #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
「react-phoenixを作ろうとした」
「あとは作るだけ」
#shibuyaex
— κeen (@blackenedgold) August 25, 2015
「高速で耐障害性のあるJSON APIが求められている」「いまさら型がない言語を学ぶなんて」せやな、感 #shibuyaex
— yasaichi (@_yasaichi) August 25, 2015
これな。5年前にブクマしてたw #shibuyaex / “node.js vs Erlang (ネタ) - amnesiac weekend programmer” http://t.co/kUBVLOmMEA
— Naoya Ito (@naoya_ito) August 25, 2015
Elixiriはどういう言語か
- 文法は気持ちの問題
- すぐにErlangを学ぶハメになる
Elixirへの不満
- いまさら型がない言語を学ぶこと
Elixirに解決して欲しい問題
- Let it crashしたい
- GCセンシティブ
本音
- つまらない言語で消耗したくない
- Elixirみたいな面白機能積んだ言語流行ってくれ
割り切り
Elixirを本番環境で使ってみた事例紹介(@ohrdev さん)
www.slideshare.net
おーはらさんによる 動画広告ネットワークをElixirで作った話 #shibuyaex
— κeen (@blackenedgold) August 25, 2015
ドリコムさん、DAU 60万のアドのサーバーを Rails から Elixir に変えた、とな #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
APIサーバーにElixirを使って複雑なビジネスロジックはRailsバッチ(Sidekiqでenqueue) #shibuyaex
— κeen (@blackenedgold) August 25, 2015
railsエコシステムをElixirで再実装したものを利用してる #shibuyaex
— κeen (@blackenedgold) August 25, 2015
かなりエッジなものたくさん突っ込んでるイメージで怖い #shibuyaex
— Electron (@r7kamura) August 25, 2015
まさに人柱って感じだ #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
本番の運用事例本当にありがたい #shibuyaex
— taka (@ma2ge) August 25, 2015
#shibuyaex / “パーフェクト"Elixir情報収集"” http://t.co/KCeQpQ99HA
— Hiroshige UMINO ☕ (@yaotti) August 25, 2015
#shibuyaex / “Sapporo Beam” http://t.co/ZGKh5XAf7o
— Hiroshige UMINO ☕ (@yaotti) August 25, 2015
札幌beamの資料めっちゃ助かった #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
@ohrdev さん、すばらしい発表だ #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
きてよかった感ハンパない #shibuyaex
— WAKASUGI 5T111111 (@5t111111) August 25, 2015
Twitter 盛り上がってるのに会場お通夜状態。これが IT 勉強会 #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
サービス紹介
- DreeVee
採用の経緯
どう使っているか
- API部分に限定
- バックエンドはRedis、Dynamodb
- デプロイ
- exrm
- maru
- grapeのelixir実装
- その他
- exredis, poolboy, ex_aws, rave_elixir
困ったこと
困らなかったこと
感想
- Erlangを知らないと辛い
- ドキュメント少ない
- コミュニティが少ない
- sapporo.beamおすすめ
- Erlangのコミュニティ、エコシスエテムは偉大
- 時雨堂さんのドキュメントが参考になる
- Elixirならではの機能が便利
- パイプ演算子がないとやっていけない体に
- struct、protocol、遅延処理、etc
- マクロが強力
- debug、Perf関連はErlangのプロダクトが充実
- observer、eper、
- Elixirも徐々に充実
- Erlangをざっと把握しておくと良い
- すごいE本
- 関数型言語についての理解
Cowboyを使ってみる(@hayabusa333 さん)
お、週間 Elixir ライブラリの方だ #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
ガチなのきた #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
Cowboyとは
- モジュラー形式のHTTPサーバ
- ErlangVMで動くHTTPサーバとしては一強
- Plugを使えばもっと簡単
DBにseedにするライブラリつくった(@Joe-noh さん)
www.slideshare.net
Joe_noh さんに足向けて寝られない #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
おお、Phoenix の seed ・・・ まともなやり方わからなくてベタ書きしてたよ #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
DBにseedを入れるライブラリ tane #shibuyaex
— κeen (@blackenedgold) August 25, 2015
うおー、最高っぽい #shibuyaex / “Joe-noh/tane · GitHub” http://t.co/jJ6BW6pxbG
— Naoya Ito (@naoya_ito) August 25, 2015
exseedがある
要望
- モデル名繰り返したくない
- 1行1属性縛りは避けたい
- 複数Repo使えたい
- Elixirらしく、パイプを使いたい
tane
Rails TutorialをPhoenixで移植してみた(@hagiyat さん)
Ecto、せっかく Repo と Model 分かれてるのに Model を ActiveRecord みたくドメインとサービスとデータアクセスごった煮にしちゃうのはどうかなと思って、なんか設計パターンがまだ見いだせてない #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
Ecto の Model はデータモデルと割り切って、クエリ関数を記述するだけにしてドメインモデリングは別に層を作ったほうが良さそうだなというのが今のところの推測 #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
「Rails Tutorialを移植したと言ったが、アレは嘘だ」 #shibuyaex
— κeen (@blackenedgold) August 25, 2015
viewは俺がサーバサイドレンダリングできる最高なやつ作るんで待ってくれ #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
Elixir - Phoenix をやるとなると、ライブラリが足りなくて、うががががががってなるので、ライブラリを作るチャンスでもあるっという #shibuyaex
— ハヤブサ@鉄の人(代理) (@hayabusa333) August 25, 2015
パイプ中毒者続出 #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
Phoenix のビュー周りがまだいまいちなの mizchi が react-phoenix 作ったらまるっと解決 #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
Elixirのライバル達を紹介する(@moccos さん)
まあ、MirahはRuby Like JavaだからActorではないか。 #shibuyaex
— κeen (@blackenedgold) August 25, 2015
#shibuyaex AkkaとErlang繋ぐこんなのありましたね http://t.co/d6vbnMyoyp
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
Beam VMはプロセス毎にGC持ってるだけでなくてIncremental GCなのでリアルタイム性は高いですね。 #shibuyaex
— κeen (@blackenedgold) August 25, 2015
ライバルとの差ってプロダクトで使う時にとても重要なので、とてもありがたい発表だな #shibuyaex
— ハヤブサ@鉄の人(代理) (@hayabusa333) August 25, 2015
ponylangちょっとみたけど楽しそうだった #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
ponylang, ドキュメントがないownershipみたいな機構があって辛いそうです #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
Fantasyスタックの話(@yodatomato さん)
FFスタック、 Phoenix のロガー作って tail of phoenix ってモジュール作りたいという気持ちがあった。誰かやって欲しい #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
「30代になると時間がない。死期が近い」#shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
brunch.io、昔使ってたんだけど、メンテナのpaulmillrが興味失ってるんでphoenixでみたときオゲーってなった。正直。 #shibuyaex
— 賢さを上げて法で殴る (@mizchi) August 25, 2015
おわり
つぶやくの忘れるくらいどの発表も良かった #shibuyaex
— もっぱら (@orih_y) August 25, 2015
Elixir の有益な情報いっぱい集まって来て良かった #shibuyaex
— Naoya Ito (@naoya_ito) August 25, 2015
想像したよりガチ勢だった #shibuyaex
— れい (@rei_m) August 25, 2015