🏠
Author: nawashiro.dev (did:plc:oszui3uk43smfv7nihtli3pq)

Record🤔

uri:
"at://did:plc:oszui3uk43smfv7nihtli3pq/app.bsky.feed.post/3l6wxwohwqe2h"
cid:
"bafyreigxe6ni2i4klf2zuy4wtf73xbyv7wuo55fnexv3wuev7mafyme3gm"
value:
text:
"春日部つむぎとWhiteCULにATProtoについて教えてもらってる"
$type:
"app.bsky.feed.post"
embed:
$type:
"app.bsky.embed.images"
images:
  • alt:
    "春日部つむぎ: で、次は逆参照をrecordで持たないって話なんだけど、これ結構大事!
    雪さん: 逆参照?
    春日部つむぎ: 例えばさ、フォローってあるじゃん? AさんがBさんをフォローしてるって情報は、Aさんのrepositoryにあるfollow recordで管理されてるよね。で、逆参照っていうのは、Bさんの視点で「Aさんにフォローされてる」って情報をrecordで管理することなんだよ。
    雪さん: なるほどね。
    春日部つむぎ: でも、こういう逆参照のrecordって、作らない方がいいんだよね。
    雪さん: え、なんで?
    春日部つむぎ: 例えば、AさんがBさんのフォローを外したとするじゃん? で、Bさんのrepositoryにも「Aさんにフォローされてる」ってrecordがあると、整合性とらなきゃいけなくなるよね。
    雪さん: ああ、確かに。
    春日部つむぎ: で、Aさんがフォローを外したことをBさんが知る方法って、基本的にはないんだよね。 Aさんのrepositoryを見に行くしかないんだけど、Aさんがフォローを外す度にBさんがAさんのrepositoryをチェックするなんて現実的じゃないでしょ?
    雪さん: うん、それは無理だね。
    春日部つむぎ: だから、逆参照のrecordを作っちゃうと、データの整合性が取れなくなって、システムが壊れやすくなっちゃうんだよね。
    雪さん: なるほど〜。
    春日部つむぎ: recordっていうのは、そのrepositoryの所有者のアクションによってのみ作成・編集されるべきなんだよ。フォローするのもフォロー外すのも、Aさんのアクションだから、Aさんのrepositoryにあるfollow recordだけを更新すればいいんだよね。
    雪さん: つまり、recordは一方通行の情報って考えればいいんだね。"
    image:
    View blob content
    $type:
    "blob"
    mimeType:
    "image/jpeg"
    size:
    691521
    aspectRatio:
    width:
    1065
    height:
    613
langs:
  • "ja"
createdAt:
"2024-10-20T12:14:10.992Z"