SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2023 セッションレポート(AD)

肥大化したコードを1/10に軽量化、Webサービスの継続的な開発に取り組む「KARTE」が実現した仕組みとは?

【9-C-8】これから先も戦えるサードパーティスクリプト — 1/10に軽量化・柔軟な拡張性・互換性の担保 —

  • このエントリーをはてなブックマークに追加

新しい計測タグは、Web管理者に負担をかけないよう拡張する

 「旧計測タグでは弊社側の機能拡張の際に、お客さま側での作業が必要となってしまう場合がありました。まず、お客さまは左側の擬似コードのようなスクリプトを書くことによってイベントを弊社側のサーバーに飛ばすことができます。そのために、右上部の擬似コードのように tracker オブジェクトに trackメソッドを事前宣言するようなスクリプトタグをお客様側のWebサイトに埋め込んで頂く必要があります。

 このとき、trackメソッドだけを使い続けるのであれば問題ないですが、弊社側で新規の機能としてdeleteのようなtrack以外のメソッドを開発した場合には、右下部の疑似コードのように新しいメソッド宣言を追加する必要がありました。ですので、新しい機能を使いたい場合は、お客さまによる事前宣言用のスクリプトタグの書き換えが必要でした。このような背景もあり、新しいメソッドを容易に開発できないということが課題としてありました。」

旧計測タグの拡張性の課題
旧計測タグの拡張性の課題

 そこで、新しい計測タグでは、第1引数がメソッド名となるようなファンクションを生やすようにした。メソッドの定義自体は、サードパーティスクリプト内部に存在している。

 「右側の事前宣言用の疑似スクリプトを見るとわかりやすいと思いますが、サードパーティースクリプト内部に存在するメソッド定義が露出するまでにイベントトラッキング関数が叩かれたらargsをarrayに逐次保存しています。そして、サードパーティスクリプトが実行されてメソッド定義が露出した時、arrayに溜まっていたメソッドとバリューのセットを順次読み取って、メソッドを実行しています。このようにメソッド定義がサードパーティスクリプト内部に定義されているので、お客さまが事前宣言用のスクリプトタグを変更することなく、容易にメソッドを追加できるようになりました。」

計測タグ自体の拡張性の改善
計測タグ自体の拡張性の改善

 しかし、計測タグを新しいものに移行するとき、全てのイベントトラッキング関数をお客さまに書き換えていただく必要が出てくる。そこで、互換用のスクリプトタグを作成して、旧計測タグのインターフェースを新計測タグの上に実装することで、書き換えの負担を押さえた。

 このような取り組みによりKARTEでは、2015年のサービスリリース以降初となる計測タグとサードパーティスクリプトの全面刷新が実現した。西村氏は、今後もプロジェクトごとJavaScriptのbundle速度の向上や、スクリプトサイズを小さく保っていく仕組みや文化を作っていきながら、サードパーティスクリプト上に乗るプロダクトをがんがん開発していきたいと述べて講演を締めくくった。

関連リンク

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Developers Summit 2023 セッションレポート連載記事一覧

もっと読む

この記事の著者

可知 豊(カチ ユタカ)

フリーランスのテクニカルライター 興味の対象はオープンソースの日常利用、ライセンス、プログラミング学習など。 著書「知る、読む、使う! オープンソースライセンス」。https://www.catch.jp

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:株式会社プレイド

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17394 2023/04/21 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング