Upgrade to Pro — share decks privately, control downloads, hide ads and more …

pixiv小説の閲覧体験を大きく変える!
「閲覧位置の保存」機能の開発とその後 / Development of the pixiv novels reading progress feature and beyond

yto (60°)
September 29, 2023
610

pixiv小説の閲覧体験を大きく変える!
「閲覧位置の保存」機能の開発とその後 / Development of the pixiv novels reading progress feature and beyond

どの作品をどこまで読んだかをユーザーごとに保存する「閲覧位置の保存」機能の開発にあたり、読んだ位置をブラウザ上でどのように計算するかなど、様々な課題がありました。 リリースまでの道のりと、その後のユーザー行動の変化についてお話しします。
2023/9/29 pixiv MEETUP 2023 にて発表 https://conference.pixiv.co.jp/2023/meetup

yto (60°)

September 29, 2023
Tweet

Transcript

  1. ಡΜͩจࣈ਺Λϒϥ΢β্Ͱܭଌ͢Δ 2. ຊจͷඳըޙɺ֤ཁૉʹ͍ͭͯҎԼΛܭࢉͨ͠഑ྻΛ͓࣋ͬͯ͘ • 1. Ͱܭଌͨ͠จࣈ਺ • ϖʔδ಺Ͱͷ࠲ඪʢεΫϩʔϧҐஔʣ export const

    createTextNodes = (selectors: NodeListOf<Element>) => [...selectors].map(node => ({ // 1. で計測した文字数: DOM に持たせてある数字を読む readingProgress: Number(node.getAttribute('data-textcount')), // ページ内での座標: スクロール領域 (=window) の上端を0としたとき、本文ノードの上 端の座標を計算 offsetTop: window.scrollY + node.getBoundingClientRect().top }))
  2. ͲͷΑ͏ʹอଘ͢Δ͔ • 🤔 Ͳ͜ʹอଘ͢Δʁ
 ΦϯϓϨDB (ScyllaDB or Cassandra)ʁɹΫϥ΢υ DB (GCP

    BigTable)ʁɹϢʔ βʔͷϩʔΧϧ୺຤ (indexedDB)ʁ • 💰 Ϋϥ΢υΛ࢖͏৔߹ͷίετ͸ʁ
 → GCP BigTable Λ࢖͍ɺ࣮ࡍͷϢʔβʔϦΫΤετʹΑ ΔίετݕূɾվળΛ࣮ࢪ
  3. ͲͷΑ͏ʹอଘ͢Δ͔ʢิ଍ʣ 1. ϢʔβʔͷϩʔΧϧ୺຤ (indexedDB)
 … 1stϦϦʔε͸ͪ͜ΒͰग़͢͜ͱʹͨ͠ 2. Ϋϥ΢υ DB (GCP

    BigTable)
 … ϦϦʔεޙͷ࢖ΘΕํɾ൓ԠΛݟͭͭɺ
 ɹɹɹ͍ͭɾͲͷΑ͏ʹग़͔͢ΛվΊͯݕ౼͍ͯ͘͠