tag:crieit.net,2005:https://crieit.net/tags/Interface-Fork-Architecture/feed 「Interface-Fork-Architecture」の記事 - Crieit Crieitでタグ「Interface-Fork-Architecture」に投稿された最近の記事 2023-09-20T02:52:27+09:00 https://crieit.net/tags/Interface-Fork-Architecture/feed tag:crieit.net,2005:PublicArticle/18558 2023-08-26T11:35:41+09:00 2023-09-20T02:52:27+09:00 https://crieit.net/posts/Interface-Fork-Architecture Interface Fork Architecture <h1 id="この記事は古くなった"><a href="#%E3%81%93%E3%81%AE%E8%A8%98%E4%BA%8B%E3%81%AF%E5%8F%A4%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%9F">この記事は古くなった</a></h1> <p>新しい内容はこっち 👉 <a href="https://crieit.net/posts/b70f0740657d9e53d1013848d9e75f5a">矛盾のない命令系統を備える階層の作り方(^~^)</a></p> <h1 id="動機"><a href="#%E5%8B%95%E6%A9%9F">動機</a></h1> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 クリーン・アーキテクチャー( <code>Clean Architecture</code> )も<br /> オニオン・スキン・アーキテクチャー( <code>Onion Skin Architecture</code> )も学習コストが高いし 実践が面倒臭すぎる。<br /> もっと 学習スキルも 実践スキルも低い人が選べる ヘタクソ向けの技術としての モデルを提示しようぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 名前は インターフェース・フォーク・アーキテクチャー( <code>Interface Fork Architecture</code> )だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 長い名前だな」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 あんたが考えたアーキテクチャーを発表するのね」</p> <h1 id="説明"><a href="#%E8%AA%AC%E6%98%8E">説明</a></h1> <p><a href="https://crieit.now.sh/upload_images/69727917bf9526594544bbe43c24bc0064e952c4256f2.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/69727917bf9526594544bbe43c24bc0064e952c4256f2.png?mw=700" alt="202308_program_26-0940--LooseDoorArchitectureAbstract.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 1つの物は2つの側を持つぜ。屋外側と屋内側だぜ。これをドアと呼ぶとしようぜ」</p> <p><a href="https://crieit.now.sh/upload_images/f05a0b38b2707a25bebf0a14ddb22dff64e953e102148.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f05a0b38b2707a25bebf0a14ddb22dff64e953e102148.png?mw=700" alt="202308_program_26-1019--DeliveryPerson.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 配達人は、配達物を ドアの前までは 持ってきてくれるぜ」</p> <p><a href="https://crieit.now.sh/upload_images/64396a46b15fad4d25f66729af05ef1c64e9566292b32.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/64396a46b15fad4d25f66729af05ef1c64e9566292b32.png?mw=700" alt="202308_program_26-1028--DeliveryArea.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 この配達人は、1つの屋外につながるドアと、奥の部屋につながる複数のドアがある部屋に<br /> 閉じ込められているぜ」</p> <p><a href="https://crieit.now.sh/upload_images/dbaa9ade5ec6bcbc30d3853dfaf2d3b064e94eaeb893b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/dbaa9ade5ec6bcbc30d3853dfaf2d3b064e94eaeb893b.png?mw=700" alt="202308_program_26-0951--Indoor.png" /></a><br /> <a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 これは 木構造 になるぜ。 ここで ...」</p> <p><a href="https://crieit.now.sh/upload_images/397e1441a5d3baa43e64795a860e0b4b64e95aaa444ad.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/397e1441a5d3baa43e64795a860e0b4b64e95aaa444ad.png?mw=700" alt="202308_program_26-1045--ForkSet.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 配達人の動きに着目すると フォークの集合 になっているな」</p> <p><a href="https://crieit.now.sh/upload_images/9f3a8d47e9721b2d75b438a88dc7c83364e95ccbdbf51.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9f3a8d47e9721b2d75b438a88dc7c83364e95ccbdbf51.png?mw=700" alt="202308_program_26-1057--InsideOutsideFork.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 1つの フォーク に着目すると、<br /> 屋外のフォークと、屋内のフォークがあるな。これの見方を逆さにすると……」</p> <p><a href="https://crieit.now.sh/upload_images/42faf81364d20c8cfff5babcdf6fb34b64e95dbf90571.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/42faf81364d20c8cfff5babcdf6fb34b64e95dbf90571.png?mw=700" alt="202308_program_26-1057--InterfaceFork.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 1つの フォークは 誰かの室内フォークでもあるし、 屋外フォークでもあるわけだぜ。<br /> これを <strong>インターフェース・フォーク</strong> と呼ぶとしようぜ?」</p> <p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c261daf8686dbda.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br /> 「 フォークと インターフェース・フォークは 何が違う?」</p> <h2 id="フォークと インターフェース・フォークの違い"><a href="#%E3%83%95%E3%82%A9%E3%83%BC%E3%82%AF%E3%81%A8%E3%80%80%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9%E3%83%BB%E3%83%95%E3%82%A9%E3%83%BC%E3%82%AF%E3%81%AE%E9%81%95%E3%81%84">フォークと インターフェース・フォークの違い</a></h2> <p><a href="https://crieit.now.sh/upload_images/1c0e062ef2a3e9de6f6943e4940f536e64e962715a0da.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/1c0e062ef2a3e9de6f6943e4940f536e64e962715a0da.png?mw=700" alt="202308_program_26-1120--Adressing.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 従来のフォークは、 上図2号室にいる人は 5号室にある宅配物を<br /> <code>E → B → C → H</code> とパスを辿ることで アクセスするといったことができることを 比喩している」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 これは よくある効率的で便利な方法なわりに、<br /> プログラムがヘタクソな人が プログラムを自由にヘタクソに書ける要因だぜ」</p> <p><a href="https://crieit.now.sh/upload_images/6d69462986f17d8aea5eed4c465f712d64e964758b26c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6d69462986f17d8aea5eed4c465f712d64e964758b26c.png?mw=700" alt="202308_program_26-1129--InterfaceFork.png" /></a></p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 👆 そこで パス を廃止し、 <code>5号室にアクセスする</code> といったサービスを、関連する配達員全員に持たせるんだぜ」</p> <p><a href="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/96fb09724c3ce40ee0861a0fd1da563d61daf8a09d9bc.png?mw=700" alt="ohkina-hiyoko-futsu2.png" /></a><br /> 「 コード量が 爆発的に 累積的に多くならない?」</p> <p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d61daf8532bbbe.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br /> 「 なる。 プログラミングのヘタクソさをカバーするための代償だぜ」</p> むずでょ