msksgm’s blog

msksgm’s blog

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

2022年6月の振り返り

概要

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

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

msksgm.hatenablog.com

目次

生活習慣

筋トレ

今月は以下で実践していました。 今月は重量を増やさずに持ち上げられる回数を増やそうという試みでした。 結果的にはあまりうまくいきませんでした。 基本的には 8 回*3 を目標にしていますが、どれもよくて 4 回ぐらいしか持ち上げられませんでした。 筋トレで 1 ヶ月かけて進捗を得られなかったのは初めての経験なので、来月は改善できるか考えます。

種目 重量(今月トライする重量) 6 月時点の目標
ベンチプレス 80kg 85kg
スクワット 90kg 90kg
デッドリフト 90kg 90kg

勉強時間

今月から勉強時間の結果です。

項目 ポモドーロ 時間換算
平日と休日の朝の勉強時間 122 約 30.5 時間
平日夕方の勉強時間 44 約 11 時間
休日の勉強時間 64 約 26.7 時間

先月と比較して、勉強時間が減っています。原因は明確で以下が挙げられます。

  • 6 月には連休がない上に、5 月には GW があった
  • 資格を受験した
  • 土日に友人とあう予定が多かった
  • 勉強会(connpass + 個人の勉強会)と RealWorld 作成のためのペアプロのため、ポモドーロを計測していない時間がある

また、夕方の勉強時間が減ったのも、OJT 担当になったことから、始業時間が遅くなり夕方に勉強する時間を取らなくなったのが挙げられます。朝の時間が途中から激増しました。

勉強会(12 + 2 + 2)と RealWorld(14)のペアプロの時間で約 32 時間となっています。 そのため、合算すると約 100.2 時間です(先月は約 121.6 時間)。 祝日がない + 休日に予定が詰まっていたことを考えると、この勉強時間が 1 ヶ月の勉強時間のベースになります。 ちょっとした修正でポモドーロタイマーを測っていなかったら 25 分以上経過したり、計測漏れがあったりしますが、祝日込みで平均 3 時間なので若干少ない印象です。 1 ヶ月の合計で計測しているので、具体的に勉強できていなかった週も計測できていないのも問題だと考えています。 来月以降はこれを超えられるようにしていくこと、1 週間ごとの勉強時間を計測します。

勉強関連

勉強関連 概要

プログラミング言語

Go

平行処理・非同期処理の勉強のために「Go 言語による平行処理」を読もうと考えていました。 しかし、Reactive プログラミングを学ぶには、「R2DBC Revealed」の方が良さそうだったので、そちらを考えていましたが結局やりませんでした。 他に特にとりくんでいないです。

Kotlin

簡単な素振り記事を 2 つまとめたあとに、知人と一緒に Kotlin + JDBC + SpringBoot で RealWorld を実践しました。 最初は、sealed クラス、object 宣言など、今まで知らなかった知識が頻出しており、ついていくのに精一杯です。 しかし、学習コスト以上に Kotlin の魅力を感じ、継続して勉強できています。 Go でも書いていた、interface を駆使したプログラミングによって、ユースケース層の影響を受けずにプレゼンテーション層のテストが書けるようになったので成長を実感しています。 DDD で学んだ、オニオンアーキテクチャを意識し、高凝集低結合なソースコードを書いているの実践しています。ただ、モデリング不足による落とし穴にはまり、DDD の難しさを軽量 DDD を素振りの段階でも実感しました。 DDD に関係ない部分では、エラー型の定義を厳密に考えるのを教わり、今までのプログラミングの価値観をひっくり返されています。 7 月中旬に完了を目指しているので、引き続き実装していきます。 Kotlin を自身の強みにしていきたいので、残りの半年を Kotlin の勉強に費やします。

Next.js

社内ツールのリプレイスに日々奮闘しています。 6 月末完了予定でしたが、遅延し 7 月末リリース目標です。 時間が取れないのも原因ですが、フロントエンドから見える API 設計の考慮不足を発見し、リファクタリングをしています。 結果、時間がかかっています。 テスト周りがほとんど記述できていないので、なんとかしたいですが現状優先順位が低いので勉強できていないです。

注力分野

ドメイン駆動設計

引き続き実務でドメインモデリング会を続けています。 バッチ処理モデリングをしながら、既存の APIリファクタリングをしています。 リファクタリング自体は検討段階ですが、モデリングをしていたおかげで、巨大なエンティティから値オブジェクトの切り出しを考えています。 ただ、API の改修の際には、PHP で DDD を実践しようとしたとき、リストにジェネリクスがないことを気がつきました。 リストの wrapper を作成したり、アサーションを追加したりして解決しようか考えましたが、PHP を用いて DDD を推進するコストに対するリターンが少ないと考え、一旦断念しました。

バッチ処理モデリングなので、モデリングらしくはありませんが、既存システムの理解がすすんでいます。 しかし、設計書を読みながら進めていますが、ソースコードとの対応がとれていなかったりして、ドキュメントの保守の難しさを実感しました。

プライベートでは DDD のキャッチアップのために、10 分 DDD に参加しています。 今月は 4 回参加しました。

また、さまざまなことを勉強していて気がついたのが、自身が設計に対して他より優先するほど興味とモチベーションを持っていたことです。 なので、今年残り半年をかけて設計分野の書籍を読み漁る気持ちができました。 とりあえず「リファクタリング第 2 版」から初めていきます。

セキュリティ

3 週間かけて徳丸本の勉強会を実施しました。 4 章まで読み切り、脆弱性について理解を深めました。 特に CSRF について理解を深めることができました。 徳丸実務試験を受けるつもりでしたが、優先順位が変わったため受験を見送りました。 残り半年は、Kotlin と設計に注力するため、セキュリティの勉強は一旦とりやめます。 読み物はたまに読む可能性があります。

DB

今月は注力しない予定だったので特になし。 来月からも外します。

Computer Science

特に無し。

読書

セキュリティ 1 冊、設計 1 冊、組織論 2 冊をつまみ食いしながら読んでいます。 先月まで感想文を頻繁に書いていましたが、今年の勉強の方向性が決まったので、あまり感想文はかかない予定です。 主に設計の戦略的な本と組織論の書籍を読んでいきます。

「体系的に学ぶ 安全な web アプリケーションの作り方 第 2 版」

勉強会の課題図書として 4 章まで読みました。 徳丸実務試験を受けるために、もうしばらく読み進める予定ですが、受験日は未定です。

リファクタリング 第 2 版」

会社の友人と読み進め始めました。 今まで意識せずにやってきたことが言語化されており、参考になります。 日本語的に冗長な部分もあるので読み飛ばしたくなりますが、その気持ちを抑えて読み進んでいます。

「ヤフーの 1on1」

msksgm.hatenablog.com

美術展

ブルーピリオド展

開催初日にいってきました。 あと複数回いくつもりなので、その後に感想記事を書きます。

技術記事の作成

2022 年になってから合計 24 記事書きました。

週 1 回の投稿(金曜日がある週を 1 週としてカウント)の目標を今月は達成しませんでした。 理由としては、今後は週 1 投稿をやめることを決断したからです。 もともと、週 1 回という投稿頻度は、短期的なスパンで計画を立てることにより、習慣づけることを目的としていました。 それなりにうまくいき Like と Preview も増えていきました。 しかし、問題点が 3 つありました。内容が薄くなっていることを実感していたこと、必要以上に記事を書くことに時間を割いていたこと、承認欲求が生まれていたことです。 技術記事投稿はアウトプットに最適でメリットを実感していましたが、現在は優先順位が変わりました。それらの学んだことを詳細に書きたくなっています。そういった点でも週に 1 回の投稿は目的に合致しなくなっています。 技術的なこと以外では、ブログ投稿や Twitter 投稿によって注目を集めることを目的にしたくなかったのもあります。 技術記事週 1 投稿をやめるだけなので、月 1 ぐらいのペースで再開する可能性があります。そのときには、今みたいな薄い内容よりも濃くなっているように意識します。

1 記事目 「Kotlin + Gradle + JDBCCRUD 処理を実行する」

zenn.dev

2 記事目 「Kotlin + Gradle + SpringWeb + JDBCCRUD 処理を実行する Web API サーバーを作成する」

zenn.dev

3 記事目 「個人的に戦術的 DDD の実装パターンと相性が悪いと思った Go の仕様と理由」

zenn.dev

その他

connpass の勉強会

今月は以下に参加しました。DDD と Kotlin 関連を主に情報収集をしています。

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

資格

セキュリティ系に興味があるので、「情報セキュリティマネジメント試験」を受験しました。 CBT なので正答率の結果がすぐにでました。しかし、あくまで正答率なので配点次第で合格できているかは、まだわかりません。 結果発表は 7 月 27 日(水)なのでそれまで待ちます。 「徳丸実務知識試験」「OSS-DB」「応用情報技術者試験」に興味があったのですが、Kotlin と設計関連の優先順位を高くしたので試験は残り半年受けない予定です。

まとめ

今月、最も注力していたのは Kotlin だと考えています。 ほとんどわからなかった状態から、RealWorld を作成することで、Kotlin の知識をなんとか深められています。 また、戦術的 DDD を実践する機会にもなり、アウトプットとして非常に役立っています。 Kotlin のシンタックスを写経しながらなんとか理解を試みている状態なので、今後は本質を理解できるように勉強していきます。 Go はほとんど触りませんでした。おそらく残りの半年もあまりさわらないんじゃないかと考えています。 代わりに、現状リプレイスを考案している Next.js を普段は触っています。 フロントエンドを触っていると API 設計を修正したくなり修正しているので、リプレイスにおける「アキレスと亀」の状態になっています。

セキュリティは「徳丸実務知識試験」合格を目的とした徳丸本勉強会を実施していました。 今回も自身がファシリテーターを務め書籍以外の補足資料を集めることで、理解を深めていました。 特に CSRF の適切な理解をできたと実感しており、今までは理解していたつもりだったと思いました。 現状、セキュリティの優先順位が低く「徳丸実務知識試験」の受験日は未定です。 ただ、来年の 1 月以降にはなんとか受けたいと考えています。

DDD については、引き続き実務でモデリング会を実施しています。 DDD について理解を深めたことは、「モデリングの目的がなんなのか」と振り返った際に、「企画とエンジニアの共通認識を合わせるものを作る」という結論に戻りました。 そのため、現状シーケンス図を作っています。 DDD の書籍でシーケンス図を企画側に見てもらうような解説はみたことがありませんし、シーケンス図自体を用いてソースコードの直接的な改善をやることは少なさそうと考えています。 しかし、「共通認識を合わせられそう」という合意がとれているので、実践しています。 技術的な観点ではいえば PHP で記述された APIソースコードオブジェクト指向らしく改善しようとしていました。 しかし、PHP のリストにジェネリクスが存在しないため、引数として渡すことが難しく、一旦やめました。 アサーションをつければなんとかなりますが、煩雑になりコストが見合わなさそうという観点からやめています。 このような点においても PHP から Kotlin に以降したいという気持ちが高まりました。 設計が無駄だったのかと言われたらそうでもなく、API の RESTful な設計になるようにリファクタリングを実践しています。 来月も引き続きやっていきます。

DB と CS は出来ていません。 残り半年を考えた時に、これらの優先順位は非常に低いので目標から外します。

6 月が終わりました。今年の梅雨明けは早く自分が住んでいる地域も梅雨明けしました。 先月「業務において目標を色々掲げているので、社会人 2 年目の 3 ヶ月目には、何かしら目処をつけたい」と記述しました。 あまり詳細には書けませんが、掲げた 2 つの目標のうち 1 つ目は来月末にギリギリ終わりそう、2 つ目は準備段階に入れた、といった次第です。 目処が立っているかと言われたら、あまり立っていないのですが、進捗があってよかったです。来月は多少無理しても無理矢理進捗を出したいと考えています。 他には、新入社員も入り OJT 担当になりました。自身の経験も浅いですが新卒時に実感したつらかったことを改善し、よかったことを続けられるようにしたいです。その一環として 1on1 の書籍を読んでいます。 個人的に目標を掲げていたのは下方修正しました。書籍を読む量を減らし技術記事も週 1 投稿をやめました。その代わり熟読する本をきめたり、ソースコードの記述を増やしたりしています。 ちょうど半年なので、1 年間の目標を修正します。

今年も夏の季節になりました。気温が非常に高く外に出るのが億劫になりますが、出社も非推奨じゃなくなり積極的に会社の人と交流できるようにしたいです。 チームの設計意識を変えたいので、引き続き様々な施策を実践していきます。 個人的な目標が、「Go」「セキュリティ」「DB」「CS」「DDD」から「Kotlin」「DDD」に変わりました。 残りの半年で、「Kotlin と DDD をやっています」と言えるように努力します。 今月は 3 ヶ月の振り返りを行います。