【社員紹介#13】少しイケてる!クラウドサービスを支えるWebアプリケーション開発のお話(プロダクト・サービスエンジニア )
※ この記事は SDPF クラウド開発エンジニア紹介シリーズの1記事です
こんにちは!NTT コミュニケーションズに出向しフロントエンドエンジニアをしている烏山です。
SDPF クラウドサービスのインターフェース開発業務に携わっています。
今回は、クラウドサービスを支える Web アプリケーション開発に興味のある学生・エンジニアの方向けに業務内容や使っている技術についてお話します!
SDPFのクラウド開発が何かについては以下のページをご覧ください!
プロフィール
2022年度入社
情報ネットワーク工学専攻修士卒
学生時代はどんなことをやっていましたか?
データ解析開発の研究室で不均衡データにおける二値分類の拡張モデルについて研究していました。
プライベートでは Web アプリの開発やゲームのアシストツールを作成し、インターンやハッカソン、CTF などのイベントにも参加していました。
入社のきっかけは?決め手は?
モブプロイベントや就業型インターンなどの学生向けイベントに参加したことがきっかけでした。 イベントを通して新しい技術への挑戦のしやすさや技術力の高いチームメンバーを直接知ることができ、この環境で技術力を高めたいと思い入社を決めました。
現在の業務内容は?
NTT Com が提供するクラウドサービスの申し込みの Web 画面と申し込みの承認を行う管理者画面の開発を担当しています。
以前は、入力チェックのないエクセルシートを使用して申込を受け付けており、担当者が申請内容を目視で確認していました。担当者の負荷が軽減できるよう、Web 画面上で入力チェックを自動で行い画面操作のみで申請が可能なシステムを開発しています。
チームではバックエンドとフロントエンドの両方を開発しており、バックエンドの開発では Go 言語を使用しています。私が担当しているフロントエンドの開発では主に TypeScript + Vue.js / Nuxt.js を使用しており、どちらもモダンな技術を活用しています。実際のフロントエンドの開発は、新しい機能の追加毎にデザインツール Figma で画面設計を行い、ロジックとUIの両方の実装を行います。ロジック実装では、バックエンドで用意した API 仕様書を OpenAPI Generator で TypeScript 用に作成した SDK を使用しています。UI の実装では、Vue 向けの UI コンポーネントの PrimeVue を使って Figma で作成した画面に沿って作業を進めています。また、用意された UI Component の機能が足りない場合はラップし使いやすいコンポーネントを自分たちで作ることもあります。
チーム内のブランチ運用について、Gitflow を採用しており新機能の追加を行う際に Feature ブランチを切ってそのブランチで作業を行っています。新機能の実装が終わったら PR を作成後、チームメンバー2名のレビューを受けた上でマージを行っているので、指摘や改善案などが出てきて自分のソフトウェアスキル向上にも繋がっています。
Gitflow を参考にしていて下の画像のようなブランチ運用です!
また、CI/CD にも重点を置いており、フォーマットのチェック、単体テスト、E2E テスト、ビジュアルリグレッションテストまでを自動化し、開発されたコードの品質を高い水準で維持しています。社内で整備されているアプリケーション基盤にデプロイしているため、私のチームではアプリケーション開発のみに注力することができる環境です。
下の図は実際のサービスのアーキテクチャ図で、マイクロサービス設計を意識しお客様に申し込みしていただくメニューを分けて実装を行っています。そのため、今後新しくメニューを追加したいとなるような場合でも図のように横に増やすだけで実現することが可能となっています!
入社してよかったことは?
一緒に働いて楽しいと思える社員が多いことです。 技術力があるのはもちろんのこと、ISUCON などのエンジニアイベントに積極的に参加する人が多い印象です。会社では、イベントに参加するだけでなく、企画にも携わることができます。私が実際に携わったものとしては、学生さんとチームを組んで一緒にお題に挑戦するモブプロイベントがあります。「どういった実装にしよう?」「どう名前をつけていこう?」と普段無意識にやっていることを言語化し相手に伝わるようコミュニケーションをしたり、お題を1つ1つクリアしていきみんなで喜びを分かち合い一体感を感じることができていい経験だと思っています!
モブプロイベントについては開発者ブログに載ってあります!
どんなところにやりがいを感じますか?
チーム内で自分の改善案が取り入れられてチームに貢献した時です。以前までしていなかったことを新しくチーム内で取り入れることは難しいと考えています。まず、チームメンバー全員が「これをやることで自分にメリットがある」と意識しなければ受け入れられないと思っており、仮に受け入れられたとしても継続はしないと思っています。
具体的には、コードのスタイルを自動化し一貫性と可読性をもたせたこととテスト時間の改善です。どちらもレビューを行う時の負担の軽減や時間の短縮とメリットになることで、チームメンバーに限らずレビューの精度があがることや実装コードを直ぐにレビューに出すサイクルが早くなることでサービスの品質向上にも繋がっていると思います!
学生へのメッセージ
会社をデータだけで見ていると、働くことのイメージがあまりできないかもしれません。研究をしながらだと大変かもしれませんが、実際に社員と触れ合えるようなインターンシップやイベントへの参加を勧めたいです!
私たちの会社でも定期的にイベントを開催していますので、ぜひ参加していただければと思います!
なお、この記事に興味を持った人は、2024 年夏の現場受け入れ型インターンシップポストの「B29.エンタープライズ向け大規模クラウド/ネットワークサービスを支える共通機能のソフトウェア開発」にてポストを出しておりますので、奮ってご応募ください。
moreドコモでは、採用チームに聞きたいことを募集しています!
以下のアンケートより気軽にご連絡ください!
▼採用チームに答えてほしい内容アンケートフォーム▼
【問い合わせ先】
NTTドコモ 新卒採用チーム
https://mypage.nttdocomo-fresh.jp/dcm_group25/
マイページのお問い合わせよりご連絡ください。