Nao000のぶろぐ

蝶を追っている少年になりたい

ブログ開設から2年経過したのでこの1年を振り返る(2020/04 ~ 2021/04)

ブログ開設から2年経過したのでこの1年を振り返る(2020/04 ~ 2021/04)

前回の振り返りと今回の振り返り

「〇〇していればよかったかも」ということ、「これから〇〇しようかと思うこと」などを整理して振り返ります

以下は前回の振り返りでの「〇〇していればよかった」なことです

  • ユニットテスト可能な設計になっていればよかった
    • 今の状況は密結合なメソッドが9割を締めてる感覚
  • 1日のどこかに僅かでも投資の時間を意識すれば幾分か良い状況だったのかもしれない

https://www.nao000.com/one-year-back-2019-2020/

ユニットテスト可能な設計を行いました

客観的な規模の大小は不明ですが、3つのプロジェクトの設計を行いました。どれもユニットテスト可能な設計を行うことができました。具体的には「依存性の注入」「エンティティをオブジェクトにマッピングして、エンティティが持つ振る舞いを定義」「部分的なViewで表示可能なデータを制御する」の3つを行いました。

「依存性の注入」「エンティティをオブジェクトにマッピングして、エンティティが持つ振る舞いを定義」では主にユニットテスト可能性を高くするために行いました。正直うまく行っているかはある程度運用していかないと不明です。

「部分的なViewで表示可能なデータを制御する」についてですが、業務で扱うプログラミング言語はPHPであり、配列データを使用することが多くありました。ですが、1つの配列に定義するデータがいつの間にか肥大化してしまい「このViewでは使用するが、こっちのViewでは使用しない」様な配列データがいつの間にか出来上がっていることが多々ありました。保守をしていく中で地味に辛かったので表示するデータをある程度制御できるようにしました。具体的にはオブジェクトを渡してView上ではメソッドでデータを表示するようにしました。こうすることで「このViewは何かしらのオブジェクトを渡すんだな」となるのを期待しています。

僅かでも投資の時間を意識する

今までも行っていましたが引き続き技術書やネットからの情報収集を行いました。振り返るとソフトウェアテストに関する情報を追い求めています。ネットの波をさまよっていると新しいプログラミング言語・開発手法・アプリケーション設計・マイクロサービスなどナウでヤングな情報が目に入りますが、業務を行っている中では「どう考えてもソフトウェアテストが最優先事項だよね」と考えています。というのも現在自分が開発・保守を行っているプロジェクトにはユニットテストを実行可能にすることまでは出来ましたが肝心のユニットテストのテスト件数はほぼ無い状態です。ユニットテストを実行可能にすることでさえバージョンの関係で非常に苦労しました。

現在はフロントエンドの環境を開発者間で整えるよう作業を業務の合間に行っています。現在のプロジェクトではサーバーサイドとフロントエンドの環境の掃除を行うだけでもソフトウェアの品質は上がると思うので目下の目標は掃除ですね。

次回の目標(2021/04 ~ 2022/04)

すでに4月は終わっていまいましたね。今の所の次回の目標です。

  • ITシステム化についてじっくり現実を観察してみる
  • 業務においてのアイデアをなるべく発信してみる

ITシステム化についてじっくり現実を観察してみる

ここ1,2週間のマイブームですが日常のITシステムを観察すると結構面白いです。ITシステムになっているものは基本的に生身の人間が頑張れば置き換え可能なものと思っています。

例えとして求人サイトを考えます。求人サイトは複数の会社が待遇や勤務地・求める人材像などの情報を公開し、求職者が参考にして応募します。これは求職者が物理的に会社に訪れて待遇や勤務地・求める人材像などを確認するなどして置き換え可能になります。

ここで求職者と会社の間で雇用契約を結ぶまでを考えます。

稚拙ではありますが、雇用契約が結ばれるまでの流れを段階的に分解していくと以下のようになると思います。

  1. 求職者が会社の存在を知る
  2. 求職者が会社の場所を知る
  3. 求職者が会社への地図を知る
  4. 求職者が会社へ実際に訪れて待遇・求める人材像などを確認する
  5. 会社が求職者の履歴書・職務経歴書などで能力を確認する
  6. 求職者と会社の間で実際の待遇などの確認を行う
  7. 求職者と会社の間で契約を結ぶ

よくある求人サイトは上記の 1~5 の手順をITシステム化した結果だと私は考えています。

こんな面倒な段階をITシステム化することで非常に簡単に段階を踏めるようになるってスゲェーと思うと、日常のITシステムを観察してしまいます。

大学の学部の研究室でも同じように現実を観察して問題点を上げることを行っていましたが、当時の自分には理解できていませんでした。めっちゃしんどかったです。

業務においてのアイデアをなるべく発信してみる

何かアイデアがあっても自分の中で完結しがちですが、そのアイデアを外に発信してみようと思います。もちろん今までも発信することはありましたが、それでも「今は忙しい案件あるからなー、言っても流れるだけだしなー」となることが多くあります。

もしかしたら自分のアイデアが想像以上に効果あるかもしれないのでなるべく発信しようと思います。

終わり

おわり