2022 年の振り返り
もう 2023 年になってしまっているのですが、2023 年の抱負を考えるのを踏まえて、 2022 年振り返りをしようと思います。この記事を書きながら、個人ブログを全く更新できてないことに気づきました。。。
仕事周り
仕事に関する大まかな感想ついては、8 月末に次の会社のブログにまとめました。
一言でまとめると、「チーム開発」を始めてちゃんとやった 1 年でした。 「チーム開発」を深く経験して、チームで開発することの難しさをとても痛感しました。 チームを改善しながら効率よくタスクを進めるには、普段から失敗できる環境作り、開発プロセスの改善サイクルを高速を回すことが大事だと実感しました。 また、開発プロセスの改善サイクルを高速を回すにあたって、心理的安全性やメンバー間の共通認識などが大事になることも身をもって経験することができました。
今年の後半からは、マイクロフロントエンドの手法を取り入れた刷新作業を行なっており、その作業の技術的な部分でのリードをしています。 メンバー間の共通認識を強く意識していて、マイクロフロントの学習パスを整備した点などは成長なのかなと思います。 一方で、この手法を取り入れるにあたってチーム間の調整がうまくできなかったので、そこは 2023 年への大きな課題として残りました。
後は、1 年通じてアウトプットでは頑張ったかなと思います。 個人ブログにはアウトプットできていないですが、会社のブログに 3 本、Zenn に 3 本、 JSConf でのスポンサー LT などをできたのはよかったです。
読んだ本
今年は、ちゃんと 1 on 1 をするようになったためか、去年より読んだ本が多かったです。 読んだ冊数は未出版本のレビューも含めると 8 冊で、月1冊ペースが見えてきた気がします。
Web ブラウザセキュリティ
これは、去年の年末からの社内の輪読会で読んでいた本です。 普段の開発では意識する場面は少ないものの重要な概念である、SOP、CORS、CSP などを体系的に学ぶことができました。 Chrome の site isolation などのトピックから、ブラウザの内部の仕組み (V8 など) への興味も出てきたのがよかったです。 Twitter でも結構おすすめしている人が多かったです。
マスタリング TCP/IP
何度も読みたいと思っていて挫折していたけど、今年はちゃんと読み切りました! GCP や AWS などのクラウドサービス使う際や Docker などのコンテナ技術のトラブルシューティングのときに何をどうすればいいのかわからない状態になることが多く、ネットワーク周りの知識不足は自分の大きな課題でした。
読んだ感想としては、非 CS 系で体系的にネットワークを学んだ経験もなかったので書いてある内容の全てが新鮮でした。 フロントエンドもパフォーマンスを考えると、CDN や Service Worker などを使ったキャッシュ戦略を練る必要があって、ネットワークの知識は必要不可欠になっていると感じています。 最近の QUIC や HTTP/3 の話についても、全然概要を把握できてなかったので、それを把握する上での基礎知識をつけれたのはよかったです。 ただ、まだ頭に入ってない内容も多い気がするので、応用情報程度のネットワークの知識は定期的にインプットしたいです。
https://www.amazon.co.jp/dp/4274224473
カイゼンジャーニー
今年からスクラム開発をやり始めて、自分のチームでの立ち振る舞いに悩んだ時期があり、一旦スクラムの知識をざっくり入れたくて読みました。 読み物として面白くて、スクラムの手法を取り上げながら物語が進んでいきます。
良いコード/悪いコードで学ぶ設計入門
話題になっていたので、サクッと読んでみました。 コードを書くときに基本的に意識したい慣習を言語化している本という感じでした。 最後の方にリファクタリングをチームでどうやって進めていくかについて記述してあって、現在大規模リファクタリングを進めている自分にとっても共感できる内容が多かったです。
ただ、普段フロントエンドのコード書いている人からすると、コードが非常に OOP の考え方によっているのでそこだけは注意して読んだ方がよさそうだと感じました。
HTML 解体新書
フロントエンドの刷新作業では、a11y の改善にも力を入れています。 日々の業務でも a11y を専門とするチームからのフィードバックから多くのことを学んでいますが、自分はマークアップ周りに自信がなく体系的に知識を学びたかったため読みました。
全体的に細かいマークアップで迷ったときに辞書的に使える本だと感じました。 HTML のセマンティクスや支援技術に沿ったマークアップができているかどうかを指摘してくれる人はほとんどいないので、ここにある知識をうっすらでも知っていると大きいと思います。
Game Programming Patterns
1 on 1 をしてもらっているメンターにおすすめされたので読みました。 読んだときのログは、こちらのスクラップにまとめました。 本の中のサンプルコードを Rust で実装したことで、Rust の理解も深まったのがよかったです。
https://gameprogrammingpatterns.com/contents.html
Origin 解体新書
途中から参加できなくなってしまったのですが、社内の輪読会で読んでいた本です。 Web ブラウザセキュリティ の復習になる本でした。 この本では、Web ブラウザセキュリティの本で勉強した SOP、CORS などの概念がなぜ必要なのかという点をちゃんと理解できるような解説になっていてよかったです。
そのほか
未出版のフロントエンドセキュリティに関する本のレビューをしたり、業務で必要になったマイクロフロントエンドに関する資料を読みました。 マイクロフロントエンドについては、スクラップでまとめた内容と Micro Frontend in Actions の過去の社内輪読会のノートをインプットしました。
来年の抱負
今年は、全体的に仕事に手一杯になる場面が多かったので、もう少し仕事以外の目標に対して日々のコミットメントを意識して過ごしていきたいと思っています。理想は、次のスライドのような自己管理ができるようになることです。
自分もそろそろ人生の大きなイベントが来そうで、それまでの時間を有効活用して CS の知識について学んでいかなければなと思います。 現時点ので今年の 1Q の目標を OKR の形式で立てると、次のようになりました。2Q 以降はまた考えます。
- 目標 1: CS の基礎知識をつける
- 成果指標 1: TCP/IP プロトコルを Rust で実装してみる
- 成果指標 2: OS を Rust で実装してみる
- 成果指標 3: Text editor を Rust で実装してみる
- 成果指標 4: Leetcode の Blind 75 問を解き切る
- 目標 2: 個人のプレゼンスを高める
- 成果指標 1: Rome に週1回のペースでコミットする (1Q 中に 12 コミットする)
- 成果指標 2: ブログを 2 本書く (Rome と業務、1 本ずつ)
- 目標 3: 山登りやバドミントンに参加できる体力をつける
- 成果指標 1: 週2回ジムに行くのを継続する (水曜日と土曜日)
- 成果指標 2: プロテインを飲み切る
80 % くらいは達成できるように、今年も頑張るます。