オブジェクト指向まとめ（描きかけ） 仮説(65)

オブジェクト指向と10年戦ってわかったこと
https://qiita.com/tutinoco/items/6952b01e5fc38914ec4e

のコメントで、@fujitanaokiさんが書かれていることが、この記事の出発点です。

>僕は特に問題がないならば連想配列と関数をクラスの代わりに使います。

C++でクラスTemplateではなく関数Templateだけで済ますことができる範囲を検討しています。
必要がないクラスは使わずに済ませたいというのを目指しています。

>1の問題というのは、おそらく物事をとても柔軟にする必要があります。クラスに基づき設計した場合、クラスがその変更を予期したものであるかどうかによって結果が異なります。もし変更により新しいメソッドが必要となった場合、新しいインターフェースの導入が必要になるかもしれません。僕はそんな予想はできないと思っているので最初は静的なクラス設計はしないです。

OBJという抽象データ型の言語について検討していた時、
定義した抽象データ型をどう展開（継承）するかいくつかの方法があり、どの方法を取ればいいか全くわからなかったため、シンタックスチェッカを作り、言語の構造理解に努めようとしたことがあります。

十数年後、Event-Bという言語で記述しようとした時も、同じ状態に陥り、手が進みませんでした。
何をどう定義し、どう継承すればよいか、現在の問題の解がわからないと書きようがない。

解が見通せる人なら、きっと大丈夫なのかもと思ってきました。
あるいは、初めから解がもとまっている体系の記述だけであればいいのかもしれません。

>逆説的ではありますが、名前を付けることが抽象化の妨げになりうるということも指摘しておきます。

ここ、目から鱗。
遺伝子解析により、植物の体系の変更をしているように、視点が変われば、体系が変わる。
ある視点だけの、静的体系は、別の視点では役に立たないことがあるかもしれない。



# データ中心設計

ここまで書いたことと違う視点を一つ記録します。
最近の仕事で、継承を使うことを想定した設計から入って成功しそうな例です。

すでに存在している既存のデータ、データ構造を利用するためのプログラムです。
すでに存在していて、数年、そのデータを使い倒そうという目的のプログラムです。

「データ中心設計」という概念なのかもしれません。
お金になる仕事の半分くらいは、この手の仕事かもしれないと思います。

というのは、自分では、普段は、データ構造を操作するような仕事をしていないからです。

逆に、データ中心設計の仕事しかしていない人には、継承を想定した定義から始めることに疑問を抱かないんだろうなということに気がつきました。

継承設計からはいるのがオブジェクト指向じゃないと言っても、
実はオブジェクト指向はどうでもよく、データ中心設計が金になる。

「オブジェクト指向」という単語は、データ中心設計の仕事に付ける印(brand)にすぎないのかも。
その名札をつけておくと、売り上げが伸びるかもしれないという期待かも。

世の中の「オブジェクト指向」と言っている仕事の半分以上はオブジェクト指向とは関係のない設計に、
印をつけたものではないかも。

#アセンブラが一番のオブジェクト指向言語

アセンブラは、CPUの登録器(register)の名前で直接記述できる。

名前そのもので記述するのがオブジェクト指向であるとすれば、
アセンブラが一番のオブジェクト指向。

# 参考資料(reference)

オブジェクト指向3ナイ運動
https://qiita.com/tomooda/items/77d77e549a8727a0b2fa

オブジェクト指向の3ナイ運動 番外編：あきらめナイ
https://qiita.com/tomooda/items/78db896909a296f6bc79

逆転オブジェクト指向入門
https://qiita.com/tomooda/items/3f6dd4262eb7ff3434ca

オブジェクト指向と関数型についての自分の考え
https://qiita.com/kumagai_games/items/ca558723a016555ccf8d

## 一覧
物理記事　上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff

量子(0) 計算機, 量子力学
https://qiita.com/kaizen_nagoya/items/1cd954cb0eed92879fd4

数学関連記事１００
https://qiita.com/kaizen_nagoya/items/d8dadb49a6397e854c6d

統計(0)一覧
https://qiita.com/kaizen_nagoya/items/80d3b221807e53e88aba

品質一覧
https://qiita.com/kaizen_nagoya/items/2b99b8e9db6d94b2e971

言語・文学記事　１００
https://qiita.com/kaizen_nagoya/items/42d58d5ef7fb53c407d6

医工連携関連記事一覧
https://qiita.com/kaizen_nagoya/items/6ab51c12ba51bc260a82

自動車　記事　１００
https://qiita.com/kaizen_nagoya/items/f7f0b9ab36569ad409c5

通信記事１００
https://qiita.com/kaizen_nagoya/items/1d67de5e1cd207b05ef7

日本語（０）一欄
https://qiita.com/kaizen_nagoya/items/7498dcfa3a9ba7fd1e68

英語(0) 一覧
https://qiita.com/kaizen_nagoya/items/680e3f5cbf9430486c7d

転職(0)一覧
https://qiita.com/kaizen_nagoya/items/f77520d378d33451d6fe

仮説（0）一覧（目標100現在40）
https://qiita.com/kaizen_nagoya/items/f000506fe1837b3590df

音楽　一覧(0)
https://qiita.com/kaizen_nagoya/items/b6e5f42bbfe3bbe40f5d

「@kazuo_reve 新人の方によく展開している有益な情報」確認一覧
https://qiita.com/kaizen_nagoya/items/b9380888d1e5a042646b

Qiita(0)Qiita関連記事一覧（自分）
https://qiita.com/kaizen_nagoya/items/58db5fbf036b28e9dfa6

鉄道（０）鉄道のシステム考察はてっちゃんがてつだってくれる
https://qiita.com/kaizen_nagoya/items/26bda595f341a27901a0

安全（0）安全工学シンポジウムに向けて: 21
https://qiita.com/kaizen_nagoya/items/c5d78f3def8195cb2409

一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39

Ethernet 記事一覧　Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794

Wireshark 一覧 wireshark(0)、Ethernet(48)
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0

線網（Wi-Fi）空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001

OSEK OS設計の基礎　OSEK(100)
https://qiita.com/kaizen_nagoya/items/7528a22a14242d2d58a3

Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8

++ Support(0)　
https://qiita.com/kaizen_nagoya/items/8720d26f762369a80514

Coding(0) Rules, C, Secure, MISRA and so on
https://qiita.com/kaizen_nagoya/items/400725644a8a0e90fbb0

プログラマによる、プログラマのための、統計(0)と確率のプログラミングとその後
https://qiita.com/kaizen_nagoya/items/6e9897eb641268766909

なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2

言語処理100本ノックをdockerで。python覚えるのに最適。:10+12
https://qiita.com/kaizen_nagoya/items/7e7eb7c543e0c18438c4

プログラムちょい替え（0）一覧:4件
https://qiita.com/kaizen_nagoya/items/296d87ef4bfd516bc394

Python(0)記事をまとめたい。
https://qiita.com/kaizen_nagoya/items/088c57d70ab6904ebb53

官公庁・学校・公的団体（NPOを含む）システムの課題、官（０）
https://qiita.com/kaizen_nagoya/items/04ee6eaf7ec13d3af4c3

「はじめての」シリーズ　 ベクタージャパン　
https://qiita.com/kaizen_nagoya/items/2e41634f6e21a3cf74eb

AUTOSAR(0)Qiita記事一覧, OSEK(75)
https://qiita.com/kaizen_nagoya/items/89c07961b59a8754c869

プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945

LaTeX(0) 一覧　
https://qiita.com/kaizen_nagoya/items/e3f7dafacab58c499792

自動制御、制御工学一覧（０）
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b

Rust(0) 一覧　
https://qiita.com/kaizen_nagoya/items/5e8bb080ba6ca0281927

小川清最終講義、最終講義（再）計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53
### 文書履歴(document history)
ver. 0.01 初稿
ver. 0.02 参考資料追記 20190525
ver. 0.03 20190716
### 最後までおよみいただきありがとうございました。
いいね　💚、フォローをお願いします。
#### Thank you very much for reading to the last sentence.
Please press the like icon 💚　and follow me for your happy life.