■危険性
かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性(RFC 3439)」として「カプセル化は絶対にやめろ」としている。
大雑把にいうと、教科書の上では素晴らしく、開発を始めた最初のうちは良いが、将来的な改修の際に隠蔽されたデータにアクセスできないと解決できない問題が出てきて、非常に高確率でデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」などという概念はない。
ソースコードが存在し改修が可能であればカプセル化しても問題ない。ソースコードがあってもライセンス的に改修できない場合や、そもそもバイナリのライブラリしかない場合などは絶望的である。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
探検
カプセル化は愚かな考え
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2020/07/29(水) 17:17:58.13ID:u638n5uE940デフォルトの名無しさん
2020/09/13(日) 22:36:45.09ID:BuLbEsQM941デフォルトの名無しさん
2020/09/14(月) 00:48:24.64ID:LBeWsbwt >>937
それは単にデータベースのデータの管理とデータベース製品の使い方を知らないだけ
それは単にデータベースのデータの管理とデータベース製品の使い方を知らないだけ
942デフォルトの名無しさん
2020/09/14(月) 02:30:40.99ID:BcrTLwn4 >>936
チンポと言えば、あわしろいくや。
チンポと言えば、あわしろいくや。
943デフォルトの名無しさん
2020/09/14(月) 09:05:52.30ID:rs21NGsW >>938
規模の拡大に伴って急激に管理しきれなくなるから問題なんだよ
規模の拡大に伴って急激に管理しきれなくなるから問題なんだよ
944デフォルトの名無しさん
2020/09/14(月) 09:34:57.86ID:zOSHXyy4 Excelに記述する方法で2万件程度なら行けるよ
945デフォルトの名無しさん
2020/09/14(月) 09:37:57.62ID:zOSHXyy4 お前らアホはオブジェクト指向言語で階層構造にしちまうから
いざ、データベースヘ入れるぞってときにあたふたし始めて
作業にかかると大変な労力を使うことになる
っていうか今どきデータベースへ入れるかもしれないってところに頭がまわらないやつって使えなくね?
いざ、データベースヘ入れるぞってときにあたふたし始めて
作業にかかると大変な労力を使うことになる
っていうか今どきデータベースへ入れるかもしれないってところに頭がまわらないやつって使えなくね?
946デフォルトの名無しさん
2020/09/14(月) 09:49:35.40ID:ka5M5GfA >>945
データベースに入れることとオブジェクト指向は何の関係もないですね
データベースに入れることとオブジェクト指向は何の関係もないですね
947デフォルトの名無しさん
2020/09/14(月) 10:07:06.87ID:lpza49Cy グローバル変数が過去に問題視された原因は2つ
一つは名前の衝突、もう一つは更新可能な共有変数は利用する箇所が増えるほど扱いが煩雑になること
前者はnamespaceに類するものを使えば解決可能でほとんどの言語でそのアプローチを採用している
後者はできるだけimmutableにする、それができないなら利用箇所を限定して同時実行制御のイディオムを使うことで比較的容易に管理可能になる
データベースで考えると
前者はserver.database.schema.table.row.columnといった形でnamespace的に整理可能なので問題にならない
後者は可能な限りimmutableにできるかどうかや、mutableなら利用箇所を限定できるかどうかに依存しているので
開発者のアーキテクチャ設計能力が一定水準以下の場合のみ問題になってくる
一つは名前の衝突、もう一つは更新可能な共有変数は利用する箇所が増えるほど扱いが煩雑になること
前者はnamespaceに類するものを使えば解決可能でほとんどの言語でそのアプローチを採用している
後者はできるだけimmutableにする、それができないなら利用箇所を限定して同時実行制御のイディオムを使うことで比較的容易に管理可能になる
データベースで考えると
前者はserver.database.schema.table.row.columnといった形でnamespace的に整理可能なので問題にならない
後者は可能な限りimmutableにできるかどうかや、mutableなら利用箇所を限定できるかどうかに依存しているので
開発者のアーキテクチャ設計能力が一定水準以下の場合のみ問題になってくる
948デフォルトの名無しさん
2020/09/14(月) 12:15:42.69ID:U+GPJWx0 >>947
>一つは名前の衝突、もう一つは更新可能な共有変数は利用する箇所が増えるほど扱いが煩雑になること
「チンポ」は独立した生き物として考えないと、何故チンポは勃起したり射精したりするのかわからなくなる。
>一つは名前の衝突、もう一つは更新可能な共有変数は利用する箇所が増えるほど扱いが煩雑になること
「チンポ」は独立した生き物として考えないと、何故チンポは勃起したり射精したりするのかわからなくなる。
949デフォルトの名無しさん
2020/09/14(月) 13:51:14.61ID:H3Bos02D 神様も設計間違えたかと思うようなダブル用途
950デフォルトの名無しさん
2020/09/14(月) 22:39:06.99ID:hx7e4xfO データベースを使うとカプセル化とは縁遠い作りになることが多い
951デフォルトの名無しさん
2020/09/14(月) 22:40:11.02ID:hx7e4xfO だいたいレコードを入れる構造体1階層で完結する
952デフォルトの名無しさん
2020/09/14(月) 23:02:01.08ID:aDn+sCGd >>950
お前の理屈だと、ファイルを使うとカプセル化とは縁遠い作りになることが多いんだろ?w
お前の理屈だと、ファイルを使うとカプセル化とは縁遠い作りになることが多いんだろ?w
953デフォルトの名無しさん
2020/09/15(火) 01:45:28.43ID:Yms7aROo カプセル化の意味を履き違えているのばかりだし、異様にこだわるのはもはやキチガイレベル。
954デフォルトの名無しさん
2020/09/15(火) 10:10:35.41ID:msQN58rY オブジェクト指向に疑念を持って、関数型などにも浮気したが結局オブジェクト指向に戻ってきた
関数型だとインフラストラクチャのコントロール、外部APIコーディネートなどといった「現実の問題」に対象できない
また関数型が優れているとされる理由のエッセンスはイミュータビリティである、ということに気がついたからだ
結局のところオブジェクト指向にイミュータビリティを導入することが正解だった
関数型だとインフラストラクチャのコントロール、外部APIコーディネートなどといった「現実の問題」に対象できない
また関数型が優れているとされる理由のエッセンスはイミュータビリティである、ということに気がついたからだ
結局のところオブジェクト指向にイミュータビリティを導入することが正解だった
955デフォルトの名無しさん
2020/09/15(火) 11:13:01.56ID:aoc93pM4 全然関係ないこと横文字羅列することで畳み掛けるの流行ってるの?
少なくともそんなとこ考えてるときにオブジェクト指向言語じゃないと実装できませんねとか
意味不明なこと言い出した奴もういらんわ
少なくともそんなとこ考えてるときにオブジェクト指向言語じゃないと実装できませんねとか
意味不明なこと言い出した奴もういらんわ
956デフォルトの名無しさん
2020/09/15(火) 11:21:53.53ID:QOcZ+8t3 何かに反論するときに、◯◯って流行ってるの?っていう入り方するのって流行ってるの?
957デフォルトの名無しさん
2020/09/15(火) 11:28:14.31ID:msQN58rY オブジェクト指向でなければならないことはない
関数型ではダメなことは多い
手続き型のほうがうまくこなせることも現実世界には多い
それぞれ得手不得手がある
なのでそれらをいい感じに融合できるオブジェクト指向が正解ってわけ
融合する際にそれらの境界を上手く隔てるためにカプセル化が役に立つ
カプセル化を活用して、インフラストラクチャ、ステートフルリソース、手続き的な処理を隔離する
イミュータブルオブジェクトを導入して関数型の思想のもとで堅牢かつ柔軟なドメインモデルを構築する
このようにオブジェクト指向はなんでもそこそこ上手くできるからバランスがいいんだよ
現実を見据えたパラダイムだと思うよ
原理主義的にならずに旨味だけを享受すればいい
もちろんなんでもできるから使い方を間違えるとひどい目に合う
そこはしっかりと教育していくしかない
どんな道具でも学習は必要だ
関数型ではダメなことは多い
手続き型のほうがうまくこなせることも現実世界には多い
それぞれ得手不得手がある
なのでそれらをいい感じに融合できるオブジェクト指向が正解ってわけ
融合する際にそれらの境界を上手く隔てるためにカプセル化が役に立つ
カプセル化を活用して、インフラストラクチャ、ステートフルリソース、手続き的な処理を隔離する
イミュータブルオブジェクトを導入して関数型の思想のもとで堅牢かつ柔軟なドメインモデルを構築する
このようにオブジェクト指向はなんでもそこそこ上手くできるからバランスがいいんだよ
現実を見据えたパラダイムだと思うよ
原理主義的にならずに旨味だけを享受すればいい
もちろんなんでもできるから使い方を間違えるとひどい目に合う
そこはしっかりと教育していくしかない
どんな道具でも学習は必要だ
958デフォルトの名無しさん
2020/09/15(火) 12:11:23.59ID:DF4Wozgk959デフォルトの名無しさん
2020/09/15(火) 12:21:34.24ID:gc4PCUOV 関数型のクイックソートはクイックじゃねえからなwwwww
wwwww使い物にならねえわwwww
wwwww使い物にならねえわwwww
960デフォルトの名無しさん
2020/09/15(火) 12:23:00.49ID:YmrXu57g クイックソートの遅い実装?
961デフォルトの名無しさん
2020/09/15(火) 12:45:43.54ID:dgBsBrcB >>958
挙げてるじゃん
インフラストラクチャ、ステートフルリソース、外部APIコーディネート、などなど
数えたら枚挙に暇がない
関数型は所詮はインメモリの世界でしか通用しない道具だ
しかしインメモリに限れば強力なツールだ
なので関数型が苦手なことが得意な手続き型と組み合わせて使うのが正解
そして関数型と手続き型を密結合することなくうまく調和させるためにOOPのカプセル化や抽象化といった概念が役に立つ
挙げてるじゃん
インフラストラクチャ、ステートフルリソース、外部APIコーディネート、などなど
数えたら枚挙に暇がない
関数型は所詮はインメモリの世界でしか通用しない道具だ
しかしインメモリに限れば強力なツールだ
なので関数型が苦手なことが得意な手続き型と組み合わせて使うのが正解
そして関数型と手続き型を密結合することなくうまく調和させるためにOOPのカプセル化や抽象化といった概念が役に立つ
962デフォルトの名無しさん
2020/09/15(火) 13:04:11.00ID:RkqAJNr6963デフォルトの名無しさん
2020/09/15(火) 13:27:23.20ID:QOcZ+8t3 関数型に適応できる高速なソートのアルゴリズムってあるの?
964デフォルトの名無しさん
2020/09/15(火) 14:42:17.61ID:i/gZOuAl >>961
Erlang は上手くやってるな
Erlang は上手くやってるな
965デフォルトの名無しさん
2020/09/15(火) 20:20:21.30ID:X9YPG5on >>961
>インフラストラクチャ、ステートフルリソース、外部APIコーディネート
これが具体的な例なんだねww
にしてもインフラストラクチャてwww
無知を自覚してしっかり教育されるか、無知を認められず老害化するかは君次第
>インフラストラクチャ、ステートフルリソース、外部APIコーディネート
これが具体的な例なんだねww
にしてもインフラストラクチャてwww
無知を自覚してしっかり教育されるか、無知を認められず老害化するかは君次第
966デフォルトの名無しさん
2020/09/15(火) 21:23:52.92ID:gc4PCUOV 何わろてんねん
967デフォルトの名無しさん
2020/09/15(火) 22:03:17.38ID:IfSXNbex 「関数型はI/Oが苦手」
「関数型ではカプセル化できない」
と思っちゃってる個人の感想だよね
「関数型ではカプセル化できない」
と思っちゃってる個人の感想だよね
968デフォルトの名無しさん
2020/09/15(火) 22:08:43.90ID:X8qAKmym 次の世代は関数型OSだろな。
969デフォルトの名無しさん
2020/09/15(火) 23:38:31.91ID:Tmf/kgmE970デフォルトの名無しさん
2020/09/15(火) 23:49:58.45ID:cvpGF9OU 現実世界は副作用の塊なんだよ
関数型は現実問題を解決するには不向き
手続き型やOOPの力によって現実問題とうまく切り離された僅かな隙間であるインメモリ計算処理をうまくこなすことができる
関数型とはただそれだけの存在だ
関数型は現実問題を解決するには不向き
手続き型やOOPの力によって現実問題とうまく切り離された僅かな隙間であるインメモリ計算処理をうまくこなすことができる
関数型とはただそれだけの存在だ
971デフォルトの名無しさん
2020/09/15(火) 23:52:41.89ID:Tmf/kgmE 数学の世界では無限という数値だって扱えるんです
しかしコンピュータでは扱えません
しかしコンピュータでは扱えません
972デフォルトの名無しさん
2020/09/16(水) 00:11:09.88ID:XXyygoNj >>971
∞ + 1 = ?
∞ + 1 = ?
973デフォルトの名無しさん
2020/09/16(水) 00:33:59.70ID:6QoNdXGN インメモリ計算処理www
なんで理解できてないことをあたかも理解してるかのように語りたがるのかな?
知らない書けない理解してない無知な自分を認めたくないからって"あっちの水は苦い"と喧伝して自分を慰めても何にもならないぞ
なんで理解できてないことをあたかも理解してるかのように語りたがるのかな?
知らない書けない理解してない無知な自分を認めたくないからって"あっちの水は苦い"と喧伝して自分を慰めても何にもならないぞ
974デフォルトの名無しさん
2020/09/16(水) 00:47:40.07ID:XXyygoNj ここにいるhaskellerはレベル低そう
975デフォルトの名無しさん
2020/09/16(水) 00:48:27.03ID:XXyygoNj 悔しかったらOS実装してみろ
C言語ならできるぞ手続き型に負けて悔しくないのか
C言語ならできるぞ手続き型に負けて悔しくないのか
976デフォルトの名無しさん
2020/09/16(水) 00:56:03.92ID:NJW1Qx1P お前が実装したわけじゃあるまいしw
Windows はオブジェクト指向OS
Windows はオブジェクト指向OS
977デフォルトの名無しさん
2020/09/16(水) 00:56:44.43ID:7X1piV6a978デフォルトの名無しさん
2020/09/16(水) 01:00:28.73ID:xovTn/QF え?オブジェクト指向言語で解決できてる問題があると言っている?
恐怖を感じるほどのバカだな
恐怖を感じるほどのバカだな
979デフォルトの名無しさん
2020/09/16(水) 01:01:49.28ID:XXyygoNj >>976
それはそうやな
それはそうやな
980デフォルトの名無しさん
2020/09/16(水) 01:03:50.27ID:xovTn/QF え?win32apiが?
982デフォルトの名無しさん
2020/09/16(水) 01:10:26.55ID:XXyygoNj >>978
qmailのソースコード見たことある?
C言語なんだけどオブジェクト指向の極みなんだよ
https://github.com/amery/qmail
オブジェクト指向はqmailを解決したわけですね
qmailのソースコード見たことある?
C言語なんだけどオブジェクト指向の極みなんだよ
https://github.com/amery/qmail
オブジェクト指向はqmailを解決したわけですね
983デフォルトの名無しさん
2020/09/16(水) 01:22:52.13ID:XXyygoNj GitのソースコードもC言語なんだけどこれもオブジェクト指向の極み
https://github.com/git/git
コミットやリビジョン、リポジトリといった概念とソースコードが一致するようになってる
オブジェクト指向によるドメイン駆動設計
C言語すごい
https://github.com/git/git
コミットやリビジョン、リポジトリといった概念とソースコードが一致するようになってる
オブジェクト指向によるドメイン駆動設計
C言語すごい
984デフォルトの名無しさん
2020/09/16(水) 01:23:47.90ID:/p6a79yr ドメイン駆動って何?
985デフォルトの名無しさん
2020/09/16(水) 01:25:58.14ID:/p6a79yr986デフォルトの名無しさん
2020/09/16(水) 01:31:39.87ID:XXyygoNj987デフォルトの名無しさん
2020/09/16(水) 01:34:34.58ID:XXyygoNj >>985
それえ!
それえ!
988デフォルトの名無しさん
2020/09/16(水) 01:38:40.25ID:/p6a79yr >>986
おまえさん、ソフトウエア、あんまり作ったことなさそうだな…
おまえさん、ソフトウエア、あんまり作ったことなさそうだな…
989デフォルトの名無しさん
2020/09/16(水) 01:42:15.93ID:XXyygoNj990デフォルトの名無しさん
2020/09/16(水) 01:43:37.93ID:XXyygoNj DDDは流行の最先端だから覚えておくと良い
991デフォルトの名無しさん
2020/09/16(水) 01:48:57.66ID:/p6a79yr >>989
正直でよろしい。
そしたらY-cominatorを用いた動的計画法の解法についておよび
ラマヌジャンがノートに残したモジュラ関数を応用した超数近似の収束性とカ・マーカー方への応用を
十実装したプログラムにたいして何か知見があったらその痴性をひけらかして演説書いてチョンマゲ
つか、ど素人はすっこんで定年までROMってろよ、ってかんじ
正直でよろしい。
そしたらY-cominatorを用いた動的計画法の解法についておよび
ラマヌジャンがノートに残したモジュラ関数を応用した超数近似の収束性とカ・マーカー方への応用を
十実装したプログラムにたいして何か知見があったらその痴性をひけらかして演説書いてチョンマゲ
つか、ど素人はすっこんで定年までROMってろよ、ってかんじ
992デフォルトの名無しさん
2020/09/16(水) 01:51:37.85ID:/p6a79yr993デフォルトの名無しさん
2020/09/16(水) 01:56:50.65ID:/p6a79yr994デフォルトの名無しさん
2020/09/16(水) 02:50:38.64ID:0ZaEBr0v おまえら、とりあえず動くものを作ってから雑談しろよ。
995デフォルトの名無しさん
2020/09/16(水) 02:59:52.72ID:XXyygoNj なんでや?
996デフォルトの名無しさん
2020/09/16(水) 03:01:35.60ID:XXyygoNj 天文学者に宇宙行けと言ってるようなもんだろ
優れた頭脳は計算によって世界を知る
優れた頭脳は計算によって世界を知る
997デフォルトの名無しさん
2020/09/16(水) 03:02:42.46ID:XXyygoNj 作らざること山のごとし
998デフォルトの名無しさん
2020/09/16(水) 07:13:38.52ID:Mp+zrl2P 進捗する毎火の如し
999デフォルトの名無しさん
2020/09/16(水) 08:26:28.51ID:NJW1Qx1P キン肉マンネタ
1000デフォルトの名無しさん
2020/09/16(水) 09:05:02.14ID:ChCLAHZC ソフトウエアを作れない奴が、カプセル化だ、ゲッターセッターだ継承だ多態だ
薀蓄たれて開発者を惑わすのはやめる
足引っ張るだけだ
薀蓄たれて開発者を惑わすのはやめる
足引っ張るだけだ
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 48日 15時間 47分 4秒
新しいスレッドを立ててください。
life time: 48日 15時間 47分 4秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ [Hitzeschleier★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 [蚤の市★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【まずは自助】高市早苗「自らの命は自らが守るという原則に従っていただく」 青森の被災地、能登と同じく見捨てられる模様 [314039747]
- トランプ、G7に代わるcore 5を発表 [805596214]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★6
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★5
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
