ID:85595さん

キャリアビジョン


この世の全てのシステムを自分で作成することができるほどの技術力と知見。

それぐらいできた方が楽しいから。

プロジェクト経験

2023年/2年以上

情報通信・ネットワーク機器卸売業界向け B2B 製品発注システムの 新規開発および保守運用(アジャイル開発)

# プロジェクト経験概要 ## 業務システムの機能開発・パフォーマンス改善 Javaを用いた業務システムの開発に従事。発注一覧画面をはじめとする業務機能の開発・改善を担当しました。 主に、非同期処理の導入によるUX改善、検索機能の実装、SQLのパフォーマンス最適化、API検証、単体・結合テストなどを実施しました。 単に機能を実装するだけでなく、ユーザーの操作性、システムの応答性能、保守性、品質を意識した開発に取り組みました。 **使用技術** - バックエンド:Java、Spring(@Async)、MyBatis(@SelectProvider) - フロントエンド:Thymeleaf、JavaScript、jQuery、Ajax - データベース:SQL - 開発・テストツール:Postman **担当工程** - 機能設計・実装 - パフォーマンス改善 - テスト仕様書作成 - 単体・結合テスト - テストエビデンス作成 # チーム情報 - **チーム構成**:【PM 1名、開発メンバー 3名、別チーム含めると10名ほど】 - **自身の役割**:アプリケーション開発担当 - **チーム全体の担当範囲**:【要件定義から結合テストまで一気通貫】 - **自身の担当範囲**:非同期処理の実装、画面制御、動的SQLの実装、SQLパフォーマンス改善、API検証、テスト設計・実施 # 開発・実装内容① 非同期処理の導入によるUX改善 ### 【概要・開発した機能】 大量データを扱う機能において、Javaの非同期処理とAjaxを組み合わせ、処理中も画面操作を継続できる仕組みを実装しました。 ### 【課題・問題点】 大量データの処理を同期的に実行する構成では、バックエンド側の処理完了までユーザーを待たせることになり、画面操作が制限される問題がありました。 特に処理時間が長い場合、ユーザーの待機時間が増加し、操作性が低下することが課題でした。 ### 【打ち手・使用した技術】 自身が以下の実装を担当しました。 - Javaの`@Async`アノテーションを用いて、時間のかかる処理を非同期で実行する仕組みを導入 - 重い処理の完了を待たずにHTTPリクエストへ応答する構成に変更 - フロントエンドではjQueryのAjax通信を使用し、画面全体が処理完了を待つ状態を回避 - 非同期処理の完了後に画面を更新し、最新のデータを反映する制御を実装 バックエンド側の処理方式とフロントエンド側の両方を見直すことで、ユーザーが処理完了を待たずに操作できる構成としました。 【成果】 重いバックエンド処理による画面操作の待機を軽減 ユーザーが処理中も画面操作を継続できるよう改善 非同期処理の導入によって体感的なレスポンスを向上させ、操作性を改善 開発・実装内容② 画面特性に応じた同期・非同期通信の実装 【概要・開発した機能】 Thymeleafによるサーバーサイドレンダリングと、Ajaxを利用した非同期通信を組み合わせ、機能特性に応じた画面制御を実装しました。 【課題・問題点】 画面表示やデータ更新をすべて同期的に処理すると、一部のデータ更新だけが必要な場合でも画面全体の再表示が発生し、操作性が低下する可能性がありました。 一方、すべての処理を非同期化すると、画面状態の管理が複雑になるため、機能に応じた通信方式の選択が必要でした。 【打ち手・使用した技術】 Thymeleafを使用したサーバーサイドレンダリングによる画面表示を実装 非同期通信が適した処理にはjQueryのAjaxを使用 処理内容に応じて同期・非同期の通信方式を使い分け データ更新後の画面反映を考慮した制御を実装 【成果】 必要な箇所に非同期通信を適用することで、不要な画面遷移や待機を軽減 既存のサーバーサイドレンダリング方式を活用しながら、画面の操作性を改善 処理の特性に応じた実装方式を選択し、操作性と実装の複雑さのバランスを考慮した構成を実現 開発・実装内容③ @SelectProviderを活用した動的SQLの実装 【概要・開発した機能】 複数の検索条件を組み合わせる検索機能について、MyBatisの@SelectProviderとSQL Builderを活用した動的SQLの生成処理を実装しました。 【課題・問題点】 検索条件の組み合わせによって実行するSQLが変化するため、条件ごとにSQLを個別定義すると、コードの重複や保守性の低下につながる課題がありました。 また、検索条件が追加・変更された際にも、既存の検索ロジックを修正しやすい構成が求められました。 【打ち手・使用した技術】 MyBatisの@SelectProviderを使用し、Java側でSQLを動的に生成する仕組みを実装 SQL Builderクラスを活用し、検索条件に応じてSQLの構成要素を組み立てる処理を実装 検索条件の組み合わせに対応できるよう、条件分岐を整理 XMLへのSQL記述ではなく、Javaコード内でSQL生成ロジックを管理する構成を採用 検索条件の変更や追加を考慮し、SQL生成処理を一元的に管理できる設計を意識しました。 【成果】 複数条件を組み合わせた柔軟な検索機能を実現 SQL生成処理をJava側に集約し、検索条件の変更に対応しやすい構成を実現 業務要件に応じた動的SQLの実装を通じて、複雑なデータ取得処理に対応 開発・実装内容④ SQL最適化による画面レスポンス改善 【概要・開発した機能】 発注一覧画面など、大量データを扱う機能に対してSQLクエリの最適化を実施し、画面レスポンスの改善に取り組みました。 【課題・問題点】 データ件数が多い環境では、SQLによるデータ取得処理が画面表示速度に影響するため、データベースへの負荷とレスポンスの改善が課題でした。 特に一覧画面は利用頻度が高く、データ取得処理の効率がユーザーの操作性に直結するため、SQLの見直しが必要でした。 【打ち手・使用した技術】 対象画面で使用されるSQLクエリを確認 データ取得処理における改善可能な箇所を検討 SQLクエリを修正し、データ取得処理の効率化を実施 大量データを扱う場面を考慮して、画面レスポンスの改善に取り組んだ 具体的な改善内容:【要記入:どのSQLを、どのように変更したか】 【成果】 SQLの最適化により、データベース負荷の軽減と画面レスポンスの改善を実現 大量データを扱う業務画面の表示性能向上に貢献 改善結果:【要記入:改善前後の実行時間、対象データ件数、確認方法など】 開発・実装内容⑤ Postmanを活用したAPI開発・検証の効率化 【概要・開発した機能】 API開発において、Postmanを活用した仕様確認・動作検証を実施し、フロントエンドとバックエンドの開発を効率的に進めました。 【課題・問題点】 フロントエンドとバックエンドが連携する機能では、APIのリクエスト・レスポンス仕様に認識の相違があると、結合時の不具合や手戻りが発生する可能性がありました。 また、画面からの操作だけでAPIの動作を確認すると、検証に必要な準備や操作が増える課題がありました。 【打ち手・使用した技術】 Postmanを活用してAPIのリクエスト・レスポンスを確認 API単位で動作検証を実施し、画面を介さずにバックエンドの処理を検証 APIの仕様を早期に確認し、フロントエンド実装との認識差異を減らすことを意識 APIの検証と画面開発を並行して進められるよう、開発作業を効率化 【成果】 API単位での動作確認により、問題の切り分けを容易にした フロントエンドとバックエンドの連携時に発生する手戻りの抑制に貢献 仕様確認と検証を効率化し、開発作業の円滑化に寄与 開発・実装内容⑥ テスト設計から実施までの品質管理 【概要・開発した機能】 担当機能に対して、テスト仕様書の作成、単体・結合テスト、テストエビデンスの作成まで一貫して担当しました。 【課題・問題点】 業務システムでは正常系の動作確認だけでなく、入力値の不備やAPIエラーなど、異常系を含めた品質確認が必要でした。 特にAPIと画面が連携する機能では、バックエンド単体の動作とフロントエンドを含めた一連の動作を確認することが求められました。 【打ち手・使用した技術】 機能仕様に基づくテスト仕様書を作成 正常系に加えてAPIの異常系を考慮したテストケースを設計 単体テスト・結合テストを実施 テスト実施結果を確認し、エビデンスを作成 担当機能について、実装から検証まで一貫して対応 【成果】 正常系・異常系の両面から機能の動作を確認 テスト仕様書とエビデンスを整備し、検証内容を追跡・確認できる状態を構築 実装からテストまで一貫して担当することで、品質確保に貢献

プロジェクトカテゴリ
担当工程
経験した職種・役割
あなたが実際に使っていた技術
このプロジェクト詳細は公開されていません

マネージメント能力

アピール項目


アウトプット

GitHub アカウント
未入力です
Qiita アカウント
未入力です
Zenn アカウント
未入力です
Speaker Deck アカウント
未入力です
SlideShare アカウント
未入力です
特にアピールしたいアウトプット
未入力です

今後、身につけなければいけないと思っている技術は何ですか?

awsなどのクラウドの構築。 RAGやLLMの構築。 生成AIを活用したAI駆動開発。

あなたが一番パフォーマンスを出せるのはどんな環境ですか?

成果物納品型で自由に開発できること。 フレックスかつリモートができる環境。 ただしチームの場合は、そのチームで一番パフォーマンスが出ることを第一にしたい。(私がリーダーの場合、メンバーのために出社したいなど)

生成AIの活用状況

日常的な情報収集・業務活用
ChatGPTやGeminiなどのチャットツールを、情報収集、ドキュメント作成、翻訳に日常的に活用
業務でコード補完系の生成AIを活用
GitHub Copilot等のコーディング支援ツール
業務でコード生成、コーディングエージェント系の生成AIを利用
コードレビュー、テストコード生成、デバッグに生成AIを活用
サービス・プロダクトへの応用
既存のサービスやプロダクトに生成AI(API利用など)を組み込み、LangChainやLlamaIndexなどのフレームワークを使った開発経験
生成AIをコアとした開発
生成AIを主要技術としたサービス・プロダクト・機能の企画や、RAGなどの高度な手法を用いた開発経験
モデルの構築・研究開発
LLMのファインチューニングや、独自モデルの構築経験

キャラクター

直近で一番やりたいこと
技術を極めたい
好きなスタイル
一人で黙々
どちらかといえば一人で黙々
どちらともいえない
どちらかといえばみんなでワイワイ
みんなでワイワイ
好きな規模
小さい会社
どちらかといえば小さい会社
どちらともいえない
どちらかといえば大きい会社
大きい会社
自信を持って人より秀でていると言える点
学習能力 / 調整力 / 問題解決力
スキルのタイプ
ゼネラリスト
どちらかといえばゼネラリスト
どちらともいえない
どちらかといえばスペシャリスト
スペシャリスト
得意なフェーズ
0 → 1
どちらかといえば0 → 1
どちらともいえない
どちらかといえば10 → 100
10 → 100
会社を選ぶ一番の基準
会社のブランド・知名度
やりたくない分野
金融 / 医療・介護
その他の特徴
使用言語にはこだわらない / 新しい技術はとりあえず試す / 起業/創業期のベンチャーにいた
その他のやりたいこと・やりたくないこと

・やりたいこと
生成AIを使った開発を絶対にしたい。
AI駆動開発やバイブコーディングの経験があるので、生成AIでできることとできないことのナレッジがあり、業務効率化を促進していた。

・やりたくないこと
生成AIが使えない。
客先常駐。

やりたい事

手を動かして設計してコードを書きたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
価値あるプロダクトを作り成長させたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
学び続けて技術力でプロダクトに貢献したい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
意義があることや社会に貢献できる仕事がしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
人や計画の調整・マネジメントをしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
レガシーなシステムの保守・運用・改善をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
企画や仕様を考えるところから関わりたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
業務効率を改善して一緒に働く人のためになりたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
全社横断的な共通基盤作りや強化をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
組織や文化を作る・成長させる仕事をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい

基本プロフィール

年齢
今年で20代後半
好きなテキストエディタ
サクラエディタ
希望勤務地
埼玉県 / 東京都 / リモート勤務
常時リモートが必要
希望年収
600万円
ご意見箱

要望、不具合報告、使いづらい点や感想など、お気軽にお寄せください。
いただいたご意見は、今後のサービス向上に活用させていただきます。

なお、このフォームは受付専用のため、返信を行っておりません。
返信を希望する場合はお問い合わせよりご連絡ください。

  • {{error}}
転職ドラフトを友人や同僚に薦める可能性はどのくらいありますか?