一年を振り返り… (2020)
仕事
去年と変わらずメルペイのコード決済チームでバックエンドエンジニアをしていた。
今年関わったプロジェクトの中でもっとも大きかったのはメルペイと d 払いの QR コード (MPM) 統一だった。これによってメルペイの QR コードを d 払いアプリで読み込んで決済ができるようになった。個人的には今はなき MoPA を思い出す Yet Another MoPA だったので今度こそは、という気概があった。また、決済周りの開発のコアメンバーとして携われ、今まで得た技術・運用知識を元にベストな設計を模索できる時間が十分にもらえたのもありがたかった。実際にリリースされると、店頭で新しいアクセプタンスマークを見ることが多くなったので達成感も非常に大きかった。
また、運用を二年もしているとあらゆるパターンの障害やデータ不整合を経験するので、これらによって発生する問題を解消するためにどうするかを考えることも多かった。単純にデータ不整合を解消するだけであれば比較的容易であっても、ビジネス要件からデータ不整合の状態が許容される時間が制限されるので、いかにしてデータ不整合の未解消時間を短くするかが一番中心の課題だった。
技術
仕事面では去年と変わらず同じチームに所属していたため、扱っていた技術はあまり大きな変化はなかった。Cloud Spanner や Cloud Pub/Sub、Kubernetes、Go、gRPC、Protocol Buffers あたりが最もよく使っていた技術だと思う。Cloud Spanner の気持ちも少しずつわかってきて、クエリを見てそのクエリがどんな感じで実行されるのかがわかるようになってきたし、シンプルに記述するだけではどうやっても効率が悪くなるクエリをどう書き換えれば良いかがだんだん掴めるようになってきた。*1
また、社内で Istio の導入が始まっているため、Istio を始めとした Service Mesh 関連技術の勉強を始めた。
ソフトウェアアーキテクチャパターンへの関心が薄れてきて、高凝集で疎結合かつ SOLID 原則に基づいたモジュール分割ができていればそれで良いというシンプルな考えかたでコードを書くことが多くなった。おそらくこのあたりの考え方は以前に読んだ A Philosophy of Software Design の影響が強い。
プライベートではもっぱら Go を書いていることが多い。もともとプログラミング言語自体にあんまり関心がないので、自分がやりたいことをシンプルに記述できる言語である Go ばかり使っているし、今後も使い続けると思う。
趣味のプログラミングではバックエンドだけでなくフロントエンドも書くことが多かったので、JavaScript や TypeScript もよく使っていた。最近書いていたアプリケーションでは TypeScript、Vue.js、Nuxt.js、Apollo GraphQL あたりを使っていた。このあたりの技術はかなり Developer Experience が良くて好き。
執筆
Software Design へメルカリ・メルペイエンジニアが寄稿している連載の一環でゴルーチンとチャネルについての記事を書いた。普段の業務でゴルーチンやチャネルをそのまま扱うようなコードを書くことがあまりないため、自分自身にとっても良い頭の整理となった。また、自分が Go を学習しているときに読んでいた、プログラミング言語 Go を読み返してその内容の深さに改めて驚いた。
\本日発売/
— Mercari_Dev (@mercaridevjp) 2020年12月18日
メルペイの @osamingo @tenntenn @ktr_0731 @rossy_0213 @goccy54 @mrno110 が、Software Design 1月号の第1特集「Goプログラミングスキルをレベルアップ|応用力を伸ばすために習得したい6機能」を寄稿しました! @gihyosd #gihyojphttps://t.co/I16Y5vBXHB
個人ブログではあまり多く執筆できなかった。ちゃんと意識していないとどんどん書かないようになってしまうので些細なことでもしっかりまとめてアウトプットしていけるように心がけたい。
イベント登壇
Merpay Tech Fest 2020 で登壇する予定だったが、新型コロナの影響でイベント自体が中止になった。12 月に Software Design へ寄稿したメルペイメンバーによる座談会で話したりはしたものの、今年はイベントで登壇することがほとんどなかった。リモート開催のイベントでスピーカーになる意欲はあまりなく、今と同じ状況が続くのであればしばらくは登壇することはないだろうなと漠然と感じる。
OSS
引き続き Evans や go-fuzzyfinder のメンテナンスをしていた。ただ、Evans へ新しく機能追加するモチベーションがなくなってきているので、v1 を見据えてそろそろ Evans の今後をどうするか考えないといけないなと漠然と感じている。go-fuzzyfinder については、利用してくれるツールが増えてきていたり、コントリビュートしてくれる人が増えてきているのでとても嬉しい。インターフェースのシンプルさがかなり気に入っているので、このシンプルさを保ったまま継続的に改善していければ、と思う。
自作 OSS の影響で自分が知っているツールを開発している企業からリファラル DM が飛んできたり *2、自作 OSS を紹介している記事が増えてきたりしていてとても嬉しい。自分がつくったものが実際に使われているのを目撃するとやっぱり嬉しいし、頑張ろうという励みになる。
自作 OSS 以外へのコントリビューションは、普段利用しているライブラリやツールのバグを見つけたときに行うことが多かった。GCP の Go ライブラリや Datadog APM の Go ライブラリ、protoreflect など。思ったより少なかったのでもう少し OSS のコードを読む量を増やしていきたい。
GitHub Sponsors では去年に引き続き 4 名もの方から支援をいただいていて、とても励みになっている。支援に見合うだけの動きができるように努力したい。
読んだ本
技術書
- Database Internals
- Istio: Up and Running
- Microservices Patterns
- OAuth徹底入門 セキュアな認可システムを適用するための原則と実践
- Kubernetesで実践するクラウドネイティブDevOps
- 人月の神話
かなり少ない…。月に最低一冊くらいは読んでいきたい。
ビジネス書
どちらもかなり読み応えのある本だった。Winny については金子勇自身が書いた本も読んでみたい。
ルポルタージュ
- サカナとヤクザ: 暴力団の巨大資金源「密漁ビジネス」を追う
知らないことだらけで面白い。
哲学書
- 愛するということ
哲学が好きなので引き込まれた。また読み返したい。
漫画
- 僕の心のヤバイやつ 1~3 巻
- サマータイムレンダ 9~12 巻
- かぐや様は告らせたい 16~20 巻
- 五等分の花嫁 14 巻
- イエスタデイをうたって afterword
- 亜人 16 巻
- 推しの子 1~2 巻
- HUNTER X HUNTER 1~8 巻
- ブルーピリオド 8 巻
- ランウェイで笑って 1~18 巻
- 日常 1~10 巻
- 青のフラッグ 8 巻
- 進撃の巨人 1~32 巻
サマータイムレンダ、ランウェイで笑って、進撃の巨人が特に面白かった。
旅行
本来であれば草津や、毎年恒例の ISUCON メンバーでの旅行など、もっと多くの旅行をするつもりが新型コロナによって大きく予定が狂ってしまった。来年は少しは落ち着きますように 🙏
沖縄
閑散期である 1 月に行った。航空券は往復で 8000 円程度と非常に安くなっていた。また、大学の友人らと行ったため Airbnb で一軒家の宿を借りたところ、広々とした綺麗な家で大満足だった。アメリカンビレッジへも徒歩で行ける距離だったので夜ごはんや飲みのために繰り出したりできて便利だった。
— ktr (@ktr_0731) 2020年3月15日
京都
Go To トラベルが適用されていた 12 月の第一週に行った。東京 ⇔ 京都の新幹線往復券 + 一泊で 15000 円に加え、地域共通クーポン 3500 円分、京都タワーでもらえた謎の商品券 1000 円分が加わり実質 10500 円程度という異次元の安さだった。ちょうど Go To トラベルを停止するべきという声が大きくなっていた時期だったのもあり、人出は思った以上に少なくなっていた。特に清水寺や二年坂あたりは普段であれば尋常じゃない人がいるのに、今回は周りを気にせず歩けるくらいに人が少なかった。また、はてなインターン同窓会ぶりにカマルへ行けたので良かった。
観たアニメ
- ちはやふる 3
- 鬼滅の刃
- WHITE ALBUM
- メイドインアビス
- はたらく魔王さま!
- かぐや様は告らせたい?~天才たちの恋愛頭脳戦~
- かくしごと
- ランウェイで笑って
- イエスタデイをうたって
- 結城友奈は勇者である
- 結城友奈は勇者である -鷲尾須美の章-/-勇者の章-
- CLANNAD AFTER STORY
- 日常
- ソードアート・オンライン アリシゼーション War of Underworld
- 進撃の巨人 Season 1
- 進撃の巨人 Season 2
- 進撃の巨人 Season 3
- 進撃の巨人 The Final Season
- やはり俺の青春ラブコメはまちがっている。完
- 神様になった日
- PSYCHO-PASS サイコパス
- デカダンス
- GREAT PRETENDER
- 劇場版『SHIROBAKO』
- 劇場版「メイドインアビス」-深き魂の黎明-
- 劇場版 ヴァイオレット・エヴァーガーデン
- 千と千尋の神隠し
- もののけ姫
あんまり観た記憶がなかったけど、履歴を元に洗い出したら結構な数のアニメを観ていた…。テレビアニメだと思い出補正もあるだろうけどイエスタデイをうたってが特に良かった。劇場アニメだと千と千尋の神隠しを除くと SHIROBAKO が最も良かった。観ると仕事を頑張ろうという気持ちにさせてくれるようなアニメだし、制作陣がやりたいことをやっているのを感じられて良かった。円盤も買ったので年明けが楽しみ。千と千尋の神隠しは最も好きな・影響を受けたアニメーション作品なので、今の時代に劇場で観れたことが本当に嬉しい。
やったゲーム
- ダンガンロンパ1・2 Reload
- ニューダンガンロンパV3 みんなのコロシアイ新学期
- あつまれ どうぶつの森
- 十三機兵防衛圏
- Detroit: Become Human
十三機兵防衛圏はかなりストーリーが難解で、かなり後半にならないと全貌がわからなかったが、伏線が張り巡らされていてとても面白かった。Detroit: Become Human は今年やったゲームのなかで一番面白かった。*3 哲学的な面も多くあるのでこういった近未来 SF はとても惹きつけられたし、ゲームシステムも独特で常に映画を観ているような臨場感があった。コナーとハンクの関係が好きすぎる。
人生
父方の祖父が亡くなった。きわめて身近な人の死に触れたのは初めてだったのでとても哀しかったし、家族や自分自身の死を考えてしまって改めて死への恐怖を感じるようになってしまったのとともに、日常の変化からだんだんと身近な人の死が近づいてくるのが感じ取れるようになってしまって苦しい。人間いつかは死ぬものの、今は死ぬのに未練がありすぎるし早く電脳化したい。
終わりに
今年は新型コロナによって生活が大きく変わり、常識だったものがそうではなくなってしまった一年だった。その影響で苦しいことが増えた一年だったものの、嬉しいことや楽しいこともまた同じように感じられた一年でもあった。WFH をしていると変化のない日常が繰り返されているかのように感じてしまうので、来年はいろいろな変化をつけられるような年にしていきたい。