「カプセル化(プログラミング)」の版間の差分

114.157.208.190 (トーク) による編集を Administrator による直前の版へ差し戻しました
タグ: 巻き戻し
編集の要約なし
 
(2人の利用者による、間の4版が非表示)
4行目: 4行目:
かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。


一方、カリフォルニア大学バークレー校の有識者を中心とした「[[インターネット]]を作った人たち」は「[[階層化の有害性]]」として「カプセル化は絶対にやめろ」としている。大雑把にいうと、教科書の上では素晴らしく、最初は良くても、将来的な改修の際に隠蔽された[[データ]]にアクセスできないと解決できない問題が出てきて、非常に高確率で[[デスマーチ]]に陥るというのである。医学的にいえば「手術ができない存在」であるといえる。
一方、カリフォルニア大学バークレー校の有識者を中心とした「[[インターネット]]を作った人たち」は「[[階層化の有害性]]([[rfc:3439|RFC 3439]])」として「カプセル化は絶対にやめろ」としている。
 
大雑把にいうと、教科書の上では素晴らしく、開発を始めた最初のうちは良いが、将来的な改修の際に隠蔽された[[データ]]にアクセスできないと解決できない問題が出てきて、非常に高確率で[[デスマーチ]]に陥るというのである。


オブジェクト指向の発案者である[[アラン・ケイ]]も[[コーディング規約]](頭文字にアンダースコアを付けるなどの命名規則)で縛る程度にすることを推奨しており、アラン・ケイが関わった[[オブジェクト指向プログラミング言語]]にはどれも「private」などという概念はない。
オブジェクト指向の発案者である[[アラン・ケイ]]も[[コーディング規約]](頭文字にアンダースコアを付けるなどの命名規則)で縛る程度にすることを推奨しており、アラン・ケイが関わった[[オブジェクト指向プログラミング言語]]にはどれも「private」などという概念はない。
17行目: 19行目:
[[物理演算エンジン]]に食わせるのにどうしても[[頂点データ]]が必要なのにだ。
[[物理演算エンジン]]に食わせるのにどうしても[[頂点データ]]が必要なのにだ。


世界中の誰もが同じ問題で悩んでいるようで[[stackoverflow]]に回避策が書いてあった。頂点データを[[GPU]]に送信した直後にGetData関数でそのまま返してもらうトリッキーな[[コード]]でめでたく回避できた。
世界中の誰もが同じ問題で悩んでいるようで[[stackoverflow]]に回避策が書いてあった。内部で[[GPU]]へ送信したときに使用した[[GPU]]にアクセスする関数ポインタは公開されているのでGetData関数でそのまま返してもらうトリッキーな[[コード]]でめでたく回避できた。


しかし、時は流れこの方法では動かない環境が登場した。[[iOS]]や[[Android]]だ。こいつらが採用する[[OpenGL ES]]はGPUとの通信が一方通行だ。そこで事前に3Dモデルから頂点データを抜き出し別[[ファイル]]に保存しておくという一段とトリッキーな方法で回避する。みごと1モデルのファイルが2個になりました。
しかし、時は流れこの方法では動かない環境が登場した。[[iOS]]や[[Android]]だ。こいつらが採用する[[OpenGL ES]]はGPUとの通信が一方通行だ。そこで事前に3Dモデルから頂点データを抜き出し別[[ファイル]]に保存しておくという一段とトリッキーな方法で回避する。みごと1モデルのファイルが2個になりました。
30行目: 32行目:
** [[カプセル化(通信)]]
** [[カプセル化(通信)]]
* [[Bjarne Stroustrup インタビュー]]
* [[Bjarne Stroustrup インタビュー]]
[[category: プログラミング]]