msksgm’s blog

msksgm’s blog

Webエンジニアです。日々の勉強記録、技術書感想、美術観賞感想を投稿します。

2022年12月の振り返り

概要

2022 年 12 月の振り返りです。

以下を目標に掲げていました。

msksgm.hatenablog.com

目次

勉強関連

勉強関連 概要

今月も、Kotlin と設計に注力していました。 Kotlin は新しくリポジトリを作って勉強するというより、Kotlin 初心者向けに技術書を作成するための執筆と情報の整理を繰り返していました。新しい知識は身についていませんが、過去に学んだ言葉の整理を行えています。設計については、「Google のソフトウェアエンジニアリング」を読んで知見を深めていました。特にテスト周りにおいて、参考になる部分が多かったです。 他の取り組みとしては、職場で設計の決まりごとを話し合ったりするのですが、管理と共有のコストが難しく感じています。Architecture Decision Record(ADR)によってスナップショット的に内容をまとめたり、継続的にドキュメントを作成した結果を共有することで周りに促したりするようにしています。 ドキュメント管理における課題は解決できていませんが、どうにかして開発プロセスに落とし込めるように注力しています。

12 月の 2 週目に 38 度の発熱をしてしまいました。コロナは陰性でしたが、それ以来 2 週間近く調子が悪かったため、勉強の進捗が悪かったです。 普段勉強している内容的にも整理段階に入っている内容が多く、新しい知識がインプットできていない焦りの部分が多く感じました。

勉強時間

勉強時間の結果です。 今月(12 月 30 日の時点で)は、約 134時間でした。 今月もコンスタントに勉強できました。

項目 1 週目 2 週目 3 週目 4 週目 5 週目
平日朝の勉強時間 約 7.5 時間(16 ポモドーロ) 約 13.8 時間(33 ポモドーロ) 約 13.8 時間(33 ポモドーロ) 約 15.8 時間(38 ポモドーロ) 約 7.5 時間(18 ポモドーロ)
平日夕方の勉強時間 約 1.67 時間(4 ポモドーロ) 0 時間 約 1.25 時間(3 ポモドーロ) 約 1.67 時間(4 ポモドーロ) 0 時間
休日の勉強時間 約 10.4 時間(25 ポモドーロ) 約 3.33 時間(8 ポモドーロ) 約 5.42 時間(13 ポモドーロ) 約 7.91 時間(19 ポモドーロ) 約 8.75 時間(21 ポモドーロ)
Kotlin+Spring Boot 勉強会 約 5 時間 約 4 時間 約 6 時間 約 4 時間 約 2 時間
Google のソフトウェアエンジニアリング」勉強会 約 2 時間 2 時間 約 2 時間 約 2 時間 約 1.5 時間
connpass の勉強会 0 時間 約 4.5 時間 0 時間 0 時間 0 時間
合計 約 26.6 時間 約 27.6 時間 約 28.5 時間 約 31.4 時間 約 19.8 時間

注力分野

Kotlin

今月から、Kotlin+Spring Boot 勉強会が始まりました。 本を読んだり、OSS にコミットしたりするわけではなく、Kotlin の知識が薄い方向けに教えることが目的です。 今までアウトプットしてきた記事やスクラップを参照しながら教えています。そのため復習になっていて更なる知識の定着ができています。 加えて、自分よりも詳しい方もいるので教える中でもっと良い方法を学んだりと自分のレベルアップも実感できています。

関連として、今月から Kotlin の技術書籍の作成を始めました。勉強会メンバーだけでなく会社の方々にも見てもらう予定です。 既に何度か全体構成を書き直しています。年始に仕事が始まるまでに、なんとか形にしたいと考えています。

全体的に、新しい知識をキャッチアップしているわけではなく、整理の段階です。 来年の 3 ヶ月をめどに、次の段階に移りたいと考えています。 Kotlin+Spring Boot 勉強会と技術書の作成が終わったら、OSS にコミットなどをしてアウトプットしたいと考えています。

設計

先月から引き続き、「Google のソフトウェアエンジニアリング」の勉強会を実施し、読み切りました。 印象に残った部分では、「スタイルガイドとルール」「コードレビュー」「ドキュメンテーション」とテスト周りです。 最初の 3 つは、どの内容も当たり前ですが、うまく言語化や仕組み化できていない組織が多い領域だと考えました。 テストはテストダブルの定義から始まり、テストの規模に対する考え方、大規模テストの自動化などが興味深かったです。 第 1 部から第 3 部までは興味深く読めたのですが、第 4 部のツールは具体的過ぎるかつポジショントークに感じてしまう部分があったので、読み飛ばしました。

半年の間、会社の知人と設計を目的とした勉強をしてきました。一旦、今回で設計を題材とした勉強会は終わりです。今後は個人的な範囲で設計の勉強をします。これまでの勉強では、オブジェクト指向的に関わる設計の本は題材にしていなかったので、個人で読む際にはそういった系統の本を読みます。

読書

読書概要

今月は「『技術書』の読書術」で紹介されていた、90 分読書法を実践しています。 最初は懐疑的でしたが、以下の点でメリットがあると実感しています。

  • 本の雰囲気がわかる
  • 時間をかけて読むべきかか判断できる
  • 読みきれなかったら、「難しすぎた」「あまりにも興味がない内容だった」「興味がある内容だったので時間がかかった」のどれかになる
  • 積読を消化できる

感想をしっかり書くのは難しいので、簡単な記録程度に読書メーターを活用しています。

読んだ本

Google のソフトウェアエンジニアリング」

知人との勉強会で読んでいます。 身に刺さる話が多いです。Google だからできる、ポジショントークも多いと思いました。

「Lean と DevOps の科学」

チームに何が必要なのかを考える一環で読んでいます。 科学的根拠付が多かったので、とりあえず結論だけ読みました。

「知識ゼロから学ぶソフトウェアテスト

来年の注力する分野は、テストにするので読み返しました。 初学者だったときにも有益な内容でした。1 年以上経過し、あらためて読み返すと非常に重要な内容が載っていたと再認識できました。 この本をもとに他のテスト書籍にも手を出していきます。

オブジェクト指向設計実践ガイド」

オブジェクト指向の設計方法に興味があるので、読みました。 Ruby というインタフェースのない言語のオブジェクト指向とはどんなものなのか気になっていました。 メッセージングの考え方による振る舞いの考え方が興味深かったです。

技術記事の作成

今月から、Kotlin の技術書を作成していたので、週 1 投稿はやっていませんでした。

「『Advent of Code』に Kotlin で参加する」

zenn.dev

サーバーサイド Kotlin の技術書作成

zenn の本を作成する機能で作成しています。 初めて技術書を作成しています。構成の時点で二転三転しているので、本を書く人は大変だと思いました。 仕事始めまでに完成度 6 割ぐらいのクオリティで書き上げたいですが、現状厳しいです。

その他

connpass の勉強会

今月は「Kotlin Fest 2022」がありました。 3 年ぶりの開催でした。 普段、職場で Kotlin のキャッチアップができないため、こういった機会で情報を得られるのが非常にありがたかったです。 今回は見送りましたが、来年は発表できるように、引き続き Kotlin の知見をまとめていきます。

kotlin.connpass.com

まとめ

今月も、引き続き、Kotlin と設計に注力していました。 今までと違うのは、Kotlin の勉強が技術書作成のために、あまりソースコードを書かなくなったことです。

Kotlin の技術書作成や学習用の勉強会のときに改めて思ったのは、知識の大前提を揃えるのは難しいと再認識したことです。 自身は Java の経験が少しだけあるので、Kotlin をスムーズに受け入れられました。そのため、Java の経験がなかったりオブジェクト指向言語を学んだことがない状態で、Kotlin を勉強したことがありませんでした。 そういった場合に、代わりの言葉で説明するのが難しく、時間がかかってしまいました。 Kotlin を教えるときだけでなく、オブジェクト指向の凝集度の話をする機会があったのですが、伝わるまで時間がかかってしまいました。良いオブジェクトについての認識が合っていなかったからです。 現状、自分の評価は Kotlin を学んだのはいいんですが、人に教えるにはまだまだといった状態です。 来月以降の課題にしていきます。

設計については、「Google のソフトウェアエンジニアリング」を読み切ったのが大きかったです。 半年間続いた設計の勉強会もソースコードの技術詳細からチームについての話に移り、抽象度の高いものを対象としてきました。 今の自身の知識がベストだとは思いませんが、勉強会を続ける以前よりは俯瞰的に見られるようになってきたと実感しています。 課題は Kotlin のところでも書きましたが、教えるときに体系化ができていないことです。部分的なベストプラクティスを教えても、前提条件が抜け落ちているため、次回のレビュー時にはうまく扱えていない状況が多発しています。 「ソフトウェアーキテクチャの基礎」で紹介されていたトレードオフを意識して説明しています。しかし、汎用的な考え方が伝わっておらず、負債になりかねないです。 こちらも来年以降の課題になります。

今月を総括すると継続的にやってきたことに対して、課題が見えてきた状態です。 来年以降はこれをうまく乗り越えられなければいけないです。 Kotlin は技術書籍の作成の過程で解決策を考えます。設計の方は、設計するからにはチームの温度感や前提合わせ、ドキュメントの運用について試行錯誤しながから改善していきます。

今月の振り返りは一旦以上になります。 毎月の振り返りを今年は達成できました。 他の記事で、四半期ごとの振り返りと 1 年間の振り返りを記述するので、よろしければそちらもみてください。