msksgm’s blog

msksgm’s blog

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

2022年4〜6月の振り返り

概要

1月〜3月の振り返りをします。

4~6 月の振り返り記事

4~6 月の振り返りを欠かさずにできました。

4 月の振り返り記事

msksgm.hatenablog.com

5 月の振り返り記事

msksgm.hatenablog.com

6 月の振り返り記事

msksgm.hatenablog.com

4~6 月の目標の振り返り

3 ヶ月間の目標と振り返りをします。

生活習慣

目標は以下でした。

早寝早起きとジム通いとランニングをします。 ベンチプレス 85kg、スクワット 90kg、デットリフト 90kg を目標にします。 ランニングは可能な限りやっていきます。

結果は以下でした。ベンチプレスが達成できませんでした。 自身の体重的にも簡単に持ち上げられる重量の限界にきている気がするので筋トレ目標を下方修正します。 ランニングは可能な限り 1 回 30 分走り切ることを目標に続けられています。 最近はサウナにはまりランニングを連続 3 回実践できたらサウナを 1 回通うようになりました。

種目 結果 6 月時点の目標
ベンチプレス 80kg 85kg
スクワット 90kg 90kg
デッドリフト 90kg 90kg

勉強関連

勉強関連の目標は、1 回修正をして最終的に以下になりました。 Go、セキュリティ、DDD は注力できましたが、DB と ComputerScience はできませんでした。 なので、残り半年からは目標から外します。 プログラミング言語も Kotlin のみに注力したいため、来月からは Kotlin と DDD のみを目標に掲げます。

  • プログラミング言語
    • Go
    • Kotlin
      • 「Kotlin サーバーサイドプログラミング実践開発」
    • GAS
      • 未定
  • 注力分野
    • ドメイン駆動設計
      • 「実践ドメイン駆動設計」
      • 「わかる! ドメイン駆動設計 ~もちこちゃんの大冒険~」
    • セキュリティ
      • 「雰囲気で OAuth2.0 を使っているエンジニアが OAuth2.0 を整理して、手を動かしながら学べる本」
      • 「OAuth、OAuth 認証、OpenID Connect の違いを整理して理解できる本」
      • 「OAuth・OIDC への攻撃と対策を整理して理解できる本(リダイレクトへの攻撃編)」
      • SAML 入門」
      • 「認証と認可 Keycloak 入門」
      • 情報セキュリティマネジメント試験を受験(6 月)
    • DB
      • OSS-DB Silver の勉強
      • 他未定
  • Computer Science
    • 「プログラミングの基礎」
    • 他未定

プログラミング言語

4 月は Go に注力していました。途中から興味が変わり、5 月から Next.js と Kotlin に注力し始めました。6 月からは、Kotlin がメインでした。

4 月までは、Go の学習に注力し「Learning Go」の完読と、「ドメイン駆動設計入門」を C#から Go にリプレイスで学んでいました。

「Learning Go」途中からダラダラしながら進めてしまいましたが、英語の書籍を曲がりなりにも読み切ったのは少し自身につながりました。 Go の根本的な仕組みと歴史的経緯と哲学について学ぶことができるので、Go を使用している方には積極的におすすめしています。

ドメイン駆動設計入門」を C#から Go にリプレイスした結果、戦術的 DDD の実装パターンを 7 種類実装し、記事を書きました。 実際に手を動かさないと勘所がわからないなかったので良い経験となりました。 しかし、Go は DDD とあまり相性が良くなさそうとも感じました。

「DDD をやりたい」という気持ちは「プログラミングするならオブジェクト指向の表現力が欲しい」という思考に変わりました。 なので、注力してインプットするのは一旦中止にしていました。

5 月からは、Kotlin に注力する予定でした。業務で Next.js を使う機会が生まれたので、そっちに時間を割いています。 Next.js は SSR がよくわかっていませんでしたが、「RealWorld Next.js」で理解深められました。 以前よりもフロントエンド開発の抵抗がなくなりました。しかし、やっぱり考えることが多くて難しいです。 特にテスト周りが苦手です。

6 月から Kotlin に取り組めました。 「オブジェクト指向の表現力が欲しい」という目的にマッチし、Intellij の厚いサポートが開発体験を素晴らしいです。 Java のような書き方ができますが、より表現力がある Kotlin の書き方ができるように勉強していきます。 7 月からは目標を修正して Go から Kotlin の勉強に変更します。

注力分野

ドメイン駆動設計

4 月に無事に「実践ドメイン駆動設計」を読み切りました。 14 週間かけて読み切ったことは自信につながりました。 計算したところ「実践ドメイン駆動設計」「ドメイン駆動設計入門」「ドメイン駆動設計モデリング/実践ガイド」に費やした時間は 200 時間を超えていましたでした。 結果、DDD の概念を身に着けることができたと考えています。 実務でドメインモデリングを実践しているのですが、活かしきれているとは言えず試行錯誤を繰り返しています。

5 月時点でも、業務でドメインモデリングを継続していました。 ビジネス職とエンジニア職の認識を以前よりも合わせられるようになりました。 費用対効果を意識できていないのを課題に感じたので、修正していきます。 簡単な箇所ですが、ドメインモデルをソースコードに落とし込みました。 当初の目的だった「納得感を持ってプログラミングをしたい欲」を満たすことができ満足しました。 引き続きモデリングを続けていきますが、ソースコードに落とし込むペースも増やしてイテレーションを増やします。

6 月から、モデリングで必要なものについて考えなおす機会がありました。 その結果、無理にオブジェクトの図をかくよりもシーケンス図を記述するほうがわかりやすいことに気が付き、シーケンス図も書くようになりました。 戦術的 DDD を実務でも個人の勉強でも実践する機会があります。 実務の巨大なソースコード(しかも動的型づけ言語)を DDD のアーキテクチャに落とし込むのは難しいですが、せめてオブジェクト指向っぽく記述できるようにしています。 10 月から PHP を Kotlin にリプレイスする作業が始まる予定なので知見を深められるように努力していきます。

ドメイン駆動設計に限らず、一般的な設計と組織論に興味があるので、7 月以降もさらに注力していきます。

セキュリティ

4 月時点では、特に認証認可に注力していました。 Auth 屋の書籍を 3 冊読み、「SAML 入門」も読みました。 結果、OAuth の知識の整理になったと考えています。 しかし、同じようなフローで知識が混ざりがちなので、繰り返し勉強する必要があるとも感じました。

5 月時点では「Keycloak 入門」で勉強会を実施しました。 OAuth・OIDC だけでなく、IAM 分野の単語の整理ができました。 特に、チュートリアルが素晴らしく、良い復習になりました。 徳丸本の勉強会 2 回目を開始しました。 2 回目なので、教える側のつもりで準備をしています。 7 月ぐらいに、「徳丸実務知識試験」を受験する予定です。

6 月時点では徳丸本の勉強会を実施しました。 4 章まで読み進め脆弱性の良い振り返りになり、加えて CSRF の理解が非常に深まりました。 セキュリティと資格受験の優先順位が下がったので「徳丸実務知識試験」の受験は未定ですが、来年ぐらいには受けられるようにしたいです。

優先順位が現状低いので、残り半年は目標から外します。

DB

特に注力できませんでした。 残り半年で注力する予定がないので、目標から外します。

Computer Science

5 月に「プログラミングの基礎」を読みました。簡単な関数型プログラミングについて知ることができてよかったです。 こちらも DB と同様に残り半年で注力する予定がないので、目標から外します。

英語

特に目標は定めていませんでした。 せっかく ACM 会員になったのに、オライリーのサブスクが打ち切られてしまい、悲しかったです。 ただ、オライリーのサブスクで検索すると、ググる以上に有益な情報を得られるのでこれからも継続します。

読書

ビジネス書は、以下の 3 冊を目標に掲げ、他技術書を読んでいました。

4 月時点(6 冊)。

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

5 月時点(5 冊 + 感想を書かなかった 1 冊)。

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

6 月時点(1 冊 + 感想を書かなかった 2 冊)。

msksgm.hatenablog.com

美術展

美術館は 4 月時点では、特に目標は立てていませんでしたが、通いました。

4 月。

msksgm.hatenablog.com

5 月。

msksgm.hatenablog.com

6 月。

ブルーピリオド展にいきました。あと複数回通う予定なので、その後に感想を書きます。

技術記事の作成

週 1 回投稿を目標にやっていました。 週 1 回投稿をやめることを 6 月の最終週に決断したため、6 月だけ目標を達成できていません。 理由としては、60 記事以上継続した結果、時間を割き過ぎている、内容が薄くなっているが改善できていない、承認欲求を実感するようになったことがあげられます。 そのため、一旦やめることにしました。今後は月 1 ペースで投稿する可能性があります。

最後に今まで書いていた簡単な実装記事ではなく、Go と DDD の相性について自分の意見をまとめた記事がトレンド入りをして、過去最高の Like をもらっているのが節目として嬉しいです。 今後は、自分の意見も織り交ぜた記事を継続的に書いていければと考えています。

4 月時点(5 記事)。

zenn.dev

zenn.dev

zenn.dev

zenn.dev

zenn.dev

5 月時点(4 記事)。

zenn.dev

zenn.dev

zenn.dev

zenn.dev

6 月時点(3 記事)。

zenn.dev

zenn.dev

zenn.dev

その他

その他記事

4 月時点。

msksgm.hatenablog.com

5 月時点。

msksgm.hatenablog.com

connpass の勉強会

主に DDD と Kotlin について情報収集していました。 今後も継続する予定です。

4 月時点。

ddd-community-jp.connpass.com

modeling-how-to-learn.connpass.com

5 月時点。

ddd-community-jp.connpass.com

line.connpass.com

ddd-community-jp.connpass.com

6 月時点。

ddd-community-jp.connpass.com

server-side-kotlin-meetup.connpass.com

ddd-community-jp.connpass.com

ddd-community-jp.connpass.com

ddd-community-jp.connpass.com

振り返りまとめ

勉強分野では、プログラミング言語(Go、Next.js、kotlin)、ドメイン駆動設計(DDD)、セキュリティに対して注力していました。 4 月時点で、「実践ドメイン駆動設計」の勉強会を完了し完読に成功しました。 あきらかに、読了前と読了後で DDD の理解度が変わったと実感しています。
ドメイン駆動設計入門」を Go で書き換えるのも完了し、独学ですが Go の書き方を学びながら戦術的 DDD を実践できました。 個人的には Go の構造体と戦術的 DDD は相性が悪いという印象を持ち、Kotlin に対して興味が移りました。 Java の書き方ができるのはもちろんのこと、sealed、companion、val など言語がサポートしてくれる機能が強力で実務でも導入したいです。 5 月時点では全くの初心者でしたが、知人の助けもあり 6 月から RealWorld の実装に取り組めています。7 月中には一旦終わらせたいです。 ついでに実務で Next.js を触る機会もあったので、Next.js を 5 月に学んでいました。 雰囲気は理解できましたが、テスト周りが難解です。
セキュリティでは認証認可系の書籍を読み漁ることがでました。徳丸本も 2 回目の勉強会を実践しました。 また、勉強の一環として「情報セキュリティマネジメント試験」を受験しました。合格発表は 7 月です。 実務で触る機会はないのにも関わらず、セキュリティの知識を向上できていると実感できています。
注力したかったけどできなかった分野には、DB と CS があります。 どちらも業務の即効性とプライベートの興味関心を考えると、優先度が低いままなので、残りの半年では注力分野から外します。
セキュリティも優先順位が下がったので一旦勉強をやめます。 なので、来月からは Kotlin と DDD(&設計、組織論)に注力していきます。

読書も 4 月と 5 月は月 5 冊のペースで読めていました。 しかし、月 5 冊のペースで読んでも理解を深められる入門書はほとんど読み切ったので、6 月からペースを一気に落としました。 読書をやめて、手を動かしていると設計に強い興味があることを実感しました。 なので、残りの半年は設計の戦略的な本と戦術的な本を読んでいきます。

美術展も毎月いきました。 6 月にいった「ブルーピリオド展」は「ブルーピリオド」が最も好きな作品なので、非常に楽しめました。あと数回通おうと考えています。 それ以外では、毎月目的もなく美術展に通っていると似たような構成の展覧会に遭遇し、すぐに飽きてしまう問題がありました。 なので、毎月ペースをやめて自分の好きな分野を探そうと考えています。

仕事関連では、社会人 2 年目の最初の 3 ヶ月間が終わった状態です。 社会人 2 年目に仕事について 2 つの目標を掲げており、それらを達成するために業務中はもちろんのこと、プライベートでも注力していました。 すぐに結果がでたかと言われたら難しく、1 つ目の目標ですら節目が見えそうな状態です。 完全に個人目標のため、途中で諦めたらリターンが 0 の状態なので、結果を出せるように詰めていきます。 悪いことだけでなく良いこともあり、リファクタリング意識が変わってきています。 業務コードを大幅にリファクタリングしようとすると、チームの話になってくるので、チームの悪いところを考えるようになりました。 人に説明しようと言語化しタイミングで成長を実感できるパターンが多いので、積極的にチームに共有できるように努力していきます。
他に大きなイベントとしては、チームに新卒が加入し、メンターを務めることになりました。 チームの業務内容的に育成に時間がかかることを実感したため、同じようなことで苦しくならないように教えていきたいです。そのために、1on1 や組織論の本を直近で読もうと考えています。

最後に 3 ヶ月の振り返り自体の振り返りです。 引き続き、3 ヶ月ごとの振り返りがあると粒度的にも良いタイミングの振り返りだと実感しています。来月以降も続けます。 1 年単位で考えると半年経過したため、1 年間の目標で掲げていた内容に対して興味の変化を内心感じていましたし、記録に残すと事実もそうであることがわかりました。 具体的には、1 月時点ではプログラミング言語は Go、注力分野では、DDD、セキュリティ、DB、CS を考えていました。他にも追加していました考えていました。 しかし、7 月からは Kotlin とドメイン駆動設計(設計)にのみ絞ります。 半年間が無駄だったわけではなく、興味がある分野を知るための期間だったと考えています。事実、半年の間に勉強しておいてよかったと考えていますし、逆に半年感で見つけることができたと思いました。 結果としてイチローがいう「遠回りが一番の近道」ということを実感できました。ただ、「遠回り」もなんとなく勉強するのではなく計画を立てた上で「遠回り」なのも重要だと思いました。Kotlin とドメイン駆動設計(設計)という選択が「近道」なのか答えはでていませんが、「近道」になるように残りの半年も努力していきます。 仕事でも 1 月から実践しようとしていることが変わっていると思っています。 意見が通りやすく実践もしやすい職場なので、意見出しをしている分は結果にコミットできるように努力します。 メンターにもなったので、自分が考えている良いチームになれるようにも努力します。

今回も長くなりましたが、3 ヶ月間の振り返りでした。 残り半年も努力しつつ、アウトプットもしていきます。