「Go、Scala、Clojureで開発する3社が集結!!」に参加してきました。
http://hitomedia-night.connpass.com/event/23452/
メモ程度ですが何かの参考になればと。
コンテンツ | 発表者 | 資料 |
---|---|---|
Golang in eureka | エウレカ 三津澤さん | - |
Scala採用の背景とその謎 | Demand Side Sience 平岩さん | - |
サイボウズスタートアップス | サイボウズスタートアップス 落合さん | - |
Golang in eureka
- エンジニア:50人 / 社員数:90人
- エンジニアドリブンの文化
- pairs
- 会員数: 2年 300万人
- 急成長してます
- PHP から Go にフルスクラッチ
- DBもマイグレーションも書き換えた
フルスクラッチの背景
- 大量の技術的負債
- 密結合
- スケールしないDB設計
- 巨大なモノリシックなコードベース
移行先言語に求められるもの
- シンプルさ
- キャッチアップに時間がかからないか
- チーム開発向きか
- ハイパフォーマンス
- 開発速度(ビルドの速さなど)
- 並列処理がシンプルに記述可能
- チャレンジング
- エンジニアリングのレベル向上につながる
Why Go?
- 学習が容易
- さくっと書いても割と速度が出る
- goroutine / channel
Goの欠点
- モダンなシンタックスはない
- map /reduce
- パターンマッチ
- 例外
- 確立されたライブラリが少ない
- WAF
- 3rd party
- 数値計算系が不得意
Go版pairs
- フロントサイド
- AngularJS + Typescript
- 設計
- Microservices
- 決済 を完全に分けて別DBを参照している
- Microservices
Goでアプリケーションを作る時の所管
- パフォーマンスは出る
- 罠はそれなりにある
- 値の初期値でハマる
- LLのセキュアのものは若干扱いづらい
まとめ
- やりたいこと/やるべきことが見えているならあり
- デファクトがないので 0 → 1は厳しい
Scala採用の背景とその謎
- オプトのアドテク
Scalaとは?
- オブジェクト指向と関数型
採用した理由
- やりたい人がいた
- 技術ベンチャーとしてアピールポイントになると思った
- DSPとして技術をアピールしたかった
- なんかすごそうと思った(勢い)
Scalaを採用している理由
- エコシステムやコミュニティの充実
- Scala Matsuri
- エンジニアとしてのメリット
- 型安全
- ボイラープレートを減らせる
- 関数型・オブジェクト型の両面による抽象化
- 採用にプラス
- Scalaがキッカケで応募する
- 量より質を上げる
改善点や課題
- 枯れていない
- ベスト・プラクティスが確立されていない分野が多い
- バグもたまにある
- Scala本体のアップデートがよくある
- コンパイルが遅い
- 最大の欠点
- SPAでつくっている
- AngularJS + Typescript
- プロジェクトを適切に分割する
- implicit conversion、マクロ
- 関数型プログラミングをどこまで推奨するか
- scalazやshapelessの利用
- 圏論などの前提知識が必要
まとめ
- 新言語導入は打算と勢いで
- メリットがないと
- 現場の人達が幸せになれる選択を
- 使う人が幸せに慣れば
サイボウズスタートアップス
- 会社説明
Clojureの採用
- 会社の技術的な中心に Clojure をおいた
新しい言語を採用するにあたって
- 優秀なエンジニアを採用したい
- 優秀なエンジニアが使いたいと思う言語
- 関数型とか
- 優秀なエンジニアが使いたいと思う言語
- 採用で勝てる条件が揃ってる
- 大手が採用していない
- その言語で圧倒的なブランド力がある企業がない
メリット
- Simple
- LISP
Simple Made Easy
- 経営陣の共通の考え
CloureScript
- Reagent, Om
人材採用面で有利
- 能力の平均値が高い
- ブランドが築けそう
まとめ
- 機械学習
- 人材採用の面で有利
感想
- 新しい言語の導入は最後は勢いかも
- 実際にその言語を使って開発する人が幸せになれるのは重要
- メリットがないと正直導入は難しい
- チャレンジすることによって技術力のアピールにはなる
- あえて競合がいない言語も選ぶのも、差別化という意味ではあり
- Go言語だったら◯◯社みたいになれるチャンスも
新しい言語にチャレンジするのは技術力アピールにつながるので全然ありだなと思う一方、
経営層の理解がないと結構辛いことになりそうな気がしますね。