comix

ジャンプみたいなブログになりたい。

Aktsk Tech Meetup #1に行ってきました

Elixirのイロハを学ぶためにアカツキさん主催のミートアップに行ってきました! 場所は代官山のアカツキさんオフィス。UNITの近くでした。

connpass.com

リアルタイムメモを晒しておきます。 (生メモなので正確なところはスライドを参照ください)

『GraphQL を Relay と Phoenix で実装する』

Speaker:岡田さん

WebAPI

オーケストレーション

  • 1画面1API
  • DBアクセス多い
  • 汎用性なし
  • クライアント毎の最適化に強い

理想のAPI

  • サーバーの作りがシンプル
  • 汎用性がある

GraphQL

  • 理想のAPIに近い?

Relay

  • ReactにGraphQLの機能を追加するライブラリ

React

  • JSのライブラリ

Elixir

  • マクロでDSLを作ることができる

Ecto

  • DSLでデータベースアクセスを実装
  • マクロを自分でつくって、GraphQLを実装する

Phoenix

  • ElixirのWAF

QA

  • 複雑なクエリはどうしてるのか?
    • ASTで変換してる(聞き間違えてるかも)

speakerdeck.com

『Node.js is Dead - なぜ私がNode.jsを捨ててElixirに乗り換えたのか』

Speaker:平野さん

Node.jsへの期待

  • V8
  • npm

Node.jsを4年くらいやって学んだこと

  • コールバック地獄
  • ベストプラクティスがずっとない(RoR的なとりあえずこうしておけ的な)
  • 一個ブレイクスルーが起きるとそのフォロワーが山程出てくる問題がつらい
  • スクランナーだけでいくつも渡り歩いた(jake、grunt、brunch、gulp)

いまはこうしてる

  • ES6で書く
  • co+yield(TJ)
  • WAFはkoa(TJ)
  • sequelized

Node.jsはすごいが、、

  • 一個一個npmモジュールを評価し組み込むサイクルはつらい
  • サーバーサイドはもっともっと楽したい

補足

  • co + koa + sequelizedはよい。
  • BKSS開発ワロタ
  • co + koaで非同期処理中のエラーハンドリングもしやすくなってきた

Elixir

  • 安心して乗っかれるベストプラクティスがある
  • シンタックストレンディ

Elixirの美点

  • 関数型、データの不変性、参照透過性

すごさ

プロセスアーキテクチャ

  • エラーハンドリングは監視プロセス側で行う
  • ロジックとエラーハンドリングが分離出来る(これがNode.jsだと辛い)
  • SupervisorからTask.asyncとTask.awaitを使い、タスクの非同期呼び出しをする

他には、、

感想

  • Node.js(2ヶ月)→Elixir(2週間)

QA

  • よい教材は?

www.youtube.com

  • 踏んだ地雷は?
    • IOヘビーな処理は並列化することでパフォーマンスでる。
    • ストリング操作やりやすいが、SJISの文字列をUTF8に変換するのが大変(iconvを使った)

speakerdeck.com

懇親会は時間の都合上行けませんでした〜(T_T)