アルサーガパートナーズ株式会社 / バックエンドエンジニア
医療施設と器具製造業者間の器具受発注システムの開発
■概要 医療施設と器具製造業者間の器具受発注システムの開発。 ■使用技術 PHP/Laravel/TypeScript/Vue.js/AWS ■チーム情報 5~7人チームの中でバックエンドおよびフロントエンドを担当。 ■ポジション 実装者 ■担当業務 ・DB設計の考慮漏れの指摘 ・PHP + Laravel によるサーバーサイド開発。管理画面/認証/画像アップロード/CSRF対策/N+1問題 ・Vue.js+TypeScriptによるフロントエンドSPA実装。CSSはSCSSを導入 ・コードレビュー ■課題 ー 人員不足によりフロントエンドおよびバックエンドのスケジュール遅延が発生していた。複雑なテーブル設計や実装をすぐにキャッチアップできる即戦力となる人材をすぐにアサインできない状況だった。 ■取り組み ー 画面仕様書やER図、過去のMTG議事録を読み込み、現在の開発状況を整理。初めてコードレビューも担当し、レビュー担当者の負担軽減に貢献した。LaravelによるMVCアーキテクチャ、Vue.jsによるSPA開発においては、書籍やネット上の記事で学習して実務に落とし込み、開発スケジュールの遅延改善に貢献した。 ■担当した機能 画像アップロード ・Minioを採用して、開発環境のS3にデータ保存可能な基盤を構築 ・テストデータをMinioに流し込むスクリプトを作成 ・AWS SDKを用いてS3に画像データをアップロードするAPIを作成 キャッシュによる画像表示 ・「画像データのバイト数が大きい&アクセス数が多い 」という壁をクリアするため、CloudFrontによるコンテンツ配信でキャッシュを実現。 ・環境(本番、検証、開発)ごとに自動でエンドポイントの向き先が変わる設定をした 各種API ・MVCにServive/Repository層が組み込まれたアーキテクチャでAPIを作成 ・データモデルとビジネスロジックの依存関係を分離、ビジネスロジックとデータ入出力の依存関係を分離することで、例えば「ストレージをMySQLからMemcacheに切り替える」という柔軟な対応も可能となった。また、テストも容易になり保守性が高いシステムとなった。 各種ページ ・Laravel Adminによる管理画面の作成 ・Vue.js+TypeScriptによるSPAを実装。VueRouterに不具合が見受けられたので、pageライブラリを用いてルーティングを実現。バックエンド専門ということもあり、フロントエンドとAPIの繋ぎこみおよびバックエンドのレスポンス修正等を全般担当した。