フロント刷新から設計手法アップデートまでバランス感覚を活かして幅広く推進

PROFILE

三田 英一

・2014年ラクス中途入社以降、楽楽明細の開発に従事。認定スクラムマスター。
・応募を考えている方へ「技術が好きな人でしたら、技術調査や技術推進を一緒にやっていきたいです。バランスを取りつつ技術の新陳代謝も進めたいので、ご自身のナレッジを是非活かしていただきたいと思います。」

 テックリード、技術スペシャリストへのインタビューを通じて、ラクスの日々の技術との向き合い方や、最近注力している実務について知っていただくシリーズです。今回は、楽楽明細のアーキテクトとして活躍中の三田さんにインタビューしました!

現在の組織内でのミッションを教えてください。

 楽楽明細チームでアーキテクトをしています。開発を俯瞰的に見る立ち位置で、新しい技術を導入したり、専門性を活かした開発支援を行っています。
スクラムマスターとして、チーム開発が円滑になるような動きをすることもあります。

楽楽明細のPDF新機能をリリース

最近担当した新規開発について教えてください。

 楽楽明細のPDF分割機能を開発し、実装にも関わりました。これはPDFを任意条件で分割できる新機能です。PDFはバリエーションがすごく多く、要求される処理量も重たいので、カリカリパフォーマンスチューニングをしないと動かないのが大変でした。

 PDFは作成ソフトによっていろいろなクセがあります。例えば、作成時の回転属性を処理しないと、PDFが意図しない向きで表示されてしまったり。画像の解像度、サイズの調整など、技術そのものよりも考慮すべきパターンが多いのも難しさでした。

TypeScript移行やGraphQLなど、改善へ向けた動きも

最近かかわった技術課題についても教えていただけますか。

 大きなものだと、楽楽明細のTypeScript移行があります。移行すると決定した後、なるべく不具合を出さないように進める工夫をしました。
 ts-migrateというAirbnbが公開しているツールを用いて機械的にすべてTypeScript化を行ったあと、手動で直すというステップをとりました。比較的短時間で不具合もなく終わらせることができたと思います。少ない不具合で完了できた背景としては、ツールをうまく使えたことが大きいですね。あと既存ソースの粗で気になる部分もありましたが、そこの修正は無理に行わない決定をしたのも良かったと思います。今後新しい機能はTypeScriptで実装できるようになっています。

「TSに移行する意思決定の背景は?」

 Javaエンジニアだからというのもあるかもしれませんが、そもそも型がないのが不安というのはありましたね。あとはReactで開発する際も型の恩恵を受けることができます。
 TypeScript導入はレガシー改善と相性がいい面もあって、JavaScriptと併用できるのでドラスティックに変えなくても大丈夫という利点があります。普通言語の切り替えはスパッとやらないといけませんが、TypeScriptとJavaScriptは混在していても機能するので、過渡期を持たせながら改善するということができます。
 導入にあたってはあまり悩みはなかったです。まあ使うよねという感じで、一般的にTypeScriptを入れる際のモチベーションに近いかと思います。

「こういった改善は今後も予定していますか?」

 無理ない範囲で毎年一つくらい新しい技術を導入していきたいですね。毎年何かしらテーマを決めてやっている感じで、今回のTypeScript移行もその一つとなります。あまり長期的な技術ロードマップを設定しても市場や技術環境は変わってしまうので、四半期の目標設定タイミングの時などを活用してテーマ設定しています。

 いまはちょうどGraphQLを試しています。プロダクトでは直接使っていないのですが、調査のために複数顧客のシステム設定を横断的に確認する必要があり、もともとはSQLを投げていたところをGraphQLを入れてからは楽になりました。GraphQLはもともと新技術を導入したり、会社全体の技術力を底上げすることがミッションの「技術推進課」が去年取り組んでいたテーマです。技術推進課が調査した結果を見て楽楽明細チームにも取り込んでいきました。技術推進の取り組みには私も関わったり、楽楽明細の開発チームからアプローチして情報を得たりしています。

チームを育てながら設計手法も洗練させていく

 楽楽明細はチームが急成長していて、現在開発者が15人います。若手中心なので、自走しながらいろいろな経験を積んでスキルを伸ばし、チームビルディングしていくことを目指しています。技術スペシャリストにはエキスパート育成のミッションもあり、チーム内でSpring、React、ドメイン駆動設計(DDD)をテーマに勉強会などの学習機会を作ったりもしています。

「DDDは最近話題になることが増えていると思います。」

 楽楽明細も去年くらいから取り入れています。もともとMVCの大きなロジッククラスがあったんですが、共有しづらいとか、大事なロジックが点在していて辛いところもあったので取り入れることにしました。
 DDDを開発に浸透させるには、仕様調整と実装の二つのレベルがあると思います。最初はエリック・エバンスの本読んだりして、そこからクラス設計の話に入っていきました。もともとStrutsで作っていて、クラス設計があまりないので最初は苦しみました。最近は実装レベルでも根付いてきたと思います。

ありがとうございました!今後もまた新しい動きがありましたら教えてください。

Back to list