msksgm’s blog

msksgm’s blog

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

2022年1〜3月の振り返り

概要

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

1~3 月の振り返り記事

1~3 月の振り返りを欠かさずにできました

1 月の振り返り記事

msksgm.hatenablog.com

2 月の振り返り記事

msksgm.hatenablog.com

3 月の振り返り記事

msksgm.hatenablog.com

1〜3月の目標の振り返り

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

生活習慣

目標は以下でした。

ジム通います。 ベンチプレス 75kg、スクワット 80kg、デットリフト 70kg を目標にします。

これらはの目標を無事に達成できました。 ベンチプレスは 75kg、スクワット 80kg、デッドリフト 80kg になりました。 ジムに通い始めてから 7 ヶ月たちました、今後も怪我をしないように気をつけて取り組みます。

平行してランニングにも取り組んでいます。 以前と比べて大分体が軽くなった印象です。 仕事のパフォーマンスに影響を与えていると思うので、来月以降も継続します。

勉強関連

勉強関連の目標は、2 回修正をして最終的に以下になりました。

2022/02/27 追記

  • プログラミング言語
    • Go
      • RealWorld app
      • 「実践ドメイン駆動設計」、「ドメイン駆動設計入門」を Go にリプレイス
      • エキスパートたちの Go 言語
  • 注力分野
    • ドメイン駆動設計
    • セキュリティ
      • 情報セキュリティマネジメント試験
    • DB
      • 絵でみてわかる OS/ストレージ/ネットワーク
      • 達人に学ぶ DB 設計
      • 失敗から学ぶ RDB の正しい歩き方
      • わかりみ SQL
      • SQL パフォーマンス詳解
      • SQL パズル
  • Computer Science
    • 未定

プログラミング言語

Go に注力していました。

Go

1 月から 2 月の途中までは、RealWorld を Go で実装しようとすることで、Go の基本的な API サーバーの作成を実践していました。
2 月の途中から 3 月までは、「ドメイン駆動設計入門」と「実践ドメイン駆動設計」を Go で実装することで理解を深めていました。
その結果、以下について理解を深めることができました

  • テスト
  • Mock
  • DB の接続
  • エラー関連(Wrap、errors.Is、errors.As)
  • package の公開範囲

プログラミングは最初に下手に入門書を読もうとするよりも、実践した方が得られるものが多いことを改めて実感しました。 簡単なものを曲がりなりにも作れるようになって、改めて入門書を読むとよかったりするので、最近は「Learning Go」を読んでいます。 今まで意識していなかった、Go の部分を知ることができて理解を深められています。

色々実践していて重ったのは、Go はあんまり 戦術的 DDD に向いていなさそうということでした。 あくまで Web アプリを作るのに向いていないではなく、戦術的 DDD に向いていないという感じです。 詳細は、今後記事に書くかもしれませんが、言語の仕様としてサポートする部分が少ないので厳格なドメインオブジェクトを作れないのが主な理由です。 なので、個人的に Go で開発するときは、CLI ツールやバッチ処理とかになるかと思います。

4 月以降は Go 関連では「Learning Go」「プログラミング言語 Go」「Effective Go」を読んで理解を深めるかもしれません。 他には、CLI ツールを作成している人たちの記事や本を参考にして自分も CLI ツールを作れるようになりたいです。

最近はサーバーサイド Kotlin に興味があるため「Kotlin サーバーサイドプログラミング実践開発」を読んで、RealWorld の実装をしようと思っています。

注力分野

ドメイン駆動設計

1 月に「ドメイン駆動設計モデリング/実装ガイド」、「ドメイン駆動設計 サンプルコード&FAQ」の勉強会を開催し完了しました。また、書籍「ドメイン駆動設計入門」、「セキュアバイデザイン」を読了しました。 これらによって、ドメイン駆動設計の基本的な部分を学ことができました。
より実践的なことの理解を目標にして「実践ドメイン駆動設計」の勉強会を 1 月終盤から開始しました。
3 月末時点で全 14 章のうち 10 章を読み終わりました。途中ですが、戦略的 DDD と戦術的 DDD の両方の深い知見を得られて、普段の業務でも意思決定の原動力になっていると思います。
ドメイン駆動設計入門」と合わせて、戦術的 DDD を Go で実装することで知識の定着が上手くいっている気がします。 4 月末に完了するのが楽しみです。

4 月以降もドメイン駆動設計を意識した勉強を継続するつもりです。 具体的には「実践ドメイン駆動設計」の読了、「マイクロサービスパターン」を読んだり、ドメインイベントについて調べたりなどです。

セキュリティ

1 月は何もしませんでした。
2 月に「Keycloak 入門」の著者たちが開催した勉強会に参加しました。
2 月の終盤から 3 月にかけて、「情報セキュリティマネジメント試験」の勉強をし、テキストを 1 周することができました。マネジメントの観点からセキュリティを学ぶ良い機会になりました。
結果として 1~3 月はあまり技術的なことを学びませんでした。

技術的なことができなかったので 4 月は技術的なことに取り組んでいくよていです。 具体的には、4 月に認証・認可関連の書籍(Auth 屋、SAML 入門)を読み、5 月に 「Keycloak 入門」を読み、6 月に「情報セキュリティマネジメント試験」を読む予定です。 あと、徳丸実務試験の申し込みがスタートしたので、受験するかもしれません。PHP7 技術者認定初級試験の合格知識が必要なので迷いどころです。

DB

1 月に Oracle MASTER Silver SQL を合格しました。業務で Oracle を使用しているので、この試験で知識を定着することができてよかったです。
2 月は DB 関連の書籍(「絵で見てわかる OS/ストレージ/ネットワーク 新装版」、「達人に学ぶ DB 設計 徹底指南書 初級者で終わりたくないあなたへ」、「失敗から学ぶ RDB の正しい歩き方」、「図解でなっとく! トラブル知らずのシステム設計」)を読み漁ることができました。これらの知識は DB に関する深い見識がなくても、読みやすかったです。読んだ後は読む前と比較して、DB の知識が向上したと思います。
3 月は、「SQL パズル」に挑戦しましたが、存外難易度が高そうだったので、取りやめました。また、「SQL パフォーマンス詳解」も読みましたが、あまり理解できませんでした。結果、3 月はあまり注力できませんでした。

4 月以降も注力するかと言われたら微妙です。 ただ、DB に引っ張られないドメインオブジェクトを作るには DB の設計とパフォーマンスの知識が必須だと考えています。 なので、6 月ぐらいに十分な時間をとって取り組みたいです。 スケジュールの兼ね合いを考えて、OSS-DB を受験するかもしれません。

英語

目標に掲げてしましたが、優先度が低く 3 月からとりやめることにしました。復活するかは未定です。

2022/02/27 追記

他のことが優先度が高いため、英語に注力することをやめます。 年内に復活するかどうかは未定です。

しかし、3 月終盤に ACM 会員となったため、英語書籍を読んだり英語動画を見るたりすようになりました。英語力維持になればと思っています。

読書

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

2022/02/27 追記

  • 読書(15冊)
    • ドラッカーのマネジメント -- 完了
    • シン・ニホン -- 完了
    • 1 兆ドルコーチ
    • その他 技術書

合計 13 冊を読み切りました。 途中で読むのをやめた書籍とか、一部だけ読んだ書籍とか含めると 15 冊ぐらいです。

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

美術展

以下の美術展に行こうと目標を立てていました。

2022/02/27 追記

途中でまんぼうが実施され、会期延長がありましたが、結果として予定通り見にいくことができてよかったです。 美術館にいくと、遠出していないのに、さまざまな知識や、そのときの印象を持つことができ楽しいです。 来月以降も月 1 ペースで継続します。

msksgm.hatenablog.com

msksgm.hatenablog.com

msksgm.hatenablog.com

技術記事の作成

週 1 回投稿を目標にやっていました。

2022/01/30 追記

週 1 回(金曜日がある週を 1 週とカウント)の投稿を目標にします。

毎週欠かさず投稿し、3 ヶ月間で 12 記事投稿しました。 引き続き週 1 投稿を目標にやっていきます。

zenn.dev

zenn.dev

zenn.dev

zenn.dev

zenn.dev

zenn.dev

zenn.dev

zenn.dev

zenn.dev

zenn.dev

zenn.dev

zenn.dev

振り返りまとめ

勉強分野では、Go、ドメイン駆動設計、セキュリティ、DB に対して注力していた 3 ヶ月間でした。
比重はドメイン駆動設計>Go>DB>=セキュリティの順だと思います。
興味の面ではドメイン駆動設計はさらに向上し、今後も勉強を続けていきます。
反対に Go は戦術的 DDD を実践するという意味では興味が薄れてきました。 理由は戦術的 DDD と相性が悪い部分を感じているからです。 しかし、言語として Go らしい書き方、言語の哲学を学ぶのは楽しいです。より Go に適したバッチとか CLI ツールとかで知見を深めていきたいと考えています。 最近は Kotlin に興味があるので、早く一区切りつけて Kotlin の学習に注力したいです。
DB は、知識としてさまざまな書籍を読みましたが、あまり手を動かしていないので実践知になっていない感覚があります。 DB に引っ張られない設計をするのも DDD を実践する上での個人的な目標なので、今後も時間をとって勉強していきたいです。
セキュリティは「情報セキュリティマネジメント試験」の勉強をしていました。技術的な知識は増えていませんが、マネジメントという側面から考えたセキュリティについて知ることができる良い機会になっています。復習するかと言われたら優先度が低くはありますが、6 月の資格取得するまでは継続して復習しようと思っています。 認証認可と脆弱性に興味があるので、今後はそちらを勉強していきます。徳丸実務試験を取得したいです。

読書は大体、月 5 冊ペースで読み切ることができて嬉しいです。 引き続き興味のある本を中心に読んでいき、数多くの本を読んでいきたいです。

美術展は毎月いくことができてよかったです。 こちらも来月も継続します。

技術記事の作成を週 1 ペースで投稿するのを達成できています。 技術記事にすると個人的な感覚でも知識の定着に効果があるので、多少時間が取られても投稿してよかったと思えます。 副次効果として、Like がつくと嬉しいといった気持ちでやっています。 3 月最後に書いた記事「Go の自作エラーを errors.Is と errors.As で wrap 元のエラーと識別するときには、Unwrap も実装しよう」は zenn のトレンドにもなって非常に嬉しかったです。 しかし、承認欲求にこだわると良いことがないので、あまり気にせず自分のアウトプットしたいことを継続していきたいと考えています。

仕事関連でいえば、自分は、2021 新卒で現在の会社に入社したので 4 月から入社 2 年目になります。 出社することは、ほとんどなく 5 回にも満たないぐらいです。 つい先日、久しぶりに出社し同期と先輩とを近況報告をしていて、そのとき初めて会社に属している気持ちになりました。 フルリモートが主流で、そういった制度が当たり前のように導入されているのは、とても素晴らしいと思います。 しかし、出社して対面で意見を飛ばしあえる職場が、まったくないのもどうなのかと考える時があります。 特に、「出社していたときと比べて効率が落ちていない」という言葉をよく聞きますが、あと数年して今の新卒が年次を重ねたときに「出社したほうが効率が良い」も意見として出てくるのではないかと思います。対面で質問した方が、伝わりやすくやりやすいときもあると思います。 どうなるかはわかりませんが、自身としてはリモートワークと出社について自分の中で折り合いをつけて、周りを巻き込めるときには巻き込んだ行動(出社、対面で仕事)ができたらと考えています。
具体的に仕事では、最近はリプレイスの提案をしていました。承認もされたので、DDD の知識を活かしつつリファクタリングに取り組んでいきたいです。 メインのタスクとして時間が確保されることはないので、残業が増えるかもしれませんが、ようやく自分のやりたいことに近づいてきたので、結果を残したいです。

最後に、目標と振り返りについて振り返ります。 今年から 1 ヶ月ごとだけでなく 3 ヶ月ごとに目標を立てて振り返りを立てるようにしました。 短期的目標と長期的目標を立てることの重要性は「SOFT SKILLS」で学んでいたのですが、初めて実践できました。 やってみると 2 つの意味で効果的でした。
1 つめは抽象度の高かった目標が具体化し実践しやすくなるということです。 長期的目標を立てると時間経過につれて実践するか曖昧だったことが実践しやすくという意味です。 目標には優先順位があり、どうしても「やりたいけどすぐにはできないこと」がうまれます。 そういった目標は機会を逃しがちでした。そこで長期的な視点から目標を立てることで優先順位が高かったことが終わると「やりたいけどすぐにはできないこと」が「やりたいしすぐできること」に切り替わります。
2 つめは 3 ヶ月という短すぎず長すぎずという期間で成長過程を振り返れるということです。今まで 1 ヶ月の振り返りと 1 年の振り返りしかありませんでした。 1 ヶ月では成長を実感しにくく、使い捨てのような振り返りしかできませんでした。そうやってできた 12 個の 1 ヶ月の振り返りから 1 年間の振り返りをしようとすると、意味の薄いものになっていた感覚があります。 3 ヶ月は実践してから結果を得られるまで決して短すぎることはありません。今までやってきたことを記憶が新しいままに実践できるので 3 ヶ月間の初日から成長を少なからず実感することができました。 3 ヶ月ごとに目標を立てて振り返りをするのは、今後も実践しようと思います。1 年たったときにどうなるのかが楽しみです。

長くなりましたが、3 ヶ月間の振り返りでした。 社会人 2 年目も頑張ります。