AWS Certified Cloud Practitioner
AWSに関しての知見を深めるため
400万人が利用する会社訪問アプリ
株式会社Success Holders / テクノロジー事業部
医療事務からITエンジニアに転職し、SIer企業に勤務しています。 設計・製造をメインで担当しています。 簡易シミュレータ開発にてDB設計やクラス設計を初めて0から検討し、設計段階の難しさを実感しました。
これまでは既に仕様や期間が決まっているウォーターフォール型の開発しか経験しておらず、今後はより柔軟に対応できるアジャイル開発でドメインエキスパートを巻き込んだ開発を行いたいと思っています。
【案件概要】 データ連携時に利用しているシステムの廃止に伴い、対向システムとのデータのIF変換を行うシステムの開発 ※自分の担当は、対向システムと模したシミュレータ(REST API)開発となります。 【担当範囲】 要件定義、基本設計、詳細設計、製造、テスト 【主な成果物】 ・基本設計書(機能一覧、DB設計、クラス一覧) ・ソースコード 【工夫・苦労した点】 本案件で初めてアプリケーションの設計から携わり、アーキテクチャや設計手法について調査・理解しながら本シミュレータの設計を行いました。 調査していく中で、似たアプリケーションの設計に用いられているドメイン駆動設計を用いて作成するのが良いのではないかという結論に至りました。 この時点ではドメイン駆動設計に関する知見がなかったため、関連する記事を見ながら見よう見まねで実装していきました。 結果として、必要最低限の機能を実装したプロタイプはドメイン駆動設計ではなく軽量ドメイン駆動設計になっていました。 これにより自分の未熟さを痛感し、アーキテクチャについての知見を深める必要があることを再認識しました。 業務内だけではドメイン駆動設計に関して理解する時間が足りないため、業務外でもドメイン駆動設計に関する書籍・記事・動画からどのような設計・実装になっていくかを学び、軽量ドメイン駆動設計となってしまったアプリの実装を少しずつドメイン駆動設計で行われるような実装に近づけていきました。 また、ドメイン駆動設計の理解を深めていくうちに、テスト駆動開発での製造が不可欠であると感じたため、プロトタイプへの機能追加の際に、書籍・動画を参考にテストから製造するように取り組みました。 その結果、完全なドメイン駆動設計にはなりませんでしたが、責務を意識したクラス設計・実装までは行うことができました。 ただ、ドメイン駆動設計でのモデリングからコードに落とし込む作業が開発初期段階から行えていなかったため、今後開発業務を行う際にはもっと初期段階からドメイン駆動設計を取り入れた設計を行いたいと思いました。 【獲得した知見や経験】 ・Spring Webを用いたREST API開発 ・Spring Data JPAを用いたDB連携 ・Spring Webfluxを用いた大容量ファイル受信 ・OAuth2.0(クライアントクレデンシャル)を用いたWebアプリ開発 ・Apacheを用いたTomcat,keycloakのリバースプロキシ構成の構築 ・ドメイン駆動設計を用いたアプリ開発 ・テスト駆動開発によるアプリ開発
【案件概要】 製造が完了しているシステムの運用手順書の作成 【担当範囲】 運用手順書作成 【主な成果物】 ・運用手順書 【獲得した知見や経験】 ・なし
REST通信でのリクエストパラメータ(JSON)の改修 【案件概要】 REST通信時に毎回全データを送信しているため、必要なデータのみに変更する改修 【担当範囲】 要件定義、基本設計 【主な成果物】 ・要件定義書 ・基本設計書 【工夫・苦労した点】 ・要件定義段階では、お客様と現状の問題点と改修案のすり合わせを何度も打ち合わせを行うことで認識の齟齬が生まれないように行いました。 ・基本設計段階では、改修により影響のあるモジュール担当を集めたうえで、今回の改修内容が実現可能なものなのか、また、どのモジュールにどこまでの責務を持たせるのかを話し合いながら作業を進めていきました。 【獲得した知見や経験】 ・基本設計時に考慮すべき影響範囲の確認の重要さ 【使用言語】 Java11 SQL シェルスクリプト Luaスクリプト 【ツール】 AWS kubernetes docker helmチャート eclipse jUnit jacoco TortoiseSVN TortoiseGIt
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
村田 昌知さん
のプロフィールをすべて閲覧
過去の投稿を確認する
共通の知り合いを確認する
村田 昌知さんのプロフィールをすべて見る
AWSに関しての知見を深めるため