blog

DeNAのエンジニアが考えていることや、担当しているサービスについて情報発信しています

2019.11.20 イベントレポート

Go Conference 2019 Autumn で3名が登壇、コードラボも公開しました!

by Yusuke Hosonuma

#go

こんにちは、品質管理部SWETグループの細沼です。

先日、国内最大のGoのカンファレンスである Go Conference 2019 Autumn が開催されました。DeNAではスポンサーを務めさせていただき、社内からは3名が登壇しました。また、Goコミュニティへの貢献の一環として、社内で利用していたGoの学習教材であるコードラボの一部を当日に公開しています。

本記事ではイベントレポートをしつつ、登壇した3名から発表についての紹介、コードラボを公開した経緯や今後について書きたいと思います。

Go Conference 2019 Autumn

Go Conference 2019 Autumn は2019/10/28に開催されました。Go Conferenceの運営者によると7年近くも続いているイベントとのことで、歴史を感じるカンファレンスとなっています。国内におけるGoのイベントとしては最大で、こうしたイベントによって国内のGoコミュニティが活発化するのはとても良いことだと感じます。

今回は、前回に続いてプロポーザル形式による公募でのトーク採択が行われ、2トラック制で20分と40分、懇親会ではLTの発表も行われました。初心者向けや、技術的に面白みのある発表もあり、多くのGoエンジニアが楽しめるイベントになっていたと感じます。DeNAではスポンサーとして、WiFiと懇親会でのアルコールの提供させていただきました。

WiFiについては今回の会場にネットワーク設備がなく、また公共施設ということで工事も行えないということが分かり、急遽モバイルWiFiルータ14台でネットワーク環境を用意しました。事前に大人数での試験ができず、当日のネットワーク速度は快適とまではいかなかったと思うので、次回以降の経験として活かしていきたいと思います。

ブースの様子

今回も各社さんがノベルティや飲み物(水やコーヒー)などの提供をしていました。

DeNAでは、弊社で定期的に開催しているDeNA.goという勉強会のステッカーやウェブカメラのカバーを配布していました。

エンジニアによる登壇

つづいて当日に登壇させていただいた3名から、それぞれの発表について紹介させていただきます。

gotestsから学ぶテストコード自動生成のメカニズム

gotests がどのような仕組みでテストコードの生成をしているかと、生成されるテストコードのカスタマイズ方法についての発表です。

gotestsについて知ったときに、このツールをもっと便利に使うためにはどうしたらいいのだろう?と思い、調べ始めたのが発表のきっかけです。

自動生成はこんな感じの仕組みなのかなというなんとなくのイメージはありましたが、実装を深堀りすることでそれを具体化することができました。

今回得た知識を活かして、自分でも自動生成ツールの実装に挑戦したいと思います。

Go で"超高速"な経路探索エンジンをつくる

カーナビはどうしてあれほど運転ルートを高速に計算できるか、気になったことはありませんか?

本トークでは、 実際にGoで"超高速"な経路探索エンジンを作成したときに用いた、アルゴリズムと実装時の工夫・チューニングを紹介しました。まず経路探索アルゴリズムはどういったものか、ご紹介しました(ダイクストラ、Contraction Hierarchies )。

次にそれらを Go で高速な実装にする工夫を、slice や map の内部アーキテクチャを踏まつつ解説しました。 sliceに関する解説は単体で切り出して記事にしましたので、よろしければそちらもこちらもご覧ください。

Go slice ベストプラクティス

Welcome to Linter

複数のメンバーでチーム開発を行う際、メンバーによってコーディングスタイルが異なっていたり、エラーを無視したようなコードやコード品質の差異が発生してしまうことが多いです。

更に、コードレビューをする際にそういった箇所の指摘が多くなりがちになってしまいます。こういったコードの一貫性等のソースコード品質を機械的に一定レベルを担保し、検査、フィードバックできる仕組みが必要です。

こういった問題は静的解析を行うことによってある程度解決することができます。Go言語では静的解析を行うためのツールセットが整っており、かつ同じ言語で記述することができます。

今回はプロジェクト固有の静的解析ツールを開発する為に必要な知識から、チームに静的解析を導入する為のナレッジを発表しました。

コードラボ公開

当日のお昼くらいにTwitterで周知しましたが、DeNA社内で学習教材として利用していたコードラボの一部を DeNA Codelabs として公開しました!

以前から社内だけに閉じておくのはもったいないという話は出ていたのですが、なかなか時間がとれず公開までには至らない状態が続いていました。今回、社内において「DeNAとしてのGoコミュニティの貢献の一環としてやろう」という話が持ち上がり、今回のイベントに合わせて公開することができました。

Goのコードラボとしては golang.tokyo コードラボ もありそちらで公開することも案として上がったのですが、他のプラットフォームのコードラボも公開したいという話が持ち上がり、DeNAオリジナルのコードラボページを作る運びになりました。

現時点では2つのみの公開となっていますが、今後も少しずつ数を増やしていきたいと考えています!

おわりに

DeNAでは、今後も業務で得られた知見を積極的にシェアするなどして、Goコミュニティへの貢献をしていきたいと思っています。

また、 Go Conference 2019 Autumn を企画・運営し、日本のGoコミュニティを盛り上げてくださった運営の方々や当日スタッフの方々にこの場を借りてお礼を申し上げます。

最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。

recruit

DeNAでは、失敗を恐れず常に挑戦し続けるエンジニアを募集しています。