Kashibuchi’s blog

勉強のこと、趣味のこと、日々のこと

知らないことが多すぎる

AIを駆使したシステム開発が盛り上がっています。

現状、今の職場にはその影響は届いていませんが、 数年のうちにいろんなことが変わってしまうかもと感じています。

事業会社は抱えているエンジニアは業務理解があるから雇用すると思いますが、 開発のパートナーを切るだろうなあと思っています。

SESだとかの派遣や委託で仕事をしている人たちはどうでしょう。 切られてしまうのか、技術があったり業務理解が深ければ、AIの使い手として残るのか?

コーディングをほどんどしない、なんて話も聞くけど、 システムの正しさを支えている仕様を決めたり、設計したり、試験を実施して検証したりって部分は必要だろうなあ。 でも、形は変わるだろうけど…。

で、システム開発で生き残っていくとして、 自分の知っている範囲ってなんだ?

  • 一部の業務
    • なんとなく通信系でも工事があれば地域ごとに都合あったり、現場としては結構細かいところを決めないといけなかったり
    • 発注系は会社間の取り決めが業界ルールとしてあったりなかったり
    • 人がそこで仕事をしているということ、目で見て考えて手を動かしたり判断したりしているということを想像すること
  • システム間連携での肝
    • 繋がらない、繋がるけど取り決めた仕様通りでない、仕様通りだがエラーを示す、仕様通りかつ正常、というパターンがあるのでそれを考慮する
      • この程度です。
    • あと、オンプレ環境しか知らない
      • AWSなどのCloudでも原則は同じ部分があるかもしれないけど
  • UIのこと、HTMLのルールのこと
    • 体系立てて学んだことはないけど、https://developer.mozilla.org/ja/ を延々読んでいたりはする。趣味。
    • デザイナーさんが作ったらどうなる?ということは頭に置いておきたいけど、デザイナーもピンキリだしなあ。ボタンをdivで作るなよ。
  • Javaのこと
    • Java8のGoldはとって、21までの変更はある程度キャッチアップしているけども、それでいいことあるかというと…それなりに。
  • 設計のこと
    • UMLを駆使した設計は経験がない
    • ExcelやWordでやる感じだなあ。お客さんとどういう点で握って決めておかないといけないのか、それを踏まえて必要十分な内容をどのように満たすのか。正解がわからない。
    • システム間のアーキテクチャのベターな選択ができない。Cloudがあるとさらにきつい。
    • プログラムのソース単位での関連についてはそれなりに方法論を持っていると自負しているけど、これは個人学習のものだから、他のひととすり合わせしていけるのか?
  • ネットワークのこと
    • 応用情報レベルです
  • DBのこと
    • 応用情報レベルです

ちょっと振り返り。

学習

DDDらしく作るとどうなるのさ? ということで

github.com

やってみてます。

機能は作りかけで不足があるんですが、 DDDとしてパッケージを分割して、依存関係をルールに沿って決めて作ってみています。

感想としてはドメインはアプリケーションやインフラに依存しないので、 役割分担がきれい。 正しいドメインモデルのデータを作る方法はコンストラクタに定義する形になるので、 値の上限下限nullチェックは大丈夫だろうけど、 値の入れ替わりというかつけ間違いがあるとどうにもならんなと。 Stringの引数が何個もあると多分間違うなあって思う。

同じドメインをアプリケーション層のいろんなオブジェクトから呼び出すわけで、 以下に間違いなく値を設定できるのか、というのが重要だろうなあ。

明確な命名、型にできるものは型に。

一人でほったらかしで仕事をすることが多かった

というのも、転職活動の中でフルリモートを新しい環境でやっていくとなると、 顔を合わせずに齟齬なく密なコミュニケーションを求められるんだよなと。

で、改めてわからない時の15分アラートルールをちゃんと認識しないといけないなと。

便りがないのはいい便り、というのは仕事上ではよろしくない。 詰まったら早いうちにアラートを上げる。 時間がかかるならば、途中の進捗を見える化する。

方向性がブレていないのか、レビューを粗いうちにしてもらう。

そして、チャットツールの通知を見落とさないこと。 スタンプを押しただけにして、後で対応するならば、ちゃんとキュー的に管理しておくこと。

優先順位の判断を自分ですること。 基準がなければ判断を仰ぐこと。

反省が多い…。

なんかこう、見本がいない中で自己流でやりすぎたよ。 私。

やりたいこと(2025-06-09)

作りたいあれこれ。

  • Javaベースで指定したフォルダ内のyamlやpropertiesファイルをすべて読み込み、HTMLにマッピングして出力するCLIツール(ゆくゆくはGradleプラグインにしたい)
  • Node.jsベースで、APIモック。
    • JSONファイルをテンプレートに使用して、動的に値をセット可能にする
    • インメモリDBに値を持ち、レスポンスに使用できる。

できるかなあ

DDD参考メモ

パッケージ構成どうしようかな?ということでググった。 超助かります。

zenn.dev

irofさんがつくったやつ。 こんな感じでやっているのか…。

github.com

とにかく一度真似てみよう、ということで、以上。

プログラミング学習やりたいこと

Spring (Spring Boot)

  • 最新バージョンの書き方で実装(CRUD)
  • Spring Securityでログイン処理とセッション管理。
  • JUnitでテスト。POJOとDI対象クラスそれぞれ。
  • MapperのテストをTestContainerを使用してMySQLの体で実施。

Javaのライブラリの活用

  • LogbookでアプリへのIN-OUTのロギング。アプリからAPIを呼び出すロギング。

クライアント側

  • JavaScriptからTypeScriptへの切り替え。主にバリデーションを実装。
  • htmxで非同期にデータを表示する実装。
  • Jestでバリデーションの単体テスト

TypeScriptをやってみる1/n

gihyo.jp

とりあえず、これをやってみる。

WindowsだけどWSLを使わずにNode.jsのパッケージ管理をしたいので、 Voltaを使用する。

C:\Users\kyamin>winget install Volta.Volta
'msstore' ソースでは、使用する前に次の契約を表示する必要があります。
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
ソースが正常に機能するには、現在のマシンの 2 文字の地理的リージョンをバックエンド サービスに送信する必要があります (例: "US")。

すべてのソース契約条件に同意しますか?
[Y] はい  [N] いいえ: Y
見つかりました Volta [Volta.Volta] バージョン 2.0.2
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://github.com/volta-cli/volta/releases/download/v2.0.2/volta-2.0.2-windows-x86_64.msi
  ██████████████████████████████  5.32 MB / 5.32 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

C:\Users\kyamin>

C:\Users\kyamin>volta install node
success: installed and set node@22.15.1 (with npm@10.9.2) as default

C:\Users\kyamin>

とりあえず、ここまで。

自分の経歴・技術をきちんと把握したい

というのも、仕事のモチベーションが落ちているときに自分の身の振りを考えるための指針がなくてぼんやりしているから。

bufferings.hatenablog.com

↑以前この方のブログを読んですごくいいな、真似したいなと思っていたのに2年以上も経ってしまった。

今すぐ書けなくても、後で迷子にならないように備忘録にしておく。