PROMARI JOURNAL

共有先が増えても触らないコードを決める

作成: / 公開: / 内容更新:

執筆:tamito0201 / 掲載・運営:プロマリ

丸い共有ボタンの裏側を掘る連載の第2回。共有先が増えても書き換えないコードを先に決め、共有先の違いを「名札カード」と呼ぶデータファイル(TOML)へ寄せた設計を、架空の共有先を1つ足した差分の実測と図12点でたどります。

PASS IT ON

ひとつの発見を、次の会話へ。
自然光の差す木の机を上から見た写真風のイメージ。3色のタブが付いた無地のカードが並ぶ木のカード立てへ、手が新しい1枚を差し込み、横のスマートフォンには丸い共有ボタンの列と点線の空き枠が1つ映っている

こんにちは、プロマリの紫です。連載「丸いボタンの裏側」の第2回です。前回は、共有・保存・計測という3つの仕事を、なぜ別々の責務に分けたのかをたどりました。今回は、そのうちの「共有」の箱を開けます。テーマは共有先が増えても触らないコードを、先に決めておくこと。前回の宿題「共有先を1つ足したら、どこに差分が出るか」の答え合わせも、実際のコードで行います。

点線の付いた用語は、その言葉を押すと詳しい説明が開きます。意味、身近なたとえ、この実装での使い方を順に読めます。キーボードではTabで用語へ移動し、EnterまたはSpaceで開き、Escapeで本文へ戻れます。各ページで最初に出る用語から参照できるようにしました。

この記事は連載「丸いボタンの裏側」の第2回(1.2)です。前回の1.1「共有・保存・計測は、なぜ同じ責務にしないのか」を先に読むと、今回開ける「共有の箱」の位置がつかみやすくなります。連載全体の地図は、本編5ページ目の連載の目次からどうぞ。

共有先は、これからも増えていく

まずは、記事の上に並んでいる共有欄を数えてみましょう。大きなボタンがFacebook・X・LINEの3つ。その後ろに、小さなアイコンがはてなブックマーク・LinkedIn・メール・URLのコピー・端末の共有の5つ。合わせて8つの共有先が並んでいます。

図1-1 共有先は、これからも増えていく
図1-1 共有先は、これからも増えていく。現在のしくみ。共有先の追加は、いつか来る変更ではなく、必ず来る変更です。図1-1 共有先は、これからも増えていく。現在のしくみ。共有先の追加は、いつか来る変更ではなく、必ず来る変更です。

そして、8つで終わる保証はどこにもありません。新しいSNSが広まれば「あれにも共有したい」という声が届きますし、いま使っているサービスが名前や共有画面のURLを変えることもあります。つまり共有先の追加は、いつか来るかもしれない変更ではなく、必ず来る変更です。

必ず来る変更なら、来るたびに慌てずに済む形を先に作っておきたいですよね。その考え方を言葉にしたのが開放閉鎖の原則です。機能を足すことには開いていて、動いているコードを書き換えることには閉じている。原則の細かな話は連載の第2章に回して、今回は実際のコードで「何に開き、何に閉じたのか」を確かめていきます。

触るコードと、触らないコードを先に決める

今回の実装がしたことを一言でいうと、書き始める前に、コードを2つの棚に分けたことです。1つは増えるものの棚。共有先ごとの定義が、ここに1枚ずつ並びます。もう1つは増えても変わらないものの棚。URLを組み立てる仕組み、クリックでどう動くかを決める判断、ボタンを描く表示が入っています。

図1.1-1 触るコードと、触らないコードを先に決める
図1.1-1 触るコードと、触らないコードを先に決める。現在のしくみ。「増えるもの」と「増えても変わらないもの」を、書く前に分けておきます。図1.1-1 触るコードと、触らないコードを先に決める。現在のしくみ。「増えるもの」と「増えても変わらないもの」を、書く前に分けておきます。

共有先を足すときに開けるのは、増えるものの棚だけです。新しい定義を1枚差し込めば、もう一方の棚には手を触れずに済む。この差し込み口を拡張点と呼びます。差し込み口は、変更が来てから慌てて作るものではありません。どこを差し込み口にするかを、変更が来る前に決めておく。これが今回の設計の中心です。

考えてみる:「増えるもの」は、どうやって見分ける?

手がかりは、変更を持ち込む相手が何人いるかです。共有先は、SNS各社という外の相手の数だけ増えていきます。一方、URLの組み立て方は「宛先に項目を付けて、安全な文字に置き換えて並べる」という1つの規則で済み、共有先が増えても規則そのものは増えません。数が増えていくものと、規則として1つで済むもの。この2つを分けておくと、増える側だけを差し込み口にできます。

COMMENTS
コメント…

このページ(1ページ目)の感想・質問・設計へのコメント

PASS IT ON

この気づきを、誰かにも。

この記事を書いた人

Takaomi Murasaki

Promari SNS Shareの開発を通して、Webの仕組みや設計の選び方を紹介しています。動く実装と、その判断に至るまでを記事に残しています。

公開記事 4 件

プロフィールを見る
THANK YOU FOR READING.すべての記事へ ↗

FROM INSIGHT TO IMPACT

「できたらいいな」を、
動く仕組みに。

記事で見つけたヒントを、あなたの事業へ。
新しいサービスも、手間のかかる業務も。
いまの課題から、つくるべきものを一緒に考えます。

開発・AI・研修の実績を見る

まだ、仕様書はいりません。

「何から始める?」から、ご一緒に。

課題がまとまっていなくても大丈夫。テーマを選ぶと相談文をご用意します。
連絡先の必須入力は、お名前とメールアドレスだけ。

まずは課題の整理から相談する

ご相談後の流れ

  1. 01 内容を確認
  2. 02 メールでご連絡
  3. 03 課題・進め方をご相談
送信だけで契約やお申込みが確定することはありません。