今年の(というか最近の)業務について、書ける範囲で振り返ってみる。雑に書いたので論理的・文章的にちょっとおかしい部分があるかもしれないが許してほしい。
Go 言語
今年は主に Go 言語で開発を行っていた。Go 言語を採用した理由はいくつかあり、
- 自分をはじめ Go 言語を書ける人が社内に何人かいる
- 以前 Python で書いていてパフォーマンス問題に苦労した
- Go 言語は初心者や(言語の)未経験者でもとっつきやすそう
などである。
実際書いてみた感じ、パフォーマンスについては申し分なく、また初心者や未経験者であっても比較的容易に習得してもらうことができた(と思う)。Python も初心者に優しい部類の言語ではあると思うが、体感的には Go 言語の方が楽に習得してもらえた気がする。
一方で、
- 保守性の低いコードになりやすい、レビューに時間がかかる
- 本番コードの行数が多く、また書くのに時間がかかりがち
- テストコードの行数が多く、また書くのに時間がかかりがち
- Go 言語の表現力で複雑なドメインを表現するのは難しい
などの問題もあった。
もちろん Go だけの問題というわけではない部分もあるのだが、やはり経験の浅いメンバーがいる場合は Laravel や Ruby on Rails といったようなレールに乗れるフレームワークを使った方が良いのではないかと思った。今回はドメインが複雑かついろいろな箇所が入れ子になっていたり複雑な SQL を書かなければいけないような場面もあったりして、どちらを採用していた方がよかったかというとなんとも言えないのだけれど(あとは自分や他メンバーがあまりこれらのフレームワークに慣れていないのも大きかった)。
後述する Terraform の話などもあって最近はフルスタックフレームワークの手軽さや「全部入り」感もちょっと魅力的に感じている。次は Laravel や Ruby on Rails、あるいは ASP.NET Core や Spring といったフレームワークを用いての開発も行ってみたい。おすすめのフレームワークがあったら教えてください。
Terraform
AWS 等のインフラ構成管理に Terraform/Terragrunt を使ってみたりした。AWS CloudFormation や AWS SAM/CDK 等はちょっと触っていたのだが、Terraform は初めてだった。
CloudFormation とかに比べるとかなり書きやすかった……と思う。それでも結構癖があったりどうしたらより良い書きかたになるのかと悩んだりすることが多かった。AWS CDK はかなり出たての頃に触っていたからあんまり比較できない。今だと CDK vs Terraform は結構いい勝負なのかな。
IaC が便利なのはたぶん言うまでもないと思うけど慣れていないのもあってかなり時間を取られた気がする。というか実際取られた。またメンバーに学んでもらうのもやはり大変である。ぶっちゃけペイできてるのか? みたいな気分になる。このあたりは長い目で見ないとわからないこともあると思うので現時点では何とも言えないかもしれない。この1年の中でも Terraform がいろいろアップデートされて便利になったとかもあったし今後もっと書きやすくなっていくのかも。
IaC が難しいというよりはクラウドが難しいみたいなところもかなりあると思うけど。このあたりは Kubernetes とかが使えるとまたちょっと違うと思うんだけれどこれはこれで規模的に使いづらいみたいなことも多くて難しい(実際 EKS と ECS を比較して最終的に ECS を採用したりとかした)。
ふと思い出してむかしの振り返り記事を読み直してみたら結構おもしろいことを書いていておもしろかった:
でもあと 5 年くらいしたら今の不満は全部無くなってるんじゃないかな! 楽しみです.
せやな
勉強会
正確には今年始めたわけではないのだけれど、業務時間を使って社内勉強会みたいなことをしている。具体的には一週間に一時間くらい時間を取って本を読んでいる。
初学者でも読めそうな本を選定したり(自分で選んだり参加者で選んだり)しているのだけれど、実際のところなかなか参加してもらえない。単順にあんまり興味がないみたいなこともあるのだが、業務が忙しいとかリモートワーク中心で参加しにくいとか様々である(と思う)。だいたい自分を含めて2~3人という感じで、人が集まらずに1か月くらい開催できなかったみたいなこともあった(もともと全体の人数が少ないというのもある)。
そんな感じで人が集まらなかったりすると自分も勉強会を続けるモチベーションが続かなくなって、もうやめようかなみたいな気分になっている。会社からどのくらい効果あるの? とか言われて出せるデータもないし。
やり方を変えてみるとかいろいろあるのかもしれないけれどいまのところどうなるかわかりません。いいアイデアがあったらおしえてください。
社外の勉強会とかに参加してみるとかも案としてはあるのかもしれない。地方だからほぼオンラインに限られてしまうのと、最近あんまりそういった元気がないので難しい。
おわりに
このくらいの記事でも書くのに1時間くらいかかっていて、やっぱり続けるのは大変かも。でもふりかえってみるのは結構おもしろかったし、しばらくしてから見直してみるのもまたおもしろいかもしれない。
ひとつ前の記事で書いたように最近なんもうまくいっていない気がするんだけどなんとかできる範囲で頑張っていきたいです。
あと 5 年くらいしたら今の不満は全部無くなってるんじゃないかな! 楽しみです。