msksgm’s blog

msksgm’s blog

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

2022年10月の振り返り

概要

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

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

msksgm.hatenablog.com

目次

勉強関連

勉強関連 概要

Kotlin と設計関連で勉強していました。 今月から週 1 で Kotlin に関する技術記事の投稿を目標にしていました。 設計は「ソフトウェアアーキテクチャの基礎」を課題図書に知り合いと読み進めていました。

勉強時間

勉強時間の結果です。 今月は、約 127 時間でした。 毎日、最低でも 4 時間程度は勉強できるように時間を確保していたので、そこそこ良かったと考えています。 勉強自体は、Kotlin と設計についてしっかりと学べたと考えています。しかし、勉強会を 3 つ(週 4 日)抱えており、それ以上のことができなく手を出しすぎている感覚になっています。 とりあえず、後 2 ヶ月は継続して、慣れたり優先順位をつけたりしたいと考えています。

項目 1 週目 2 週目 3 週目 4 週目 5 週目
平日朝の勉強時間 11.7 時間(28 ポモドーロ) 11.7 時間(28 ポモドーロ) 15 時間(36 ポモドーロ) 約 15 時間(36 ポモドーロ) 約 3.33 時間(8 ポモドーロ)
平日夕方の勉強時間 0 時間 0.83 時間(2 ポモドーロ) 0.41 時間(1 ポモドーロ) 0 時間 0 時間
休日の勉強時間 14.2 時間(34 ポモドーロ) 10.8 時間(26 ポモドーロ) 約 10.8 時間(26 ポモドーロ) 約 7.5 時間(18 ポモドーロ) 0 時間
RealWorld ペアプロ 5 時間 4 時間 5 時間 2 時間 0 時間
「ソフトウェアアーキテクチャの基礎」勉強会 2 時間 2 時間 2 時間 2 時間 0 時間
connpass の勉強会 0 時間 1 時間 0 時間 1 時間 0 時間
合計 約 32.9 時間 約 30.3 時間 約 33.2 時間 約 27.5 時間 約 3.33 時間

注力分野

Kotlin

今月は、主に以下の 4 点から Kotlin の勉強に取り組んでいました。

  • 「Kotlin イン・アクション」を完読する
  • 「Functional Programming in Kotlin」を読み始める
  • RealWorld を Kotin で実装する
  • 週 1 で技術記事を投稿する

まず、「Kotlin イン・アクション」をようやく読み切れました。感想も作成しました。 まちがいなく Kotlin に対する理解度が深まりました。来年、英語版(原著)で第 2 版が出版されるので、それに備えてもう一度読みたいです。 その後、「Functinal Programmin in Kotlin」を少し読み始めました。しかし、関数型プログラミングの理解が十分ではないので、難航してしまい、一旦中断しました。 RealWorld を Kotlin で実装するのも、なんとか継続できています。これらを通じて、OpenAPI Generator、Property Based Testing、Database Rider の知見を深めています。しかし、勉強会を増やしすぎて若干おろそかにしがちになっています。知人の方の負担が大きくなりすぎないようにしつつ、貢献していきたいです。 週 1 回の技術記事の投稿は継続できました。Kotlin に対して、一定のインプット期間を踏まえた上で、記事の作成に取り組めているの以前よりも情報量が多い記事を書けていると考えています。以下は作成した記事です。

設計

今月も、「ソフトウェアーキテクチャの基礎」の勉強会をしていました。 ソフトウェアアーキテクチャに対する考え方(アーキテクチャ特性、アーキテクチャ粒子)を学びつつ、具体的なアーキテクチャについて学べました。 普段から大規模なアーキテクチャに携わっているつもりでしたが、自分が知らなかったアーキテクチャに対してメリット、デメリットが紹介され、自分の視野の狭さを実感しました。 どのアーキテクチャにもトレードオフが存在します。普段、自分が触っているアーキテクチャの設計について文句を言っていますが、当時は最適だった可能性があると反省しました。

業務では設計標準を策定し、読みやすいコードを意識していました。 設計標準は、推奨から普及しようとしていたのですが、改善が見られなかったため、以下のように定め直しました。

現状、3 ヶ月の期間で振り返りをおこなっているため、12 月に再度振り返りをおこないます。

読書

読書概要

設計関連の書籍と、Kotlin の書籍を主に読んでいました。 思いもよらないきっかけで、Go の書籍も読むことになりました。

読んだ本

「Kotlin イン・アクション」

msksgm.hatenablog.com

「技術者のためのテクニカルライティング入門講座」

msksgm.hatenablog.com

「Functional Programming in Kotlin」

こちらは読み始めましたが、英語なのと関数型プログラミングの知見が必要なので、一旦止まっています。

プログラミング言語 Go」

職場の後輩と 2 人で読み始めました。 2 人とも業務で Go は使っていますが、Go のバイブルの 1 つ(だと考えている)「プログラミング言語 Go」は互いに読んでいなかったので読むことにしました。

「ソフトウェアアーキテクチャの基礎」

知人との勉強会で課題図書として読んでいます。 来月の初週に読み切ります。

技術記事の作成

「Kotlin と jqwik で Property Based Testing」

zenn.dev

「Database Rider で Kotlin(Spring)の DB テストを簡潔に書く」

zenn.dev

「Kotlin(Spring Boot)の API を OpenAPI Generator で自動生成」

zenn.dev

「Kotlin + SpringWeb + Spring Data JDBC で Web API サーバーを作成する」

zenn.dev

その他

connpass の勉強会

今月は以下に参加しました。

forkwell.connpass.com

server-side-kotlin-meetup.connpass.com

まとめ

今月も Kotlin と設計に注力した 1 ヶ月でした。 勉強時間と勉強する機会は増やせていますが、首が回らなくなってきています。 主な原因は、3 つの勉強会を週 4 日でやっていることです。 勉強計画にしても、もう少しメリハリをつけて、目処を決めながら進めないといけないと思いました。

Kotlin に関しては理解度が深まってきたと実感しています。 特に、RealWorld を Kotlin で実装して 3 ヶ月経過した後に、Kotlin の技術記事を書き始めたので、いいアウトプットになっていると考えています。 技術記事の投稿を少なくとも 12 月末までは継続していく想定です。 教わったことを定着していくのはもちろんですが、それ以上のことも実践したいので、Kotlin の書籍を読んでいく時間を確保していきたいです。

設計は、「ソフトウェアアーキテクチャの基礎」を通じて学んでいます。 会社の知り合いとおこなっているので、現場のシステムに対してどのように当てはまっているかを考えながら知見を深められています。 どこまでいっても、行き着くのがトレードオフの関係なのが頭を悩ませます。 技術的に保守性が高い実装方法を提案しても、周囲にその効果を理解してもらえない状況があり、最終的に新規参画者にとってわかりやすい実装を優先しがちだからです。 アーキテクチャコンウェイの法則に従うので、納得感のあるチームビルディングが重要だと実感しています。 現状、それらに対する解決策が思いつかないで行き詰まっている状態です。

業務に関しては、今月はうまくいかないことが多かったと思っています。 自分の不手際な部分もあったり、暗黙知に頼っている部分もあったりと、詰めの甘さを実感しています。自分自身だけの問題もそうですが、あまり他人からのアドバイスを聞き入れておらず活かせてないなとも思いました。 加えて、業務の技術的な内容に対してモチベーションが低い状態で、業務内容に対してネガティブなことが起きてしまい、意気消沈している状態です。 個人的な部分だけでも負のスパイラルに陥ってしまっているので、アドバイスやレビューを求めたり、どうやって実践していくかを決めたいです。

来月以降は、以下のように改善していきます。

  • 個人的な勉強
    • メリハリをつける、週次の目標を用意する。
  • 業務
    • アドバイス、レビュー、フィードバックをもらって、反省する改善する
  • 個人的な勉強を業務に活かす
    • Kotlin は個人的な範囲で進めていく。設計は 1 つの考え方にこだわらない