PROMARI JOURNAL

共有・保存・計測は、なぜ同じ責務にしないのか

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

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

丸い共有ボタンの裏側を掘る連載の第1回。共有・保存・計測という3つの仕事を、変更の理由・変わる速さ・背負う約束で見分け、分けた理由と払った代償の両方を、図12点と実装コードでたどります。

PASS IT ON

ひとつの発見を、次の会話へ。

もし、ぜんぶ一緒に書いたら

分けた理由を語る前に、分けなかった世界を歩いてみます。共有も保存も計測も、1つの大きな置き場所に書いてしまう。最初の1週間は、これがいちばん速いんです。ファイルは1つ、行ったり来たりもない。正直に言うと、試作の段階では私もそう書いていました。

問題は、最初の変更依頼が届いた日に始まります。SNSの共有URLの決まりが変わった、というよくある知らせが届いたあとの道のりを追ってみましょう。

図2-1 ぜんぶ一緒に書いた場合の、修正の道のり
図2-1 ぜんぶ一緒に書いた場合の、修正の道のり。説明例。直したいのは共有だけなのに、確認の範囲は3つ分に広がります。図2-1 ぜんぶ一緒に書いた場合の、修正の道のり。説明例。直したいのは共有だけなのに、確認の範囲は3つ分に広がります。

直したいのは共有の数行だけ。なのに、その数行は保存の処理と計測の処理のあいだに挟まっています。編集そのものより、「関係ない行を巻き込んでいないか」の確認に時間を取られる。この形の置き場所には神クラスという少し大げさな呼び名が付いています。呼び名の大げささのわりに、生まれる過程は地味で、「とりあえず近くに書いておこう」の積み重ねだけでこうなります。

変更の理由は、別のカレンダーでやってくる

それでは、3つの仕事の「変わる理由」をもう少し丁寧に見比べると、それぞれの変更を持ち込む相手が違います。

図2.1-1 変更の理由は、別のカレンダーでやってくる
図2.1-1 変更の理由は、別のカレンダーでやってくる。現在のしくみ。変わる時期も、変える理由も、決める相手も別です。図2.1-1 変更の理由は、別のカレンダーでやってくる。現在のしくみ。変わる時期も、変える理由も、決める相手も別です。

共有はSNS各社の都合で変わります。共有画面のURLの形式が変わる、サービスの名前そのものが変わる。どれも自分たちでは時期を選べません。保存はデータの都合です。二重登録を防ぐ決まりを強くしたい、保存先の形を見直したい。これは自分たちの計画で進みます。計測は法律と規約の都合で変わります。同意の取り方は法律やガイドラインの改定で、解析ツールの扱いは提供元の規約の改定で見直しが入ります。どちらも自分たちでは時期を選べない、また別のカレンダーです。

カレンダーが別ということは、変更が同時にやってこないということです。共有の修正日に保存のコードを開く必要はないし、同意の見直し日に共有URLを触る必要もない。同居させておく理由が、変更の側から見ると何もないのです。

直す場所と、確かめる範囲

分ける・分けないの差がいちばんはっきり出るのは、修正のあとに「どこまで確かめれば安心できるか」という範囲です。同じ修正を2つの構成に当ててみました。

図2.2-1 同じ修正で、確かめる範囲はこれだけ違う
図2.2-1 同じ修正で、確かめる範囲はこれだけ違う。説明例。修正の大きさは同じでも、安心して済ませられる範囲が変わります。図2.2-1 同じ修正で、確かめる範囲はこれだけ違う。説明例。修正の大きさは同じでも、安心して済ませられる範囲が変わります。

分けない構成では、共有の修正でも保存と計測のコードが同じファイルの中にあります。ということは、手が滑って隣の行を消していないか、共有のつもりで共通の変数を書き換えていないか、3つ分の目視と3つ分の動作確認が要ります。うっかり別の機能を壊してしまう事故にはリグレッションという名前が付いているくらいで、これは珍しい失敗ではなく、混ぜて書いた構成の標準装備なんですね。

分けた構成なら、共有の置き場所だけを開き、共有の確認だけで閉じられます。修正の大きさは同じでも、安心を買い戻すための費用が違う。この費用は毎回の変更で払うので、積み重なると設計の差がそのまま速度の差になります。

考えてみる:確認を全部自動テストにすれば、混ぜて書いても平気?

テストは強い味方ですが、混ぜた構成では「どのテストを走らせれば十分か」の判断まで混ざります。全部走らせる運用にすると、今度は毎回の待ち時間が伸びます。分けた構成は、テストの側も「共有のテストだけ走らせれば共有の変更は安心」と小さく区切れるのが利点です。テストがあるから混ぜてよい、ではなく、分けてあるからテストも軽くなる、という順番で効いてきます。

COMMENTS
コメント…

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

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 課題・進め方をご相談
送信だけで契約やお申込みが確定することはありません。