村田 昌知

株式会社Success Holders / テクノロジー事業部Tokyo

村田 昌知

株式会社Success Holders / テクノロジー事業部

没頭力の塊

医療事務からITエンジニアに転職し、SIer企業に勤務しています。 設計・製造をメインで担当しています。 簡易シミュレータ開発にてDB設計やクラス設計を初めて0から検討し、設計段階の難しさを実感しました。

この先やってみたいこと

未来

これまでは既に仕様や期間が決まっているウォーターフォール型の開発しか経験しておらず、今後はより柔軟に対応できるアジャイル開発でドメインエキスパートを巻き込んだ開発を行いたいと思っています。

株式会社Success Holdersの会社情報

株式会社Success Holders3年間

テクノロジー事業部現在

- 現在

開発スキルの向上

  • 対向システムのシミュレータ開発

    【案件概要】 データ連携時に利用しているシステムの廃止に伴い、対向システムとのデータのIF変換を行うシステムの開発 ※自分の担当は、対向システムと模したシミュレータ(REST API)開発となります。 【担当範囲】 要件定義、基本設計、詳細設計、製造、テスト 【主な成果物】 ・基本設計書(機能一覧、DB設計、クラス一覧) ・ソースコード 【工夫・苦労した点】 本案件で初めてアプリケーションの設計から携わり、アーキテクチャや設計手法について調査・理解しながら本シミュレータの設計を行いました。 調査していく中で、似たアプリケーションの設計に用いられているドメイン駆動設計を用いて作成するのが良いのではないかという結論に至りました。 この時点ではドメイン駆動設計に関する知見がなかったため、関連する記事を見ながら見よう見まねで実装していきました。 結果として、必要最低限の機能を実装したプロタイプはドメイン駆動設計ではなく軽量ドメイン駆動設計になっていました。 これにより自分の未熟さを痛感し、アーキテクチャについての知見を深める必要があることを再認識しました。 業務内だけではドメイン駆動設計に関して理解する時間が足りないため、業務外でもドメイン駆動設計に関する書籍・記事・動画からどのような設計・実装になっていくかを学び、軽量ドメイン駆動設計となってしまったアプリの実装を少しずつドメイン駆動設計で行われるような実装に近づけていきました。 また、ドメイン駆動設計の理解を深めていくうちに、テスト駆動開発での製造が不可欠であると感じたため、プロトタイプへの機能追加の際に、書籍・動画を参考にテストから製造するように取り組みました。 その結果、完全なドメイン駆動設計にはなりませんでしたが、責務を意識したクラス設計・実装までは行うことができました。 ただ、ドメイン駆動設計でのモデリングからコードに落とし込む作業が開発初期段階から行えていなかったため、今後開発業務を行う際にはもっと初期段階からドメイン駆動設計を取り入れた設計を行いたいと思いました。 【獲得した知見や経験】 ・Spring Webを用いたREST API開発 ・Spring Data JPAを用いたDB連携 ・Spring Webfluxを用いた大容量ファイル受信 ・OAuth2.0(クライアントクレデンシャル)を用いたWebアプリ開発 ・Apacheを用いたTomcat,keycloakのリバースプロキシ構成の構築 ・ドメイン駆動設計を用いたアプリ開発 ・テスト駆動開発によるアプリ開発

  • システム運用手順書の作成

    【案件概要】 製造が完了しているシステムの運用手順書の作成 【担当範囲】 運用手順書作成 【主な成果物】 ・運用手順書 【獲得した知見や経験】 ・なし

  • 5GCのSMFノードの開発/評価(java)④

    REST通信でのリクエストパラメータ(JSON)の改修 【案件概要】 REST通信時に毎回全データを送信しているため、必要なデータのみに変更する改修 【担当範囲】 要件定義、基本設計 【主な成果物】 ・要件定義書 ・基本設計書 【工夫・苦労した点】 ・要件定義段階では、お客様と現状の問題点と改修案のすり合わせを何度も打ち合わせを行うことで認識の齟齬が生まれないように行いました。 ・基本設計段階では、改修により影響のあるモジュール担当を集めたうえで、今回の改修内容が実現可能なものなのか、また、どのモジュールにどこまでの責務を持たせるのかを話し合いながら作業を進めていきました。 【獲得した知見や経験】 ・基本設計時に考慮すべき影響範囲の確認の重要さ 【使用言語】 Java11 SQL シェルスクリプト Luaスクリプト 【ツール】 AWS kubernetes docker helmチャート eclipse jUnit jacoco TortoiseSVN TortoiseGIt

  • 5GCのSMFノードの開発/評価(java)③

    kubernetesのPod単位CPU使用率取得処理機能 【案件概要】 kubernetesのPod単位でのリソース情報を取得し、メトリクス情報のCPU使用量からCPU使用率を算出する周期処理開発 【担当範囲】 詳細設計、実装・単体 【主な成果物】 ・詳細設計書(クラス設計、シーケンス図、機能詳細) ・ソースコード(実装:約250ステップ、テスト:約1600ステップ) ・単体テスト仕様書、報告書 【工夫・苦労した点】 ・KubernetesのAPI(Java)を用いた開発が初めてだったため、公式のドキュメントや実装例を参考にしながら本案件で必要となる実装を行いました。また、実装にあたって自分よりもJavaに関して精通している方にレビューをいただきながら開発を進めました。 【獲得した知見や経験】 ・KubernetesのAPIを用いた開発 ・ネスト回数を最低限まで減らすといった可読性を意識したコーディング 【使用言語】 Java11 SQL シェルスクリプト Luaスクリプト 【ツール】 AWS kubernetes docker helmチャート eclipse jUnit jacoco TortoiseSVN TortoiseGIt

    -
株式会社エイペックの会社情報

株式会社エイペック2年間

第一開発部

-

各開発工程の理解

  • 他システム間データ連携システムのJava移植

    【担当範囲】 ・現行C++からJavaへ移植 ・HTTP通信機能2件(新規),DB連携機能6件 (移植実績あり)の開発 【主な成果物】 ・基本設計書(1機能あたり約2,3ページ) ・詳細設計書(1機能あたり約5~10ページ) ・ソースコード(実装:約3000ステップ、テスト:約12000ステップ) ・単体テスト仕様書、報告書(1機能あたり約15~30ケース) ・結合テスト仕様書、報告書(1機能あたり約15~20ケース) 【獲得した知見や経験】 ・テストや保守を意識したコーディング 【使用言語】 Java8,SQL 【ツール】 eclipse djUnit A5:SQL MK-2 TortoiseSVN

    -
  • イメージワークフローを用いた業務改善システム開発

    【担当範囲】 ・ITA ・ITA環境のビルド・デプロイ作業 ・ITB・ST環境のデプロイ作業 【主な成果物】 ・テスト障害報告書(Jira) 【獲得した知見や経験】 ・テスト環境へのビルド・デプロイ作業

    -
  • 金融システム保守

    【担当範囲】 ・保守、改修 【主な成果物】 ・障害調査報告書 ・ITAテスト仕様書兼報告書 ・改修後ソースコード 【獲得した知見や経験】 ・保守業務についての理解 【使用言語】 Java5,6 【ツール】 Eclips(Interstage) TeraTerm TortoiseSVN

    -

アプリをインストールして、知り合いの最新の活躍をフォローしよう