こんにちは!BASE BANK株式会社 Dev Divisionでソフトウェアエンジニアをやっている東口(@hgsgtk)です!この度、アメリカ・サンディエゴで開催されるGo言語の国際カンファレンスGopherCon2019に参加してLT登壇してきます。
Gopher2019とは
GopherCon2019とは、2019年7月24日〜7月27日に、アメリカ・サンディエゴで開催されるGo言語の国際カンファレンスです。Go言語最大のカンファレンスで、6年目となる今年は、世界中から1,800名超のGopherが参加します。
BASEでは、カンファレンスへ登壇や参加といったメンバーのコミュニティ貢献活動を積極的に支援しており、今回のGopherCon2019も業務として参加してきます。
発表内容について
今回は、公募されたCFPのうち、25分のKeyNote styleと5-7分のLightning Talkの2種類に応募して、Lightning Talkで採択いただきました。
Gopher Conference 2019先ほど連絡がきて一人一つなのでこれを頼むって連絡がきました!たくさん出してる方いるだろうに3つもいいんだろうかと思ってたところなのでよかった😊 https://t.co/UIYBrjEZV3 pic.twitter.com/QRn31UaFPG
— Kazuki Higashiguchi (@hgsgtk) May 23, 2019
Lightning TalkのCFPには、3つプロポーザルを出して3つ採択候補に上げていただいたのですが、最終的に「Building API Server-side architecture for beginners」というタイトルの内容が選ばれました。
プロポーザル: Building API Server-side architecture for beginners
次の概要・詳細説明を記載したプロポーザルを出していました。
概要
When we creates an application, we often need to consider about layer design. However, it’s difficult for beginners to design the architecture from beginning. To overcome difficulties, I will talk about the method of gradually growing our architecture with the growth of the members.
詳細
Self introduction
Problem of considering architecture for beginners
In considering the server side architecture, the judge is greatly influenced by the situation such as the request for the application and team background. I did the development under the following circumstances
- FinTech startup
- Launch a new service
- No member has experience of using Go language in business
Under such circumstances, we must get feedback to design from the practical results in a quick cycle. Also, we must understand the Go language knowledge like context handling.
Strategy to solve the problem
It is often that important factors are not available, that is development know-how, developer skill, all requirements of service. It is necessary to set the image to be aimed for us, and explore how to implement it. For the purpose, we proceeded with making it a common recognition that “building and breaking”.
In addition, we put emphasis on unit testing to keep getting feedback on the way that our application should be in a quick cycle by practicing. Because we aim to get notices about design (such as degree of coupling) by unit testing.
gradually growing architecture
I will talk about the process of gradually growing the architecture. It’s the process of practicing the following steps in phases.
- get used to API development in Go language
- how to use interface to write Go-like code
- write good testable code
- represent complex business logic in code
Also, I will mention the following points in the process.
- CI environment to prepare at first
- Anti-pattern which tends to stepped from beginner to intermediate level
- maintenance of test helpers not to compromise development experience
Summary
話すテーマ
昨年ブログで公開した「Goを運用アプリケーションに導入する際のレイヤ構造模索の旅路 | Go Conference 2018 Autumn 発表レポート」というブログエントリをベースとした発表内容になります。
Go言語をプロダクションで運用している事例は最近多く聞きますが、いくつかの現場で、現時点でGoの実務経験者がいないところからスタートしたと拝見しています。私自身もそのような状況の中でプロダクション導入を進めた経験から、サーバーサイドアーキテクチャは正解がない悩ましい問題だと認識しています。そのため、同じような状況に出くわすであろう方々のために、サーバーサイドアーキテクチャ整備の結果ではなく過程・考え方について言語化することを試みました。
英語での発表はもちろん、そもそも海外のカンファレンスに参加すること自体が初めてなので大変そわそわした心持ちですが、楽しんで来たいと思います!同じく参加される方は現地でよろしくお願いいたします!