Go言語による開発ノウハウを学ぼう!導入企業3社の選定理由とは?実践Go言語勉強会レポート

Googleによって開発された“Go言語”。新しい言語ですが、最近では導入企業も増え、さらに注目を集めているプログラミング言語のひとつです。

先日21cafeで、そのGo言語に関する勉強会が開催。サービス導入している3社からGo言語を導入した知見がシェアされました。実践で役立つ情報が満載の当日の様子をレポートします。

20160425_ec

 

サービス導入している3社がGo言語の魅力を語る!

■Go言語の実践運用で得たノウハウと気づいた魅力について

発表者:吉元裕人氏(株式会社インテリジェンス MIIDAS COMPANY)

今回は、「待っているだけで面接確約のオファーが届く」転職支援サービス『MIIDAS』の導入事例についてお話いただきました。

| MIIDASにおけるGoの選定背景と選定理由

MIIDASはバッチの複雑な処理が多く、社内ベンチャーで速度優先の開発が求められるサービスでした。そのため、並列処理が可能でパフォーマンスの高い言語、かつスピード感のある開発に向くGo言語を選定。なかでも開発支援ツールの充実さには魅力を感じているようでした。

| WAFはRevel、ORMはGORMを選定

Webアプリケーションフレームワークは、開発効率を重視し、フルスタックであるRevelを使用。GORMと連携し、管理画面を自動生成できるスクリプトを書いていて、その運用方法がかなり便利とのことでした。GORMは複数のORMを調査した上で、メンテナンス頻度と使い勝手の良さから選定したそうです。

| メンバーが使っていて「楽しい」のが何より魅力

「Go言語の導入は、社内の技術者の文化作りにも貢献した」と吉元氏は言います。パッケージ単位で共有できるというGoの特徴が、ノウハウの共有を促進し、社内のコミュニケーションも活性化!吉元氏は、エンジニアにとって効率的・効果的であることが考え抜かれている言語だから、プログラミングが楽しくなるのではと分析していました。

「技術者の文化作りに貢献する」というGo言語導入の意外なメリットを発見できる発表でした。

■TalknoteとGolangと私

発表者:三浦堅右氏(トークノート株式会社)

三浦氏には、利用企業数No.1と言われる社内SNS『Talknote』での導入事例をお話いただきました。

| TalknoteにおけるGoの選定背景と選定理由

Talknoteでは以前PHPを選定していましたが、性能や言語仕様、設計の問題を抱えていました。それぞれの課題の対策として、Go言語で書き変えることを決断。選定した理由は、Go言語の持つ5つの魅力にありました。
・プログラミングのガバナンス
・堅牢なプログラミング
・性能
・デプロイの容易さ
・並列処理

| Go言語の魅力は、CPUの有効活用。

三浦氏が語るGo言語の魅力はCPCが有効活用できる点。スクリプト言語の多くはマルチコアを生かすことが難しいです。しかし、Go言語はgoroutineなどにより言語レベルで並列処理をサポートしているので、CRUを活用しやすいといいます。

| Talknoteはマイクロサービス化へ。

Talknoteはマイクロサービス化を進めています。それに付随しGo言語への書き換えを行っていますが、一部PHPを残すようです。自社の理想の開発体制を考え、薗上で適材適所で技術選定を行うべきだというのが三浦氏の見解です。

その他、Go導入に伴うフレームワークやライブラリの選定についても詳しくお話いただきました。

■Golang @ eureka

発表者:三津澤 サルバドール将司氏(株式会社エウレカ)

三津澤氏からは国内最大級の恋愛・婚活マッチングサービス『pairs』での導入事例をお話いただきました。

| pairsにおけるGoの選定背景と選定理由

pairsも、もともとはPHPで書かれていましたが、大量の技術的負債と設計の問題があり、書き換えの必要がありました。

そこで、文法の少ないシンプルなGo言語が、習得コストが低く、コードの品質が維持しやすいなどの理由で選定されました。特に、三津澤氏が重要視しているのはコードの読みやすさ。「知らない文法がほぼ出てこないため、とても読みやすい。使っているものを把握できることがプログラミングの楽しさに繋がる。」と魅力を語っていました。

また、PHPで書いたサービスをすべてGoで書き換えるという技術的挑戦が、チームの成長に繋がるという観点もあったそうです。

| pairsにおけるGo言語での開発TIPs

・go generate
Go1.4から追加された機能で、コードを自動形成する仕組みです。Pairsでは、ルーティングに使用してます。
・glide
Go1.5から登場したパッケージ管理ツール。
・standard ligrary
テストに関しては、standard libraryとtestifyにて運用。以前はginkgoを利用していたようですが、重いなどの理由から以降したそうです。

三津澤氏のお話から、運用する中での失敗断と解決策、実践に活かせるノウハウを得ることができました。

20160419_4

「実践Go言語勉強会」とは

Go言語をプロダクションで導入している企業による勉強会。Go言語に興味があるエンジニア、これからGo言語の導入を検討されているエンジニアを対象に、導入の事例紹介やノウハウ共有ができる場を目指しています。

▼主催者
大谷 祐司 氏(株式会社インテリジェンス)

▼これまで大谷氏が主催した勉強会のレポート
PHPエンジニア注目!HHVM/Hackの導入事例を紹介する「HHVM/Hack言語勉強会」レポート
21cafeの勉強会などのイベント情報はこちらをチェック!


最新情報はFacebook/Twitterをフォロー!


関連する記事

facebook

案件情報や最新記事をお届けします。
ぜひチェックしてみてください。