タグ

ブックマーク / user-first.ikyu.co.jp (38)

  • 一休.com、Yahoo!トラベルのNuxtをNuxt3にアップグレードしました - 一休.com Developers Blog

    CTO室プラットフォーム開発チームの山口(@igayamaguchi)です。 プラットフォーム開発チームではさらに内部でプロジェクトチームが分かれており、私はフロントエンド改善チームというチームでリーダーをしています。 フロントエンド改善チームでは主に一休.com、Yahoo!トラベルのフロントエンドの改善を行っております。 今回は一休.com、Yahoo!トラベルで使用しているNuxtのバージョンを2から3にアップグレードしたお話をさせていただきます。 一休.com、Yahoo!トラベルではトップページや検索ページ、ホテル・旅館の詳細ページなど主要なページのフロントエンドはNuxtで開発されています。 NuxtのバックエンドにはGo+gqlgenでGraphQLのサーバーを立てており、NuxtからはApolloを使用してバックエンドと通信を行っています。 このNuxtのバージョンは2とな

    一休.com、Yahoo!トラベルのNuxtをNuxt3にアップグレードしました - 一休.com Developers Blog
  • デザインシステム導入しました - 一休.com Developers Blog

    プロダクト開発部デザイナーの河村恵です。昨今、デザインシステムを用いた「UI / UXの品質担保」「トンマナの統一」「再利用性の向上による開発効率のUP」が注目されつつある中、一休.comでも格的なデザインシステムの構築を目指し、プロジェクトが発足しました。 記事では、プロジェクト発足から一休.comならではの課題・実際に作っているUIガイドラインについてなど赤裸々にお話ししたいと思います。 目次 1) プロジェクト発足に至る経緯 2) プロジェクトの進め方 3) 実際に作っているUIガイドライン 4) まとめ 1.プロジェクト発足に至る経緯 CTOからのフィードバック そもそも「デザインシステム導入しよう!」となったきっかけは、CTO(以下直也さん)から一休.com と Yahoo! トラベルの2システムを一つに統合することで実現した、Yahoo!トラベルのリニューアル(詳しくはこち

    デザインシステム導入しました - 一休.com Developers Blog
  • Yahoo! トラベルと一休.com のシステム統合プロジェクト - 一休.com Developers Blog

    今から二ヶ月ほど前、10/1 に Yahoo! トラベル のリニューアルが完了しました。このリニューアルは、一休.com と Yahoo! トラベルの2システムを一つに統合することで実現しました。 ご存知の通り、ヤフーと一休は同じグループに所属する企業です。ざっくりいうと「同じグループで2つの宿泊予約システムを開発し続けるのは効率が悪いよね」という話があり、今回のシステム統合に至っています。 Yahoo! トラベルと一休のシステム統合は、(1) 2017年頃にホテルの空室管理や予約、決済、精算業務などを担うバックエンドのシステム統合を行い、そして (2) 今回 2021年春先から半年ほどをかけて、ユーザーが利用する画面も含めた全面統合を行いました。全面統合は総勢で 50名ほどのディレクター、エンジニア、デザイナーが関わる一休的には大きな規模のプロジェクトになりましたが、目立ったトラブルもな

    Yahoo! トラベルと一休.com のシステム統合プロジェクト - 一休.com Developers Blog
  • GraphQLのN+1問題を解決する DataLoaderの使い方 - 一休.com Developers Blog

    こんにちは。宿泊事業部の宇都宮です。この記事では、GraphQLサーバ実装時に遭遇するN+1問題と、その解決のために使えるライブラリを紹介します。 フィールド単位でresolverを用意する N+1問題 GoのDataLoaderライブラリ DataLoaderの仕組み DataLoaderのサンプルコード DataLoaderとDataDog APM むすび 採用情報 フィールド単位でresolverを用意する GraphQLでは、クライアントのクエリに応じてオンデマンドに結果を取得できます。 たとえば、以下のクエリを投げると… { accommodation(accommodationId: "00001050") { name } } 以下のようなレスポンスが取得できます。 { "data": { "accommodation": { "name": "マンダリン オリエンタル 東

    GraphQLのN+1問題を解決する DataLoaderの使い方 - 一休.com Developers Blog
  • Amazon EKS でWindowsコンテナを動かす - 一休.com Developers Blog

    Amazon EKS Windows Container を使ってみる。 今年の10月に、Amazon EKSがWindows ワーカーノードのサポートを開始しました。 aws.amazon.com 一休では、今年の初めから、既存アプリケーションのEKS移行を行っており、夏には、ほぼすべてのLinux系アプリケーションをEKSへ移行することができました。 user-first.ikyu.co.jp これを踏まえ、Windows系のウェブアプリケーションもEKSへ移行できないか、技術検証を行っています。具体的な検証ポイントは以下のふたつです。 Amazon EKS で、Linuxコンテナ同様、Windows コンテナが動作するか。 既存のWindowsのWebアプリケーション(ASP.NETアプリケーションをDockerコンテナ化できるか。 2については、公開されている各種チュートリアルやサ

    Amazon EKS でWindowsコンテナを動かす - 一休.com Developers Blog
  • Slack ワークフロービルダーでバックオフィス業務をフロー化しよう - 一休.com Developers Blog

    この記事は 一休.com Advent Calendar 2019 の18日目の記事です。 qiita.com 社内情報システム部 コーポレートエンジニアの大多和(id:rotom)です。 一休ではコーポレートIT、オフィスファシリティを中心に「情シス」業務を行っています。 皆さんはワークフロービルダー、使っていますか 👋 📑ワークフロービルダーとは ワークフロービルダーは、2019年10月にリリースされた新機能で GUI ベースで Slack 上のワークフローを作成し、業務の効率化を図れるものです。 slackhq.com すでに多くの解説記事があるため、ここでの詳細な説明は割愛しますが 有料プラン契約中なら追加料金不要で使える プログラミング不要で作成できる 様々なトリガーでアクションを自動化できる ことから自動化、効率化の中でも導入・運用のコストが低く、気軽に始めることができます

    Slack ワークフロービルダーでバックオフィス業務をフロー化しよう - 一休.com Developers Blog
  • Go + TypeScriptによるGraphQLスキーマ駆動開発 - 一休.com Developers Blog

    こんにちは。宿泊事業部の宇都宮です。この記事では、GraphQLをベースに、GoTypeScriptでスキーマを共有しながら開発を進める方法について紹介します。 この記事は 一休.com Advent Calendar 2019 の16日目の記事です。 GraphQLとは ライブラリの選定 コードファースト vs スキーマファースト Goによるサーバ実装 TypeScriptによるクライアント実装 おわりに 参考文献 GraphQLとは GraphQLは、Facebookによって開発された、Web APIのための クエリ言語 です。その特徴もSQLに似ていて、データの取得や更新を宣言的な記述によって行うことが出来ます。 仕様は公開されており、リファレンス実装として graphql-js がありますが、それ以外にも様々な言語でGraphQLサーバを実装できます。 GraphQLでは以下の

    Go + TypeScriptによるGraphQLスキーマ駆動開発 - 一休.com Developers Blog
  • 新管理画面のAPIにGraphQLを採用した話 - 一休.com Developers Blog

    一休.com レストランを開発している所澤です。この記事は一休.comアドベントカレンダーの10日目の記事です。 先日、一休.comレストランの管理画面をリニューアルしました。 この記事ではその際にAPIの実装方法として採用したGraphQLについてフロントエンド視点で利点や使い所について述べます。 GraphQLについて以下の記事がわかりやすかったです。 「GraphQL」徹底入門 ─ RESTとの比較、API・フロント双方の実装から学ぶ - エンジニアHub|若手Webエンジニアのキャリアを考える! 短いまとめ 新しくAPIサーバーを書くなら是非GraphQLで! というくらい良かった Apolloのエコシステムに乗り切らなくてもいい。ふつうのRESTfulなAPIサーバーの代わりに、くらいの気軽さでGraphQLを採用してもいい プロジェクトの概要 今回リニューアルした一休.comレ

    新管理画面のAPIにGraphQLを採用した話 - 一休.com Developers Blog
  • GoのDIライブラリgoogle/wireの使い方 - 一休.com Developers Blog

    こんにちは。宿泊事業部の宇都宮です。この記事では、GoのDIライブラリgoogle/wireの使い方を紹介します。 この記事は一休.com Advent Calendar 2019の9日目の記事です。 DIとは GoのDIライブラリ wireの使い方 Providerのエラーハンドリング Injectorのカスタマイズ Provider Set インタフェースのバインド 構造体のフィールドを参照する 細かな注意点 値とポインタの違いに注意 go runするときはwire_gen.goも一緒に おわりに DIとは DI(Dependency Injection, 依存性の注入)とは、あるオブジェクトが依存しているオブジェクトを自ら用意するのではなく、外部から渡してもらう(外部から注入する)というデザインパターンです。 例として、以下のように、監督の名前を渡すとその監督の映画を全てリストにし

    GoのDIライブラリgoogle/wireの使い方 - 一休.com Developers Blog
  • 社内に周知しているパソコン購入・パソコン交換のルール - 一休.com Developers Blog

    qiita.com この記事は、一休.com Advent Calendar 2019の6日目の記事です。 こんにちは、nakashunです。 普段は情シスみたいなことをやっています。 今年のAdvent Calendarについて、Slackでこんなご意見を頂いたので書いてみます。 意外と表に出てこない、入社時に支給されるパソコンに加え 追加で購入する場合・交換する場合のルールも公開してみようと思います。 パソコンの購入・交換ルールの基スタンス パソコンの購入・交換のルールについては、Qiita:teamで告知しています。 社員はQiita:teamを参照し、自分のパソコンを追加購入するのか・交換するのかを判断します。 上長の承認を得た後、情シスが購入手続きを行う流れになっています。 ルールを簡単にまとめると 故障修理・故障交換などを除く全てのPC購入にこのルールが該当するよ 購入するP

    社内に周知しているパソコン購入・パソコン交換のルール - 一休.com Developers Blog
  • 一休.comにService Worker(Workbox)を導入しました - 一休.com Developers Blog

    こんにちは。宿泊事業部の宇都宮です。 この記事は、一休.com Advent Calendar 2019の2日目の記事です。 今日は、一休.com( https://www.ikyu.com )にService Worker + Workboxを導入した件について書きます。 Service Workerとは Service Workerはブラウザのバックグラウンドで動作するJavaScriptで、PWA(Progressive Web Apps)の基盤技術です。 Service Worker の紹介 https://developers.google.com/web/fundamentals/primers/service-workers?hl=ja はじめてのプログレッシブウェブアプリ https://developers.google.com/web/fundamentals/cod

    一休.comにService Worker(Workbox)を導入しました - 一休.com Developers Blog
  • CSSフレームワークBulmaについて - 一休.com Developers Blog

    フロントエンドエンジニアのid:ninjinkunです。この記事は一休.comアドベントカレンダーの1日目の記事です。 一休.comレストランの管理画面リニューアルプロジェクトにおいて、CSSフレームワークのBulmaを導入しました。結論としては、採用して良かったと思っています。 このエントリではBulmaを選定した理由と、採用後に見えたPros / Consについて述べたいと思います。 なお今回リニューアルした一休.comレストランの管理画面の概要は以下の通りです。 レストラン店舗向けの管理画面 店舗の方と一休スタッフの両方が使う DAUは数千の規模 主な用途は在庫の管理と、プラン(コース)や席の管理 現在は店舗を限定してリリース済み 具体的には以下のような画面で構成されています。 UIフレームワークは必要か? まずそもそもUIフレームワークは必要かという議論があります。 今回のプロジェ

    CSSフレームワークBulmaについて - 一休.com Developers Blog
  • WordPressで爆速Canonical AMPサイトを構築した方法と3つの理由 - 一休.com Developers Blog

    文責 はじめに 『KIWAMINO』をどうやって構築したのか WordPress と AMP プラグインで Canonical AMP サイトを構成した方法 インフラ ミドルウェア WordPress Lighthouse なぜ WordPress と AMP プラグインで Canonical AMP サイトを構成したのか (1) AMP の制約によって、サイトスピードが速くなるから (2) エンジニア・デザイナーの学習および開発コストが低いから (3) 巨大な組織・コミュニティの恩恵を受けられるから おわりに 採用情報 文責 新規プロダクト開発部の伊勢( id:hayatoise )です。 新規プロダクト開発部は一休の新規事業の開発とデザインを担当する部署です。現在、新規プロダクト開発部は主に『一休.comスパ』、『一休コンシェルジュ』および『KIWAMINO』を担当しています。 はじめ

    WordPressで爆速Canonical AMPサイトを構築した方法と3つの理由 - 一休.com Developers Blog
  • AWS Elastic beanstalkからAmazon EKSへ移行する - 一休.com Developers Blog

    以前の記事でも簡単に紹介した通り、一休では、アプリケーションのAWS Elastic beanstalkからAmazon EKSへの移行を進めています。 user-first.ikyu.co.jp この記事では、その背景や、実際の設計、実際にAmazon EKSを活用してみて気付いた点、困った点、今後の展望を紹介したいと思います。 AWS Elastic beanstalkの辛い点 新しい環境の構築や運用が大変 一休ではAWSのリソースをTerraformを使って管理しています。新しくウェブアプリケーションを立ち上げて、Elastic beanstalkで動かす場合、以下の作業をする必要があります。 Terraformで、Elastic beanstalkの定義を作ってリリースする。 新しいアプリケーションのデプロイを通知するように自前で作ったAWS lambdaを修正。 アプリケーション

    AWS Elastic beanstalkからAmazon EKSへ移行する - 一休.com Developers Blog
  • Amazon EKSでgRPCサーバを運用する - 一休.com Developers Blog

    以前の記事でも紹介した通り、一休では、gRPCを使ったサービスを導入し始めています。 user-first.ikyu.co.jp この記事では、このサービスをAmazon EKSで提供するための設計や気をつけたポイントについて紹介します。 背景 一休では、ウェブアプリケーションの実行環境としてAWS Elastic Beanstalkを採用しています。 そして、この4月からElastic BeanstalkをAmazon EKSへ移行するプロジェクトを進めています。 このgRPCサービスもElastic Beanstalkで運用をしていましたが、以下の問題を抱えていました。 適切にロードバランシングできない。 Elastic BeanstalkでgRPCサービスを運用しようとするとNetwork Load Balancer(NLB)を使うことになります。NLBはレイヤ4のロードバランサです

    Amazon EKSでgRPCサーバを運用する - 一休.com Developers Blog
  • C#のgRPCクライアントではChannelを再利用しよう - 一休.com Developers Blog

    こんにちは。宿泊事業部の宇都宮です。6月に、Go + gRPCという構成のサービスを運用開始したという記事を書きました。 Go + gRPCによるマイクロサービス構築 - 一休.com Developers Blog 番運用開始から2ヶ月ほどたち、いくつかのトラブルがありつつ、現在も元気に稼働中です。 運用していく中で定常的に発生していたgRPCのタイムアウトエラーについて、その対処法がわかったので、紹介します。 なお、記事の知見はC#でのgRPCクライアント実装においては有用でしたが、他の言語では適用できない可能性が高いです。各言語のドキュメントもあわせてご参照ください。 gRPCのタイムアウト 以前の記事で紹介したマイクロサービスは、30~60req/sec程度のリクエストを常時受け付けます。 社内のサービスの中で、このマイクロサービスに最も頻繁にリクエストを送るのは認証基盤で、

    C#のgRPCクライアントではChannelを再利用しよう - 一休.com Developers Blog
  • 社内マーケター向けの機械学習プラットフォームを作りました - 一休.com Developers Blog

    はじめに こんにちは。データサイエンス部の平田です。 一休でのデータ分析はJupyter NotebookやJupyter Labを用いてDWHにアクセスして行われることが多いですが、サービスそのものと分析環境が乖離していることにより、分析結果を継続的にサービスに取り込むのが難しい状況でした。 また、マーケティング部の方々がJupyterを使用して分析した結果に基づいて継続的に施策を行おうとしても、Airflowに組み込む際のエンジニアの負担はそこそこありますし、修正するたびに依頼をしなければならないなどコミュニケーションコストも発生します。 さらに、マーケティングに機械学習を取り入れたい場合でもairflow側で全部やってしまうと密結合になってしまいます。 そこで、Airflowから別の場所にあるJupyterを直接実行することによりエンジニアの負担は最小限にとどめ、自由に施策を打てるよ

    社内マーケター向けの機械学習プラットフォームを作りました - 一休.com Developers Blog
  • 5年間の改善を経て、現在の一休がどうなっているのかを7/4(木)にお話します - 一休.com Developers Blog

    レストラン事業部の田中( id:kentana20 )です。 先週末にDevLOVE Xというイベントで開発組織改善の取り組みについて5年間の取り組みと今後、というテーマでお話しました。 5年間でどれくらい一休の開発組織が変わったのか 技術面 組織面 それぞれで実施した改善について、改善の裏側で起こっていたことや自分の所感も含めてお話しました。 現在の一休について7/4(木)にお話します 来週開催するエンジニア向けの説明会で、上記の5年間の取り組みを経て、現在の一休がどうなっているのかをCTOの伊藤がお話します。 ikyu.connpass.com 説明会と書いていますが、会社・事業や開発体制のお話だけでなく 現在の開発組織やプロダクトの状況がどうなっているか 今後どのように改善を進めていくのか を含めてお話する予定です。 一休で働くことに興味がある方だけでなく いまの現場を改善するため

    5年間の改善を経て、現在の一休がどうなっているのかを7/4(木)にお話します - 一休.com Developers Blog
  • Go + gRPCによるマイクロサービス構築 - 一休.com Developers Blog

    こんにちは。宿泊事業部の宇都宮です。 最近、とあるマイクロサービスをローンチしました。このアプリケーションの業務的な役割は諸事情により省略しますが、以下のような特性をもっています。 社内の多くのサービスから利用される 一休.com 一休.comレストラン 一休.comギフト 一休.com海外 このサービスが落ちると、主要サービスの予約処理が止まる 😱 想定されるリクエスト数は、平常時で30req/sec、ピーク時には60req/sec程度になります。行う処理はシンプルで、DBにいくつかSELECT文を投げて、ビジネスロジックに沿った結果を返すことです。 また、基盤系のアプリケーションなので、各開発者の開発環境(WindowsMacが混在)でも動作する必要があります。 したがって、このアプリケーションに求められる要件は、 高パフォーマンス 高信頼性 クロスプラットフォームで動作すること

    Go + gRPCによるマイクロサービス構築 - 一休.com Developers Blog
  • E2EテストをSelenium Webdriver からCypress.io に移行した話 - 一休.com Developers Blog

    こんにちは。 一休.comの開発基盤を担当しています、akasakasです。 今回は、E2EテストをSelenium WebdriverからCypress.ioに移行した話をしたいと思います。 一休のE2Eテスト事情 あれから、数年が経過して、、、 どうしてこうなった??? SeleniumではSPAへの対応が難しくなってきた なんでもかんでもSeleniumで頑張ろうとした弊害 いざリプレイスへ・リプレイスをする上で気をつけたこと 開発者フレンドリー 安定性 然るべきレイヤーでテストする(何でもかんでもブラウザテストにしない) 技術選定 Cypress.io とは? Cypress.io のいいところ セットアップが楽 テストを書くことだけに集中できる CI連携が楽 Cypress.io の頑張って欲しいところ その他、移行に関しての細かい話 重複テストケースの排除 Page Objec

    E2EテストをSelenium Webdriver からCypress.io に移行した話 - 一休.com Developers Blog