<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコル</anchor>の<dfn>拡張性</dfn>とは、
新機能の追加の余地です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拡張性</anchor>は柔軟性と発展性のために重要ですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>の穴となることが多い危険要素でもあります。</p><figure class="short list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拡張性</anchor>の概念</figcaption><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Must-Understand</anchor>/<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Must-Ignore</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">critical</anchor>/<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">non-critical</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">機能テスト</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">能力の記述</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バージョニング</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">分散拡張性</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">登録簿</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イカの耳</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">将来の標準化のために保留</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">先方互換性</anchor></li></ul></figure><figure class="short list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拡張性</anchor>の実現</figcaption><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前方互換構文解析規則</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2774</anchor> <code>Man:</code>/<code>Opt:</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Markup Compatibility and Extensibility</anchor></li><li><code>crit</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">外来マーク付け</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS拡張</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML名前空間</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">カスタム要素</anchor></li><li><code>mustUnderstand</code></li><li><code>Require:</code></li><li><code>extensions<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">extensions (GPX)</title></code></li><li><code>annotation<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">annotation (SBML)</title></code></li><li><code>definitionURL</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ctext</anchor> の拡張性</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> の版番号</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPの版</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラグイン</anchor></li><li><code>object<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">&lt;object&gt;</title></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コメントの中身が意味を持ってしまう</anchor></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite xml:lang="en">RFC 6709 - Design Considerations for Protocol Extensions</cite>
(<time>2018-04-05 17:00:08 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc6709">https://tools.ietf.org/html/rfc6709</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> 
なお稀に「拡張性」は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スケーラビリティー</anchor>の訳語にも使います。
意味は似ていないこともないですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">情報工学</anchor>的には明確に違う概念です。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <cite xml:lang="ja">YAGNI - Wikipedia</cite>, <time>2023-07-09T13:55:41.000Z</time>, <time>2023-07-24T12:28:22.274Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://ja.wikipedia.org/wiki/YAGNI">https://ja.wikipedia.org/wiki/YAGNI</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <cite>YAGNI と premature complication #4</cite>, <time>2021-05-15T13:33:48.000Z</time>, <time>2023-07-24T12:27:56.273Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://0xcc.net/bknotes/4.html">http://0xcc.net/bknotes/4.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <cite xml:lang="ja">くまぎさんはTwitterを使っています: 「@kfujieda プラガブルになったことで簡単になる機能実装はプラガブル設計をしたときにすでに織り込んでいた機能に限られるんですよこれが。そして更に別方向の機能追加をさらなるDIで取り込み続けるうちに絡まるんです…。」 / Twitter</cite>, <time>午前10:00 · 2023年6月27日<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2023-06-27T01:00:05.000Z</attrvalue></time>, <time>2023-07-24T12:16:13.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://twitter.com/kumagi/status/1673496385499566080">https://twitter.com/kumagi/status/1673496385499566080</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <cite xml:lang="ja">Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえば昔、Namazuの高林哲さんが「将来性を考えた実装(抽象層を噛ませてメタ化しておく等)は、大半は想定した未来が来ないので無駄」と書いていたっけ…。 https://t.co/szYqfK71PD あたりにあったと思うのだが、見つけられない。」 / Twitter</cite>, <time>午後10:53 · 2023年6月27日<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2023-06-27T13:53:40.000Z</attrvalue></time>, <time>2023-07-24T12:16:13.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://twitter.com/shirouzu/status/1673691067538092034">https://twitter.com/shirouzu/status/1673691067538092034</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <cite xml:lang="ja">AoiMoe a.k.aしお兄PさんはTwitterを使っています: 「プログラマの病気として KISS の法則を忘れがちというのはあって、将来発生するかも分からないような機能拡張を見込んで拡張性豊かに書いたけど実際には使われず、結果としてその複雑さがメンテの足を引っ張るとか良くある。そういうのは「作りすぎ」なんだろう。」 / Twitter</cite>, <time>午前2:28 · 2023年7月24日<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2023-07-23T17:28:21.000Z</attrvalue></time>, <time>2023-07-24T12:16:13.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://twitter.com/AoiMoe/status/1683167178768674816">https://twitter.com/AoiMoe/status/1683167178768674816</anchor-external></li></ul></body></html>