転職したらスマレジだった件

スマレジのエンジニアやまてのテックブログです。マジレス大歓迎です。

ひと月の振り返り - 2022年12月

こんにちは!

スマレジ・テックファームのWebエンジニアやまてと申します。

はじめに

Web関連の自習について、学習効率を高めることを目的として、月に1記事、振り返りのブログ記事を投稿しています。

半期目標 Goal

下半期(2022/11/01 ~ 2023/04/30)の目標は、以下を掲げています。

1. PHPフルスクラッチでのWebアプリケーション開発の学習

2. スマレジアプリマーケットのWebアプリ開発

3. 出向先で必要な技術の学習

※ 半期目標の詳細はこちらの記事で書きました。

ryamate.hatenablog.com

目次

今回は、先月 12 月を振り返ります。

記事は PDCA の順に書き出します。

それぞれ、以下を書き出すイメージです。

  • 計画 Plan → 何をするの?
  • 実行 Do → 何をしたの?
  • 検証 Check → やってみてどうだった?
  • 改善 Act → 今後どうする?

計画 Plan - 12月

以下のとおり、先月の計画を立てました。

計画 Plan - 12月

下半期(2022/11/01 ~ 2023/04/30)の目標に沿った12月の計画です。

1. PHPフルスクラッチでのWebアプリケーション開発の学習

  • 独学エンジニアの動画講義、課題
    • パート「フルスクラッチでWebアプリケーション」(最新更新分)についての動画試聴と課題
    • ブラックジャックについて、スマレジの教育担当の方にレビューをもらった点についての修正
  • 読書『良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方』

2. スマレジアプリマーケットのWebアプリ開発

  • 読書&ハンズオン『TerraformでFargateを構築してGitHub Actionsでデプロイ!Laravel編』
  • スマレジ・アプリマーケットに公開できるWebアプリ(PHP/Laravel)開発の下調べ

3. 出向先で必要な技術の学習

  • AWS(ECS(Fargate)、DynamoDB)、Docker、Redisについての以下の学習
    • 読書&ハンズオン『TerraformでFargateを構築してGitHub Actionsでデプロイ!Laravel編』(「2. スマレジアプリマーケットのWebアプリ開発」と同じ)

4. アプリ共同開発

  • アプリ共同開発

1 月からの計画はすべて取っ替えます!

12 月の振り返りなのに早くも脱線しますが、1 月からの計画をすべて取っ替えます!

理由は下記です。

実務で必要な技術が大幅に変わったため、その技術のキャッチアップに時間を注ぐことにします。

ほぼ月末(12/29)に次の業務について聞いたため、12月の振り返りについては、書き残しておきます。

1. PHPフルスクラッチでのWebアプリケーション開発の学習

具体的な行動計画は以下の通りです。

  • 独学エンジニアの動画講義、課題
    • パート「フルスクラッチでWebアプリケーション」(最新更新分)についての動画試聴と課題
    • ブラックジャックについて、スマレジの教育担当の方にレビューをもらった点についての修正
  • 読書『良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方』

1-1. 独学エンジニアの動画講義、課題

1-1-1. パート「フルスクラッチでWebアプリケーション」(最新更新分)についての動画試聴と課題

実行 Do

dokugaku-engineer.com

  • Web開発についての動画学習教材 独学エンジニア の「PART8 フルスクラッチでWebアプリケーション」の下記の講座(動画視聴、課題)を受講しました。
    • レッスン44: PHPでシャッフルランチサービスを作ろう
      • 17.モデルを整備しよう
      • 18.作成物を振り返ろう
      • 19.レッスンのまとめ(視聴のみ)
    • レッスン45: 【プロジェクト】オリジナルアプリを作ろう
      • 1.オリジナルアプリを作成しよう(視聴のみ)
      • 2.まとめ

検証 Check

  • 毎週更新されていた教材は完結しました!

改善 Act

  • レッスン 45 のオリジナルアプリについては、転職前にポートフォリオとしてのオリジナルアプリを作成したため、独学エンジニアは全課題完了!ということにします。
  • 本当に濃い内容だったため、中には理解度はイマイチだったけど先に進んだ部分もあります。良書を再読して理解を深めるようなイメージで、部分的に再視聴する機会を持ちたいと思います。

1-1-2. ブラックジャックについて、スマレジの教育担当の方にレビューをもらった点についての修正

実行 Do

  • 9 月まで取り組んでいた「PHPで作ったコンソール画面で操作するブラックジャックゲーム」について、社内の教育担当の方にレビューをしていただいた改善点について、以下の修正(リファクタリング)をしました。

    • switch 文の利用

    github.com

    • status 情報の判定ロジックの Class への内包

    github.com

  • Qiita 記事としてまとめて、実装を振り返りました。

qiita.com

検証 Check

  • レビューいただいた内容についてはひと通り修正完了させることができました。

改善 Act

  • 今後も、レビューやアドバイスをもらえたときには、手を動かしたり、自分でも考えたりして身につけます。
  • また、ブラックジャックのコードについては、今後も基礎学習の練習の場(アウトプット先)として、手を加えていきたいです。

1-2. 読書『良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方』

実行 Do

gihyo.jp

  • 『良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方』(以下、ミノ駆動本)について、以下の章を読みました。
    • 5 低凝集 ―バラバラになったモノたち―
      • 5.1 staticメソッドの誤用
      • 5.2 初期化ロジックの分散
      • 5.3 共通処理クラス(Common・Util)
      • 5.4 結果を返すために引数を使わないこと
      • 5.5 多すぎる引数
      • 5.6 メソッドチェイン
    • 6 条件分岐 ―迷宮化した分岐処理を解きほぐす技法―
      • 6.1 条件分岐のネストによる可読性低下
      • 6.2 switch文の重複
      • 6.3 条件分岐の重複とネスト
    • 1〜4 章を再読しました。
  • 以下の章に関連する Qiita 記事を書きました。
    • 1 悪しき構造の弊害を知覚する
      • 1.1 意味不明な命名
      • 1.2 理解を困難にする条件分岐のネスト
      • 1.3 さまざまな悪魔を招きやすいデータクラス
      • 1.4 悪魔退治の基本

qiita.com

検証 Check

  • 新しい章は、5, 6 章のみ読みました。
  • Qiita 記事を書くにあたって、理解をした上で記事を書こうとしたところ、結局、1〜4章を再読しました。
  • 読むだけでは理解が浅い、ということは技術書を読むたびに思うことですが、 1 章については記事としてアウトプットに結びつけたことで、とても理解が深まったのを感じます。

改善 Act

  • 必ず読了したいと思っていますが、次の実務での技術のキャッチアップを最優先で行うため、ミノ駆動本の読書は休止します。



2. スマレジアプリマーケットのWebアプリ開発

具体的な行動計画は以下の通りです。

  • 読書&ハンズオン『TerraformでFargateを構築してGitHub Actionsでデプロイ!Laravel編』
  • スマレジ・アプリマーケットに公開できるWebアプリ(PHP/Laravel)開発の下調べ

2-1. 読書&ハンズオン『TerraformでFargateを構築してGitHub Actionsでデプロイ!Laravel編』

実行 Do

以下の章について、ハンズオンを実施しながら、読み進めました。

  • 第5章 ネットワーク (VPC) の構築(途中)
  • 第11章 ElastiCache(Redis)の構築 (読むだけ)

検証 Check

  • 出向先の実務で必要な ElastiCache for Redis の章を読みました。Redis の理解を課題としていますが、やはり使ってみないと理解が深まらないと感じます。

改善 Act

  • 次の実務での技術のキャッチアップを最優先で行うため、読書&ハンズオンは休止します。(そもそも進捗は停滞気味ではありましたけど…)

2-2. スマレジ・アプリマーケットに公開できるWebアプリ(PHP/Laravel)開発の下調べ

実行 Do

以下を実施しました。

検証 Check

  • インセプションデッキのテンプレートに当てはめて考えていくと、作りたいものがどのようなものであるか、とても明確になる感覚があります。個人開発することがあれば、今後もこのテンプレートを使っていきたいです。

  • 自分の過去記事も参考にしました。 qiita.com

改善 Act

  • 次の実務での技術のキャッチアップを最優先で行うため、アプリ開発は休止します。



3. 出向先で必要な技術の学習

具体的な行動計画は以下の通りです。

  • AWS(ECS(Fargate)、DynamoDB)、Docker、Redisについて、以下の学習
    • 読書&ハンズオン『TerraformでFargateを構築してGitHub Actionsでデプロイ!Laravel編』(「2. スマレジアプリマーケットのWebアプリ開発」と同じ)

3-1. 読書&ハンズオン『TerraformでFargateを構築してGitHub Actionsでデプロイ!Laravel編』

実行 Do、検証 Check、改善 Act

同上です。

→2-1. 読書&ハンズオン『TerraformでFargateを構築してGitHub Actionsでデプロイ!Laravel編』



4. アプリ共同開発

  • 11 月始動で、同部署(スマレジ・テックファーム)の4名で共同開発しています。

実行 Do

以下を実施しました。

検証 Check

  • 毎週の MTG で疑問などを解消させてもらっています。
  • 私はチーム開発は初めてなので、 GitHub でのプルリク、git rebase などチーム開発で気をつけることなど、一人では経験を積めないことができるのが良いです。

改善 Act

  • 次の実務での技術のキャッチアップを最優先で行うために、今後どのように進めるかは要検討です。
  • 実務のためのキャッチアップに全時間を注いだ方がいい気はしますが、チーム開発での学びは大きいため、継続はしたいので悩ましいです。

その他

ブログ記事投稿

以下のブログ記事を投稿しました。(週一ペース)

ryamate.hatenablog.com

今後も記事内容としては、インプットしたい内容のアウトプットに絞っていきたいです。

Qiita記事投稿

Qiita 記事を 27 記事投稿しました。詳細は別途、以下の記事に書きました。

ryamate.hatenablog.com

朝活の継続

一日1〜3時間程度の朝活を、4月8日に開始して以降毎日継続更新中です(12月31日で、268日継続)。

学習時間の確保(月100〜120時間)

104 時間学習しました。

SES出向先での実務

システム改修の詳細設計書の作成について、作業しています。

ログ出力のタイミングや内容、プログラムの処理の流れそのものなので、実装を分かっていないと作成できないことが増えてきました。

実装したことの無い自分には難しいですが、分からないことは聞いて確認しながら、とりあえずなるべく早く形にします。


計画 Plan - 1月

実務で必要な技術のキャッチアップについては、 1 月中に計画を立てながら、取り組むことが決まってるところから実行しながら、一旦は走りながら考えます。

おわりに

12 月の振り返りは以上です。

ありがとうございました。