ニフティ不動産のWEBサイト開発についての紹介
こんにちは!エンジニア採用担当の松居です。
ニフティライフスタイルでは、エンジニアがさまざまな技術スタックや手法を活用しながら日々の開発に取り組んでいます。このテックブログでも、その取り組みを随時ご紹介していきたいと考えています。当社の開発スタイルや技術に興味を持っていただけるとうれしいです!
今回は「ニフティ不動産」のWEBサイト開発について紹介します!
目次
ニフティ不動産について
ニフティ不動産は、有名不動産ポータルに掲載されている物件情報1,500万件以上を束ねる「不動産物件情報検索プラットフォーム」です。間取りや地図、こだわり条件など、いろんな探し方ができ、豊富な情報の中からまとめて検索できることが特長です。
技術スタック
- 言語・フレームワーク:Kotlin / Spring Boot / Thymeleaf / HTML / CSS / JavaScript
- ユニットテスト:JUnit5
- Linter:detekt
- その他ライブラリ:jQuery / TypeScript / Sass
- アーキテクチャ:Spring MVC
- インフラ:AWS
- CI/CD:GitHub Actions / AWS CodePipeline
- 分析:Treasure Data / Redash / Amazon Athena / AWS X-Ray / Google Analytics
ニフティ不動産 WEBサイト開発で取り組んでいること
Blue/Green Deployによるデプロイ戦略
「Blue/Green Deploy」とは、稼働中の本番環境とは別に新しい本番環境を構築し、接続先をロードバランサー等で切り替えることでリリースするデプロイ方式です。
ニフティ不動産のWEBサイトは、GitHub Actions と AWS CodePipeline を利用して、Blue/Green Deploy環境を構築しています。
メリット
- 稼働中の環境に影響を与えずに、本番環境と同等の環境で最終確認ができる
- リリース後問題があった場合、接続先の設定を切り戻すだけでリカバリーが可能
これらのメリットにより、安心してリリースできる環境になっているので施策の開発に集中することができます。
デメリット
- サーバーの台数を一時的に2倍にする必要があるため、費用面で負担がかかる
デメリットに関しては、リリース後問題無ければ一定時間経過後に旧環境を自動で削除する設定を入れており、必要以上にサーバー費用が発生しないよう工夫しています。
Blue/Green Deployに関する詳しい内容は、こちらのスライドもご覧ください。
ABテストを利用した施策開発とリリース
ニフティ不動産のサイト開発チームでは、一部の施策は施策検討〜リリースをABテストを利用して行っています。
ABテストツールは社内で独自に作成し、仮説 → ABテストツールを使って実装 → 効果検証 → 効果のあったものを本番適用する流れでPDCAを回しています。ABテストを利用することで、時期の違いなどの外的要因に影響されず、純粋な施策の効果を測ることができるため、グロースを効果的に進められます。
パフォーマンス改善
WEBサイトの表示速度や動作速度などのパフォーマンスが悪化すると、SEO(検索エンジン最適化)への影響が発生したり、ユーザビリティ低下につながります。 そのため、サイトのパフォーマンスが損なわれないように注意しながら施策の開発を行っています。
最近はAWS X-Rayを使ったサイトのパフォーマンス分析を実施し、ボトルネックになっていた処理を改善しました。
また、2024年12月に開催されたISUCON14にサイト開発チームメンバーで参加したので、そこで得た学びを今後の開発に生かす予定です!
今後取り組みたいこと
テストカバレッジの向上
現在、JUnit5を使用したユニットテストを一部導入していますが、カバー率はまだ十分とは言えない状況です。そのため、クリティカルなロジックが含まれる部分については、テストコードも一緒に実装するようルールを決めています。
また、テスト駆動開発にもチャレンジし、Kotlin + Springのテストコードに関する勉強会を開催するなど、チーム全体でテストへの意識を高める取り組みを進めています!
TypeScript 移行
現在、サイトの画面実装にはプレーンのJavaScriptが使われています。しかし、JavaScriptは型指定ができないため、実装時にエラーを発見しづらく、結果として手戻りや品質低下のリスクが課題となっています。
こうした課題を解決し、生産性の向上や品質の確保を目指すため、型指定が可能なTypeScriptの導入を開始しており、順次移行を進めています。現時点では、新たに実装した機能のみをTypeScriptで記述していますが、今後は既存のコードについてもリファクタリングを行い、範囲を広げていく予定です。
Google検索アルゴリズムのアップデート内容のキャッチアップ
ニフティ不動産のサイト開発メンバーは、SEO(検索エンジン最適化)のためにGoogleの検索アルゴリズムの状況もキャッチアップしています。ただサイト開発をするだけでなく、Webサイトの内容を検索エンジンに理解しやすいように最適化することで、検索エンジンの表示順位を上げて、より多くのユーザーにニフティ不動産のサイトを見てもらうような取り組みも行っています。
Googleの検索アルゴリズムのコアアップデートを素早くキャッチし、社内のスペシャリストと協力しながら対策を練る仕組みを検討中です。
さいごに
今回はニフティ不動産のWEBサイト開発に関する技術スタックや開発手法をご紹介しました。
ニフティライフスタイルでは、ニフティ不動産のWEBサイト開発エンジニアも含め、さまざまな職種の採用も積極的に行なっております!ご興味のある方はぜひお気軽に採用ページよりご連絡ください!
掲載内容は、記事執筆時点の情報をもとにしています。