Gunosy Tech Blog

Gunosy Tech Blogは株式会社Gunosyのエンジニアが知見を共有する技術ブログです。

新米Gopherとしてこの1年やってきたこと

こちらはGunosyのカレンダー | Advent Calendar 2019 - Qiita7日目の記事です。昨日の記事は id:tmotegi さんによる突撃!隣のキーボード Gunosy 2019 - Gunosy Tech Blogでした。

Merry Christmas!

こんにちは、今年3月に入社したLUCRA事業部の平田(slackではhirarin)です。チームではサーバーサイドエンジニアとして日々Goを書いています。 Gunosy入社前はPHPやAWS周辺を中心に触っていました。そのため、Goを業務として書き始めたのは入社してからになります。

この記事は?

この記事ではGunosyで新米Gopherとして(だいたい)1年をどのように過ごしていたかを振り返ろうと思います。 これからGoをやっていこう、または教えていこうと思っている人の参考になれば嬉しいです。

業務でのGo

「動いているソースをみて学ぶのが一番」という方針のもと入社2日目からゴリゴリGoを書いていました。 実際、Goは覚える文法が少ないためロジックに集中して実装できるのが良かったです。特に入社してから1,2ヶ月目は、ビジネスロジックやデータ,サービス間の連携の把握がまだ不十分だったため、突発的な対応で力に成れなかったのが歯がゆかったですが、Goのソースコードを追っていくことはできたのでそこから理解をどんどん進めることができました。これもGo言語のシンプルさがもつメリットかと思います。

加えて、開発前に各サービス(マイクロサービス)の以下の点について早い段階から共有を受けていたことが開発する上でとても重要だったなと考えます。

サービスごとの歴史

どのサービスがどういう機能でどういう時期に実装されたのかについてです。 各サービスのロジック理解もありますが、その時々の設計方針やバージョン管理方法に差が出ている部分もあるので、そのあたりの事前知識を入れてもらうことで開発中に「なんでAサービスとBサービスで違いがあるんだろう」といった疑問を少なくすることができました。 またLUCRAだけでも20数個のサービスがあるため、動いているソースが豊富だったこともGoを学ぶ上で効果的だったと思います。

設計思想

現状ベストだとしている設計や実装方法についてです。 それまではフレームワーク(RubyのRailsやPHPのLaravelなど)を利用して開発することが多かったので、ベースとなる考え方を最初に共有してもらうことで迷わず実装を進めることができました。

現状課題だと考えていること

直したいところやもっと良くしていきたいところについてです。 これは、例えばライブラリをもっと便利なものに入れ替えたり、設計を最新のものに移していきたいなどです。 最初の頃は新規サービスの開発が多かったのであまり意識できていなかったのですが、次第に既存サービスにも着手していき始めると「そういえばここ直したいって話してたな、影響範囲だから一緒にやっておくか」等、必要なロジックの実装以外にも気を配ることができるようになりました。

プライベートのGo

Go Conference`19 Summer in Fukuokaに参加

fukuoka.gocon.jp

福岡初開催のGo Conferenceでした。本当は春に東京で開催されたGo Conferenceにも参加したかったのですがあいにく抽選で漏れてしまいました。福岡なら観光ついでで行っちゃおうかなと思い直前に申し込み無事参加することができました。 初めてのGoConferenceだったのでドキドキしましたが、チームの先輩が登壇していたので他の会社のGoを使っている方を紹介してもらい知り合いを増やすことができました。お世話になった方々、その節はありがとうございました。

技術書展7でGo本を書く・Go Conference 2019 Autumn でLT登壇

もともとPWAや周辺技術に興味があったのでGoをWebAssemblyとして使った時の実装方法について興味を持ち、技術書展という技術書の即売会イベントで調べた内容について本の執筆しました。技術的には業務とは離れているのですが、執筆のために調査して自分の中に落とし込んで行く過程はとても勉強になりました。 Goを題材に執筆しているサークルは年々増えていっている実感があるので、次は会社や他のコミュニティの方と一緒に参加してみたいです。

gocon.jp

そして、その執筆した内容でGo Conference 2019 AutumnのCFPに申し込んだところLT枠で採用していただき、登壇することができました。懇親会LTの一番最後だったのでとても緊張しましたが、そこでも色々な方に声かけてもらえて嬉しかったです。また、イベントは平日開催だったのですが快く送り出してくださったチームメンバーの方々に改めて感謝いたします。

外部のイベントや他社のエンジニアと話すことでGoの色々な使い方や課題の共有もできますし、自分の理解度やレベル感が把握できるのでこれからも続けていきたいと思います。

今後やっていくこと

年末なので来年の抱負として2つあげます。

  • LUCRAというアプリをグロースしていくために最適・最速の開発ができるようGo力を鍛えていく
  • Gopherくんぬいぐるみをお迎えする(写真のGopherくんは借り物なのでした)

おわりに

弊社ではまだまだGopherを募集しております!! GonosyでGoバリバリ書いてみたいな!という興味の出てきた方はぜひお問い合わせください。

https://hrmos.co/pages/gunosy/jobs/0000003hrmos.co

また私はこれからもGo関係のイベントに顔を出すと思いますので、その時に何か気になることがあればぜひお声がけください。

それでは、次回は id:azihsoynさんです!