パスワードを忘れた? アカウント作成
15501655 journal
日記

dotkuwaの日記: 基本原理の谷間に関する仮説 3

日記 by dotkuwa

ソフトウェアについて考える科学では、
・依存関係は大事だ
といった様な、荒い粒度の原理と、
・Reserved for future use. Must be zero.
と言った様な、細かい粒度の原理の間に、
絶対に基本原理になり得ない、上手く行く範囲を定めないと
詐欺になる谷間があるのでは、
と思う様になりました。
 
基本的な話でもなく、具体的な話でもないから
・ある場合は正しく、別の場合は間違う原理
**しか**生まれない粒度の原理の範囲があるとしか
思えません。
 
ーーーーーーーーーーーーーーーーーーーー
 
たとえば「制御の反転」(Wikipedia 日本語版)ですが、
これは基本原理の谷間に位置する粒度の原理で、
ある場合は正しく、別の場合は間違いです。
 
ある同じインターフェースに依存した、部品が2つあるとして
(AとB)、Aはその処理をするために、部品Cを、
Bはその処理をするために、Cとは別の部品Dを、それぞれ
保持していたとすると、オブジェクト指向ではAとBは別物です。
同じインターフェースで有っても関係ありません。
差し替えるには呼ぶ側の再コンパイルが必要です。
 
ある部品が他の部品を保持すべきでは無いとするなら
正しく、そうで無いなら間違いです。
あるいは、どんな部品を保持していても、インターフェースが
同じなら同じであるとする言語系なら正しく、そうで無いなら
間違いです。
 
ただし、計算をすると情報量が増える種類の計算では、
他の部品(DBのデータセットとか、画面ウィジット部品とか)
を保持する必要が頻繁に現れますし、どんな部品を保持していても
互換性が有るなど、最も基本的なセキュリティホールそのもの
です。
「制御の反転」は計算をすると情報量が減る種類の計算では
上手く行くのかも知れませんが、そうで無い場合は
間違いです。
 
ーーーーーーーーーーーーーーーーーーーー
 
なんでこの様なことになるのかと、突き詰めて考えると、
・基本原理の谷間
が有ると考えると整理がつき易いです。
どう誠実に身を処しても、その範囲の原理原則を語る以上、
基本原理にならないのです。
 
ソフトウェアを考える上では、ある粒度の範囲の原理原則は、
全て基本原理にならないと思うべきだと思います。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2021年12月01日 21時45分 (#4161989)

    独自用語に基づく独自研究が多く意味不明だな相変わらず。
    なんで差し替えるたにコンパイルをしなければならんのかわからん。
    まあポルシェとフェラーリは同じといえば同じだし違うといえば違う。モーターとエンジンは同じといえば同じだし違うといえば違う。オブジェクト指向的にはそういう話。

  • by Anonymous Coward on 2021年12月02日 19時14分 (#4162616)

    どのように別物なのかが述べられてないので、当人には後出し詭弁し放題だろうが
    同じインターフェースを経由して操作する範囲では、AとBは同類だと言える。
    そもそもインターフェースを揃えれば結果が揃うことも保証される、なんて話はない。

    CとDのインターフェースも揃えたいということなら、そうできていない設計自体が間違っている。
    再コンパイルの要否もここでは関係ない。AorBの決定方法を静的・動的どちらにするかってだけの話。

    DBのデータセットとか画面ウィジット(原文ママ)のようなcontextを、
    保持する必要のある部品として扱わなければならない理由・必然がわからない。
    ましてそこからセキュリティホールの話に飛躍するのは、具体的な話のないトンデモとしか受け取れない。
    計算をすると情報量が増える種類の計算にしか落とし込めないことが、根本的なスキル欠如なのでは。

typodupeerror

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

読み込み中...