2021年の総括 下期編です。
- 7~8月: 個人開発新サービスリリース
- 9月: Go学習
- 10月: DDD、クリーンアーキテクチャ学習
- 11月: システムプログラミング、OS、インタプリタ学習
- 12月: 認証、セキュリティ、暗号技術学習
- まとめ
7~8月: 個人開発新サービスリリース
7~8月の2ヶ月間で、企業情報サイト「上場企業ランキング」を開発、リリースしました。 開発速度を重視し、基本的に使い慣れた技術を採用しました。
サーバーはRails APIモード、フロントはNuxt.jsのSPA構成にし、インフラはHeroku、ホスティングにNetlifyを使っています。 デプロイ方法は工夫したので、記事にしました。
「上場企業ランキング」は個人的に使いやすいサービスであるものの、反響は100PV/1ヶ月(2021年12月時点)と芳しくないため、より多くの方に使ってもらえるサービスにすべく改修したい考えています。
9月: Go学習
9月はGoによるWEBアプリケーション開発を学びました。
簡単なブログサイトを作成した上で、様々な機能を追加することで理解を深めました。
- 開発環境をDocker化し、コンテナをHerokuにデプロイした
- サーバー起動のたびにオートマイグレーションできるようにした
- フロントをNuxt.js×TypeScriptにリプレースした
- 認証機能を追加した
10月: DDD、クリーンアーキテクチャ学習
10月はGoを切り口にドメイン駆動設計を学びました。
上記のコードベースを更に改修しながら、
- テスタビリティを高めるために、クリーンアーキテクチャを採用した
- モックを活用したテストを追加した
RealWorldのGoで書かれたリポジトリはテストの書き方やディレクトリ構成が参考になりました。 また、この過程でDDDやクリーンアーキテクチャの等の書籍を読み、設計の知識を得られました。
11月: システムプログラミング、OS、インタプリタ学習
11月は引き続きGoの学習をしようと考え、『Goならわかるシステムプログラミング 』を読みました。これをきっかにOS周辺の低レイヤに興味を持ち、関連の書籍を読み漁りました。 隣接した分野の書籍を数冊読み、メモを作ることで体系的に知識を得ることができたように思います。
- 低レイヤ用語集 · GitHub
- Goならわかるシステムプログラミング – 技術書出版と販売のラムダノート
- なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 - 達人出版会
- ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道
- [試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識
- プログラムはなぜ動くのか 第3版 知っておきたいプログラミングの基礎知識
12月: 認証、セキュリティ、暗号技術学習
12月からは業務で認証基盤周りの開発を担うことになり、認証とその周辺領域のセキュリティや暗号技術のインプットに充てました。 認証はあらゆるWEBサービスで必要な技術である一方、業務で携われるのは希少かと思うので、ここでしっかりと習得しておきたいところです。
- 【電子版】OAuth、OAuth認証、OpenID Connectの違いを整理して理解できる本 - Auth屋 - BOOTH
- 体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践
- 暗号技術入門 第3版 秘密の国のアリス
まとめ
2021年下期のハイライトは、個人サービス「上場企業ランキング」のリリースでした。睡眠も惜しいくらいに熱中して開発しました。 11~12月で基礎技術のインプットを重点的にできたのも良かったです。こうした重点的なインプット期間は今後も意識的に増やしていきたいです。
反省点は、技術記事をあまり書けなかったことです。この点は、2022年で改善したいです。