一休.com Developers Blog
https://user-first.ikyu.co.jp/
一休のエンジニア、デザイナー、ディレクターが情報を発信していきます
フィード
Cloud WorkflowsとCloud Tasksを使って日次のバッチ処理を作る
1
一休.com Developers Blog
宿泊システムのバッチ処理について(背景・課題) 新たに必要になったバッチ処理をどうやって作るか Cloud Workflows + Cloud Tasks を使ったバッチ処理 処理フロー Cloud Workflows Workflowsから外部APIを呼び出す APIのレスポンスをもとにCloud Tasksにエンキューする Cloud Tasks Web API リリース後の運用 Cloud Tasksのキュー設定の調整 異常終了時の検知を強化 まとめ おわりに 宿泊プロダクト開発部の田中(id:kentana20)です。 このエントリーは一休.com Advent Calendar 20…
2日前
一休.com の情シス / コーポレートIT 変遷、6年を経てどう変わったのか
236
一休.com Developers Blog
はじめに id:rotom です。社内情報システム部 兼 CISO室 所属で ITとセキュリティを何でもやります。 このエントリは 一休.com Advent Calendar 2024 16日目の記事です。昨日は id:naoya による TypeScript の Discriminated Union と Haskell の代数的データ型 でした。その他の素敵なエントリも以下のリンクからご覧ください。 qiita.com 2018年のアドベントカレンダーにて「一休における情シスの取り組み」を紹介させていただき、一定の反響をいただくことができました。 早いものであれからすでに6年が経過しまし…
5日前
TypeScript の Discriminated Union と Haskell の代数的データ型
59
一休.com Developers Blog
この記事は 一休.com Advent Calendar 2024 の15日目の記事です。 予定より早く書き上げてしまったので、フライングですが公開してしまいます。 TypeScript の Discriminated Union (判別可能な Union 型) を使うと、いわゆる「代数的データ型」のユースケースを模倣することができます。一休のような予約システム開発においては「ありえない状態を表現しない」方針で型を宣言するためによく利用されています。 「あり得ない状態を表現しない」という型宣言の方針については以下の URL が参考になります。 Designing with types: Mak…
8日前
Design Doc でチームを跨いだ開発を円滑に行う
4
一休.com Developers Blog
この記事は 一休.com Advent Calendar 2024 7 日目の記事です。 宿泊事業本部 ユーザー向け開発チームの原です。 一休.com と Yahoo!トラベルの主にフロントエンドの開発を担当しています。 今回は、普段の開発でコードを書き始める前段階で Design Doc を作ることで、円滑な開発を進められるようになったというお話をします。 チーム構成について まず、前提を共有するために私達が普段どのような体制で開発しているかを説明します。 私が所属している宿泊事業本部 ユーザー向け開発チームは、一休.com と Yahoo!トラベルの主に toC のユーザー向けの機能開発を…
12日前
永続データプログラミングと永続データ構造
一休.com Developers Blog
この記事は 一休.com Advent Calendar 2024 の3日目の記事です。 昨今は我々一休のような予約システム開発においても、関数型プログラミング由来のプラクティスを取り入れる機会が増えています。 例えば、値はイミュータブルである方が扱いやすい、関数は副作用のない純粋関数にする方がテスタビリティなども含め何かと都合がよい、そういう場面では積極的に不変な値を使い、関数が冪等になるよう意識的に実装します。ドメインロジックを純粋関数として記述できると、堅牢で責務分離もしやすく、テストやデバッグもしやすいシステムになっていきます。 ところで「関数型プログラミングとはなんぞや」というのに明…
19日前
一休.com Developers Blogの執筆環境2024
一休.com Developers Blog
この記事は一休.com Advent Calendar 2024の1日目の記事です。 kymmtです。 当ブログ「一休.com Developers Blog」は、以前からはてなブログで運用しています。そして、今年からは執筆環境を少し改善しました。具体的には、GitHubを用いて記事の作成や公開ができるようにしました。 この記事では、当ブログの執筆環境をどのように改善し、ふだん運用しているかについて紹介します。 HatenaBlog Workflows Boilerplateの導入 従来は、執筆者が記事をローカルやブログ管理画面のエディタ上で書き、なんらかの方法でレビューを受け、公開するという…
19日前
一休はRust.Tokyo 2024にゴールドスポンサーとして協賛します
一休.com Developers Blog
kymmtです。 11/30に開催されるRust.Tokyo 2024に一休はゴールドスポンサーとして協賛します。 rust.tokyo 一休でのRustの活用 一休では一休.comレストランにおいてRustの活用を進めています。昨年に当ブログで活用の様子を紹介した際は、当時開発が進んでいたレストラン予約サービスWeb UIのバックエンドにおけるユースケースだけに触れていました。 user-first.ikyu.co.jp それから1年弱経過した現在では、Rust活用の場はさらに広がっており、Rustを書いているメンバーも増えてきています。 Rust.Tokyoのゴールドスポンサー 2024年…
22日前
TSKaigi Kansai 2024とJSConf JP 2024に一休のエンジニアが登壇します
一休.com Developers Blog
kymmtです。 今月は 11月16日に京都で開催されるTSKaigi Kansai 2024 11月23日に東京で開催されるJSConf JP 2024 と、JavaScript/TypeScriptに関するカンファレンスが2つ開催されます。今年は、一休.comレストランのフロントエンドアーキテクトを務めるエンジニア恩田 (@takashi_onda)がこれらのカンファレンス両方に登壇します。 1週違いで開催されるそれぞれのカンファレンスでは、一休.comレストランのフロントエンド開発をきっかけとする内容のトークテーマを携えて登壇します。この記事では、現在絶賛発表準備中の本人からのコメントも…
1ヶ月前
Vue Fes Japan 2024に登壇 & ランチスポンサーをしました
一休.com Developers Blog
CTO室プラットフォーム開発チームのいがにんこと山口(@igayamaguchi)です。 先日、Vue Fes Japan 2024が開催され、一休は登壇とスポンサーをしました。その紹介をします。 Vue Fes Japan 2024が開催 10月19日(土)に日本最大級の Vue.js カンファレンス、Vue Fes Japan 2024 が開催されました。一休は当カンファレンスでプロポーザル採択による発表と、ランチスポンサーとしてランチセッションでの発表を行いました。この記事ではその発表の概要を紹介します。 一休で行った発表は2つです。 Vue.js、Nuxtの機能を使い、 大量のコピペコ…
2ヶ月前
「一休×AEON 事業会社のサービスを支える基盤開発トーク」を開催しました
一休.com Developers Blog
はじめに kymmtです。 先日2024年9月18日に、「事業会社のサービスを支える基盤開発トーク」と題してイオンスマートテクノロジー(以下AST)さんと合同で技術イベントを実施しました。 ikyu.connpass.com イベントでは、各会社の事業を支える基盤プロダクトの開発や運用における苦労や工夫について登壇者の方々にお話しいただきました。 この記事では、このイベントの様子や発表の内容を紹介します。なお、X(旧Twitter)でも#ikyu_aeonというハッシュタグで当日の様子がご覧になれます。 会場 会場は、一休のオフィスも入っている東京ガーデンテラス紀尾井町内のLODGEでした。 …
3ヶ月前
情シスカンファレンス「Business Technology Conference Japan 2024」にブロンズスポンサーとして協賛します
一休.com Developers Blog
コーポレート本部 社内情報システム部 兼 CISO室 id:rotom です。 10/12(土) にハイブリッド形式で情シス向けのテックカンファレンス「Business Technology Conference Japan 2024(BTCONJP 2024)」が開催されます。 btcon.jp btajp.connpass.com 昨年オンライン開催された BTCONJP 2023 では私が登壇者として 本社を東京ガーデンテラス紀尾井町へ移転し、オフィスファシリティ・コーポレートIT を刷新した話 というテーマで発表させていただきましたが、今年は core staff として運営に参画して…
3ヶ月前
プロンプトエンジニアリングをしよう - 一休.comでの検索システム改善事例
一休.com Developers Blog
はじめに こんにちは。宿泊プロダクト開発部の宮崎です。 みなさん、生成 AI 使ってますか? 近年、AI の進歩はめざましく、文章生成や画像生成はもちろん、動画生成も実用的なレベルで出来るようになっています。 ChatGPT が話題になったのが 2022 年の 11 月なので、たった 2 年足らずでここまで来ているという事実に少し恐ろしくもありますね。AGI(汎用人工知能)の実現もそう遠くないのかもしれません。 一休でも AI 技術は注目していて今年の 6 月に、まさに生成 AI を使ってホテル検索システムの改善を行いました。 この記事では、その時に学んだプロンプトエンジニアリングの重要性につ…
3ヶ月前
オフライン技術勉強会「事業会社のサービスを支える基盤開発トーク」を開催します!
一休.com Developers Blog
CTO室プラットフォーム開発チームの山口(@igayamaguchi)です。 この度、一休とイオンスマートテクノロジー合同で技術勉強会「事業会社のサービスを支える基盤開発トーク」を開催します! ikyu.connpass.com このイベントでは 一休.com、Yahoo!トラベル、一休.comレストランを運営する一休 iAEONアプリ等を開発・運営するイオンスマートテクノロジー 両社のシステムを支える基盤の開発についてお話しします。 様々なお話をしていただく予定ですが、一休から1つ「歴史あるプロダクトにマイクロサービスを導入するプロセス」について紹介します。 この発表では一休.comレストラ…
4ヶ月前
React / Remix への依存を最小にするフロントエンド設計
一休.com Developers Blog
CTO 室の恩田(@takashi_onda)です。 一休レストランのフロントエンドアーキテクトを担当しています。 Intro 一休レストランでは、以前ご紹介したようにフロントエンドで React / Remix を利用しています。 user-first.ikyu.co.jp 一方、設計方針としては、React / Remix への依存が最小になるように心掛けています。 今日は、そんな一見矛盾するような設計方針について、ご紹介したいと思います。 この記事を読んでいただき Remix に興味をもたれたら、明後日 2024/8/7(水) 19:00〜 のオンラインイベント offers-jp.co…
5ヶ月前
エンジニア主導でデザインシステムを導入してみた
一休.com Developers Blog
レストランプロダクト開発部の矢澤です。 一休では「RESZAIKO」というプロダクトの開発を行っています。 この開発を進めるにあたり、UI/UX に関するいくつかの課題があり、エンジニア主導でデザインシステムを構築することにしました。 本記事では、エンジニア主導でデザインシステムを構築することになった背景や、実際に取り組んだ内容について赤裸々にお話しします。 デザインシステムの導入を検討しているものの、最初の一歩を踏み出せずにいる・あるいは何から始めればよいかわからないチームにとって参考になれば幸いです。 そもそも RESZAIKO とは RESZAIKO は飲食店の予約管理を DX する S…
5ヶ月前
Go Conference 2024にスポンサーしました & 一休はGoを活用しています
一休.com Developers Blog
Go Conference 2024にスポンサーしました CTO室プラットフォーム開発チームの山口(@igayamaguchi)です。 先日6/8(土)に一休でGo Conference 2024にスポンサーをさせていただき、スポンサーブースを出展しました。 gocon.jp 来ていただいた方はありがとうございます! 来ていただいた方と話していく中で、一休がGoを使っていることを知らない方がたくさんいることに気づきました。逆に、最近使い始めたばかりのRustの事例についてご存知の方のほうが多かったのです。これは、次のRustについての記事が多くの方に読まれたことによる影響だと思います。 use…
6ヶ月前
エンジニア向け社内イベントのご紹介と運営を経験してわかったこと
一休.com Developers Blog
こんにちは。宿泊プラットフォーム開発チームの菊地です。 一休では月に一度、社内エンジニア向けにIkyu Tech Talkを開催しています。2022年から始まり、ありがたいことに2024年3月で丸2年を迎えることができました。 この記事では、Ikyu Tech Talkの2年間のふりかえりをしていきます。 また、私は社内イベントの主催が初挑戦だったので、どうやったらイベントを盛り上げられるのかと悩んだときもありました。 そこで、同じように自分の会社でTech Talkを開催してみたい人に向けてイベント運営の知見もお伝えしたいと思います。 開催のきっかけ もともと定期的なプロジェクトの成果報告会…
7ヶ月前
一休の社内勉強会のご紹介2024
一休.com Developers Blog
kymmtです。 一休では、技術力の底上げを目的として、さまざまな社内勉強会を開催しています。この記事では、今年2024年に入って社内で実施していた勉強会について紹介し、一休での勉強会の雰囲気を伝えられればと思います。 一休の社内勉強会 2024年にこれまで実施した勉強会 『A Philosophy of Software Design』輪読会 『Webフロントエンド ハイパフォーマンス チューニング』輪読会 フロントエンドワークショップ: Reactハンズオン 2024年の今後の勉強会 一休の社内勉強会 社内勉強会は輪読会の形式で実施することが多いです。参加意欲の高い人ができるだけ多く参加で…
7ヶ月前
なぜ我々は GitHub Copilot Enterprise の導入を見送ったのか
一休.com Developers Blog
CTO 室の恩田です。 今回は GitHub Copilot Enterprise を評価してみて、現時点ではまだ採用しないことを決めた、というお話をご紹介したいと思います。 きっかけ とあるエンジニアが Slack で自身の times チャネルに時雨堂さんの GitHub Copilot Enterprise のススメという記事を投稿したことが発端でした。特に感想はなく URL に 👀 だけが添えられていたので、後で見るぐらいのメモだったんだと思います。 それを見かけた別のエンジニアが技術雑談チャネルにその投稿を共有して、これは凄そうと話題を向けたところ、CTO の「評価してみる?」の一言…
8ヶ月前
データベースの在庫の持ち方をビットで管理してる話
一休.com Developers Blog
こんにちは、一休.comスパ(以下、「スパ」)の開発を担当しているshibataiと申します🙏 今回はスパのデータベースの在庫の持ち方で試行錯誤した話をさせていただきます。 背景 2024-03-29追記: 一休.comスパにおける在庫の特徴について 一休.comスパが扱う「在庫」は、「ある日付の特定の時間に対する空き枠」です。以降の説明では、スパ施設ごと、日付ごと、また時間ごとに増えていく「在庫」をいかに効率よく扱うかについて説明しています。 詳細については次のスレッドも参照してください! https://t.co/Y0SPmDE4yZこの記事のコメントみてると、少し我々のシステムの要件が伝…
9ヶ月前
開発プロセスをインクリメンタルに改善する
一休.com Developers Blog
一休.comレストランのエンジニアのkymmtです。 2023年度の下半期、一休.comレストランの開発チームでは開発プロセス改善に取り組みました。改善は小さい単位で徐々に進め、バックログの作りかたやカンバンの運用方法を改善することで、フロー効率の向上、開発ペースの把握、チーム内外からの進捗の見える化ができるようになりました。 この記事では、このようなインクリメンタルな開発プロセス改善の取り組みについて紹介します。 従来の開発プロセス 主に2023年度前半の開発プロセスは次のような形でした1。 プロダクトのリリースに必要なタスクが長いバックログとして存在し、ひたすらタスクを消化 その状況に課題…
9ヶ月前
一休レストランのふつうのRustバックエンド開発
一休.com Developers Blog
この記事は一休.com Advent Calendar 2023 25日目の記事です。 一休レストランでは、よりスムーズな予約体験の提供を目的とするシステムのリニューアルを進めています。その一環として、2023年10月から、レストラン個別ページの表示から予約までのスマートフォンビューにおいて、バックエンドのサーバをRustで書かれたものに置き換えました。 一休レストランの Rust バックエンドが正式リリースされました。https://t.co/7N4VGv5ej9 このページのスマートフォンビューはバックエンドが Rust で書かれた GraphQL になってます— naoya (@naoy…
1年前
開発ディレクターの進化と挑戦
一休.com Developers Blog
この記事は 一休.com Advent Calendar 2023 24日目の記事です。 宿泊プロダクト開発で開発ディレクターをしています、橋本と申します。 ついにクリスマスイブ。残すところこの記事を含めて2つとなりました。 本日の記事では開発ディレクター1年目の奮闘劇を皆さんに紹介したいと思います。 同じディレクターの方はもちろん、何か新しいことに挑戦している皆さんに届くと嬉しいです。 簡単に経歴紹介 新卒でNWインフラの会社に入社し、 エンジニアとして法人顧客のサービス導入をサポートをしてきました。 AWSの運用、セキュリティ商材の導入、NW機器の導入運用、スマホ管理サービス導入など様々な…
1年前
一休レストランの XState 導入記
一休.com Developers Blog
このエントリーは 一休.comのカレンダー | Advent Calendar 2023 - Qiita の22日目の記事です。 レストランプロダクトUI開発チームの鍛治です。 一休レストランのフロントエンドを担当しています。 一休レストランでは Next.js App Router Remix を採用しています。 user-first.ikyu.co.jp 昨年の終わり頃から始まった一休レストランのリニューアルですが、フロントエンドは Nuxt v2 (Vue 2) から Next.js App Router (React) に、という大きな切り替えで、不慣れだった我々は React 初心者…
1年前
Cloud Runで開発用環境を沢山作る
一休.com Developers Blog
概要 この記事は 一休.com Advent Calendar 2023 16日目の記事です。 RESZAIKO開発チームの松村です。 一休では各サービス毎に、開発中のサービスの動作を社内で確認できる環境があります。 それぞれmain(master)ブランチと自動的に同期している環境と、特定のブランチを指定して利用できる環境の2種類があります。 今回、RESZAIKOの新規サービス(予約画面)に対してブランチを指定してデプロイできる環境を作成したので、その方針と反省点と今後について記述していきます。 現在運用中の予約画面 開発環境を作る理由 一休では長らく、EKS上に複数の環境を用意して、ブラ…
1年前
一休レストランで Next.js App Router から Remix に乗り換えた話
一休.com Developers Blog
一休レストランのフロントエンドのリアーキテクトの過程で Next.js App Router から Remix に乗り換えた話をご紹介します。
1年前
ADR を1年間書いてみた感想
一休.com Developers Blog
宿泊開発チームでエンジニアをしている @kosuke1012 です。チームで ADR を書き始めて1年くらい経ったので、その感想を書いてみたいと思います。 この記事は 一休.comのカレンダー | Advent Calendar 2023 - Qiita の13日目の記事です。 ADRとは アーキテクチャ・ディシジョン・レコードの略で、アーキテクチャに関する意思決定を軽量なテキストドキュメントで記録していくものです。 出典はこちらで、 Documenting Architecture Decisions わかりやすい和訳は以下の記事が、 アーキテクチャ決定レコードの概要 | Cloud アーキ…
1年前
請求書発行のためにEmbulkを使って爆速でデータを集約した話
一休.com Developers Blog
こんにちは。宿泊開発チームの菊地です! このエントリは 一休.com Advent Calendar 2023 12日目の記事です。昨日は id:rotom によるSlack Enterprise Grid における情報バリアの設計でした。その他の素敵なエントリも以下のリンクからご覧ください。 qiita.com 私はEmbulkを使って、各プロダクトの請求データを集約する機能を担当しました。今回は、Embulkの紹介とふりかえりをしていきたいと思います! 背景 課題 解決策 Embulkとは? 今回の課題に対してEmbulkがマッチした理由 union: 複数のデータソースを連結する con…
1年前
Slack Enterprise Grid における情報バリアの設計
一休.com Developers Blog
はじめに Enterprise Grid 移行と課題 情報バリアとは 情報バリアの設計 IDPグループの作成 情報バリアの有効化 情報バリアの設定 実現 終わりに CM のお時間です はじめに 社内情報システム部 兼 CISO室 コーポレートエンジニア id:rotom です。一休のコーポレートIT・セキュリティ領域はだいたい全部見てます。 このエントリは 一休.com Advent Calendar 2023 11日目の記事です。昨日は id:naoya による TypeScriptでどこまで「関数型プログラミング」するか ─ 「手続き Haskell」から考察する でした。その他の素敵なエ…
1年前