http://forkwell.connpass.com/event/13568/
最初に感想
- goイメージわかなかったけど、話し聞いていて使いどころ(メリット)がなんとな〜くだけど分かった。
- 「つかったことない」って堂々と手を上げたけど、使ったことある人が大半ぽくてビビったw
- はてなの東京オフィスめっちゃ気になる...
19:50 ~
Forkwellキャリア談義 について
- 今回は3回め
- 1回はCrowdWorks
- 2回はビープラウド
エウレカ 金子さん
- 事業の説明
- どこでGoを使ってるか
自己紹介
- 2012/10 ~
- Cが得意(数値解析)
- 会社の犬、ジョブさん
会社概要
- マーケティングの会社と思われがちだけど、エンジニアが多いよ(社員の2/3くらい)
- 自社サービスの開発
- 台湾、シンガポールに拠点
pairs
- 会員数200万人
- PC/SP/iOS/Android
Couples
- 200万DL
- リリースは2014/5
- iOS/Android
Goをつかっているところ
- まえからツール作成に使ってる人がいた
- シェルの置き換えみたいな感じに使ってた
- pairs への採用背景
- このコードは愛せない
- このスキーマは愛せない
- →詳細はスライドに
- pairsをフルスクラッチに
- まえからツール作成に使ってる人がいた
こまったところ
- フレームワークがない(メジャーどころがない)
- テストフレームワークがない
- ORMがない
- マイグレーションがない
- デバッグがない
- 無いので、良さそうなやつを探す
- ベンチマークをとる
- どれくらいつかわれているかを調べる。
- メンテナンスは活発か
- デバッグ環境がまだ課題
- GoとしてはGDBってのがあるけど、正常に動かさないw
- コンテキストの概念とか
- とりあえず作ってコミット→レビュー、良ければ採用!
開発は今中盤
- Goでつくるのは最初は不安だったけど、今はもう大丈夫、という感じ
まとめ
- まずは簡単なことをやるといいよ
- フルスクラッチは手探り
- 少数精鋭でつくってる、スタンドアップMTG。わかんないことは、みんなで解決
白ヤギコーポレーション 柴田さん @madyagi
- 自社サービス「カメリオ」
- 代々木に務めている
フルタイム7名、インターン3名くらい
自己紹介
- 研究系のしごとしていた。
- データサイエンティスト
- PyData Tokyoを主催
- 前回はPython高速化の話をした
- 3年間で、100PBのデータ
- 著書「データ活用実践教室」
カメリオ
- 「深く知ることで生きることを豊かに」
- スタートアップの情報の例
- 興味に合わせたニュースサイト
- Gunosyをさらにもっとキュレーションさせた感じ
- 人工知能型ニュースキュレーション
- 滞在時間、9分(かなり長い!)、22時以降読んでいるひとが多い。雑誌に近いような感じ
- クローリング&自然言語処理&行動履歴からの学習型リコメンドエンジン
- コンテンツ価値の最大化
- 効果的な真似て合図
- カメリオAPI
- 記事→記事のレコメンデーション
- 外部提供を始めた
- APIをGoで
-
- この勉強会で、Goとの出会い
はてな 松木さん @songmu
- 自己紹介
- Perl, CPANize
- 運用を見据えたコードを書くのが得意
- はてな、チーフエンジニア、Mackrelのディレクター
- GoとScala
東京オフィス
- 自転車通勤
- ランチ
- 芝生、畳
- 増床、もっと人は入れるよ
Mackerel
- はてな内製の監視ツール
- サービスとロールという概念でサーバを管理
- エージェントメトリクス送信、グラフ表示、アラート
- Slackにグラフ画像出すというのが今日追加された
- インストール簡単
- yum / apt
- カジュアル運用から、ヘビー運用まで
- Goはエージェントで使ってる
- はてなではサーバサイドにつかってるわけじゃない
- エージェントはOSSで公開している
- お客さんへの中身を見せて、信頼感を得たい
- Mackerel プラグイン
- OSS
- sensu互換の出力でOK
なぜGo?
- セットアップ簡単
- マルチプラットフォーム
- 常駐が楽
- 並行メトリック集取
- パフォーマンス高い
エージェントがやっていること
- メトリック送信
- メトリック収集
- チャンネルをキューのようにして通信
- ?なんぞ?
- メトリック送信
最近した変更
- プラグインの時効で詰まるのを回避
- ☆GNU coreutils timeout のgo移植
内製JobキューをGoでつくてる
- そのうちOSS出すよ
blogsync, ghq, gore(goのrepl(!すげー!)) @motemen
いいところ
- 型があるのに、コンパイル速度速い、LLぽさ
- 凝ったことが出来ないのが逆にいい
- (言語的に)「機能を削って勝負」
- 可読性高い
休憩
パネルディスカッション
- モデレータ Gunosy 横道さん @k_yokomi
- ずっとGunosyでGo書いている
- go:generate がマイブーム
- Gunosy Go 勉強会やってるよ
Goを業務で使う上でのメリットと課題
- 白ヤギ(以下略 白):新しい技術、うれしい。エンジニアとして刺激的。APIサーバとか特定のところにハマる。簡単に習得できる
- Gunosy(以下略:G):学習コスト低い。
- エウレカ(以下略:E):勉強会おおい。ぺちぱー多くて、メモリ管理とか型を意識しなかった。←そこからの学びが多かった。技術力の底上げ
- G:標準ライブラリの読み上げの勉強会とか、それが外に広がっていった。Python、Androidエンジニアいるけど、みんなGo書ける。社員全員の標準言語
- はてな(以下略:は):書いていて気持ちいい。ひどいコードになりにくい
- ?なんでだろう、それはやっぱり書いてみないとわからないか
- は:エッジな人が注目している言語なので、そういった人とコミュニケーションとりやすく、スキルアップが図れるよ
- G:エディタはなにつかってる?
- は:Vim。ScalaもVim。困ってない。プラグインで整形、補完も
- E:Vim。戦争してる。社内でSublime3人、IntelliJも一人。Android書くときはIntelliJ
- 白:Vim。全部Vimで書いてた(書きものも)。社内はいろいろ、Emacs、IntelliJも。
- G:どのエディタでも書けるのは、メリット。自身はIntelliJつかってる。自分にあった武器が使える。
- G:開発環境はみんなMacだよね。でもG内ではLinuxがいる
- 課題について
- 白:Pythonでいろいろ書いてた。APIサーバをNodeで書いてたのを、Goにした。Goで複雑なことをしたいと思った時に、どうやってつないでいくのか。メッセージ・キューがいい?新しい概念があるので、ビルド・デプロイをどうしていくか
- G:日本語ドキュメントがない。デプロイの仕方がまとまってなかったりする。
- E:中国での開発がかっぱつっぽい。ドキュメントでChineseが第一言語、Englishが第二言語、みたいなときがある。環境依存の問題
- 依存モジュールのマネージャーを導入したけど、デファクトスタンダードがない。
- 後方互換をずっともつのは今後どうやるのか
- G:☆GoDep
- ☆GoGet 最新を取ってくると、ローカルと違う状態になる。☆Go In
- ???知らない単語多し
- は:依存の問題はある。そもそもの問題。コミュニティが未成熟。コミュニティでデファクトのライブラリを作ったりすると、いいのかなぁと思う。仕事で使うのどうか、という不安も拭えるかな
Goはこの先どんな使われていく?
- G:Goモバイルに期待
- は:いろんなところ、モバイル、Androidもつくれるという噂。マイクロサービス化のための言語なのでは。敢えて大きい物が作れないようになっているのでは? 小さなものを組み合わせてつくり上げるのでは。
- E:APIサーバ。フロントもGoで今やってる。コアのところをふつうはまずやるのかなぁ。モバイルは期待している。IntelliJとか、Androidの開発の準備はできてきた?
- 白:コンパイルはやい、プラットフォーム対応多い。それが広がっていくのでは。書きやすい言語。開発スピードも早くできる。通信前提をしたものに中に入っていけるのでは
- G:ラズパイ、ドローンなどのりよう事例も。(GCで一瞬とまる?w)
質問
- ?今バッチメインでつかってるけど、WEBはどうやっていけばいい?おすすめは?
- E:テンプレートエンジンは標準つかってる。基本は標準のものだけ使っている。AngularJSでも結構頑張っている。
- 白:いいものがあまりないから?
- E:そんな感じ。
- G:テンプレートエンジン標準。ERB形式で書けるやつあるけど。シングルページアプリとか。React使ったりするとやりやすかったり。
- E:テンプレートエンジンは標準つかってる。基本は標準のものだけ使っている。AngularJSでも結構頑張っている。
採用
どんな人がいいか
- G:個人的な意見として、話をして、一緒に働きたいかどうかかも。技術力が高いということはあまり関係ない。Gunosyでやりたいことを一緒にやれるひとの方がいい。
- E:「エウレカのカルチャーを理解できる人」。サービスをスケールさせることに、面白みを感じてくれる人。面談で話してみたりして、あっているかを判断。
- 白:うまくいったときは「さらけ出した時」。みんな来て、よりはやりたいことを押し出して募集したほうが成功した。刺さる人には刺さる。
- は:「いっしょに働きたいとおもえるか」。知る、つながる、表現する。人の生活を豊かに ←ミッション。サービスを10年以上改善し続けている。運用しながら改善し続けていくという難しいことをやっていきたい人。
エンジニアとしてどんなキャリアを歩んでいきたいか?(どうやって生き残っていくか)※個人的な意見を
- G:Goのまっつんさん、すごいスピードでいろいろ作っている人。OSSに貢献しつつも、仕事にそれを生かせるようなひと
- E:できないことをできるようにしていく。エウレカ入ってからWEB始めた。iOS、Androidと初めての経験が。次はGoを。いろいろやってきてできるようになってきたので、これからも新たにできることを増やしていけるひと
- 白:良いチームの環境作り、AWSが自社のインフラがサービスになった、気づいたら勝手に裏でプロダクトができていた、みたいな
- は:コードを書き続けたい。キャリアは考えてもしかたない。今年35で定年w。
各社PR
- は:いい会社。開発に集中。エンジニアのアイデアがそのまま仕事になったり。いまは面白いフェーズ。
- E:ユーザに触ってもらえるサービスを作りたいエンジニアを募集している。伸びているサービスを一緒に作りたい人。
- 白:技術的な強みを深めていきたい。研究していた時に「凄ければすごいほど応用利かないじゃん」というのを変えたい
- G:一緒に働きたい人がほしい。新しい改善をエンジニアのアイデアを募っている。スペシャリストが集まっている。面白い人も多い。(インフラエンジニア、とくに募集中)