一休.com Developers Blog

一休のエンジニア、デザイナー、ディレクターが情報を発信していきます

宿泊サイトのPCリストを ASP.NET Web Forms から Go + Nuxt でリニューアルしました

こんにちは。 一休.comの開発基盤を担当しています、akasakasです。

宿泊サイトのPCリストページを ASP.NET Web Forms から Go + Nuxt でリニューアルしたお話をさせていただきます。

詳しいお話をする前に:PCリストページってどこ?

こちらになります

https://www.ikyu.com/tokyo/140000/

f:id:akasakas:20210722164619p:plain

宿泊PCサイト(検索導線)の問題点

ASP.NET Web Forms のレガシーアーキテクチャによる開発生産性低下

一休.comのほとんどはASP.NET Web Formsベースの独自フレームワークで構築されています。 大規模リプレイスをしたのが2009年頃なので、宿泊サービスを10年以上支えてきてくれました。 それ故、継続して開発をしづらくなってきたというのがあります。

似たような画面があり、修正コストが高い

PCリストには条件検索画面とキーワード検索画面の2つがありました。 見た目は似ているが、別ページなので、機能差分が発生していました。

f:id:akasakas:20210722164728p:plain

Go + Nuxtでリプレイス

Goの選定理由

Goが比較対象(.NET Core, Python)と比べて、総合的なバランスが最も良いと感じたからです。

  • Go
    • ○:パフォーマンス、クロスプラットフォーム、開発環境の成熟度など、バランスが良い
    • ×: Viewを書く言語としてはイマイチ(html/templateとRazorを比べると、圧倒的にRazorの方が良い)
  • .NET Core
    • ○:宿泊メンバーの既存スキルを活かしやすい
    • ×:採用面が弱い
  • Python
    • ○:レストランで採用している
    • ×:パフォーマンスは.NET CoreやGoに見劣りする

Nuxtの選定理由

  • レストランサイトで採用している
  • 公式の日本語ドキュメントが整備されている
  • 技術的ジャンプが少なくモダン開発を始められそう

画面統合でシンプルに

  • 余計な修正コストがかからないように
  • 機能差分が発生しないように

するために、画面統合することでシンプルにしました。

f:id:akasakas:20210722164847p:plain

Before/After

Before

トップページからの検索が2つ(キーワード・条件検索)分かれていたため、修正コストが高くなっていました。

f:id:akasakas:20210722164950p:plain

After

統合したことにより、導線もシンプルになりました。

f:id:akasakas:20210722165014p:plain

現在の移行状況

現時点でのGo+Nuxtにリプレイス済みのページは以下になります。

  • SD トップページ
  • PC リストページ

f:id:akasakas:20210722171327p:plain

目標

中期的には以下を目標としています

  • Go+Nuxtで主要導線をリプレイスすること
  • 主要画面の統廃合

f:id:akasakas:20210722171345p:plain

まとめ

宿泊サイトを ASP.NET Web Forms から Go + Nuxt に移行中です。 一緒にGo + Nuxt で一休宿泊サイトを作り直していきましょう。

hrmos.co

hrmos.co