[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/04 02:09 / Filesize : 316 KB / Number-of Response : 1037
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

カプセル化の有害性、オブジェクト指向は愚かな考え



1 名前:デフォルトの名無しさん [2020/06/18(木) 23:47:36.69 ID:l/2SQUll.net]
カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、オブジェクトの実際の型を隠蔽したりすることをいう。

かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。

一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性」として「カプセル化は絶対にやめろ」としている。

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)

267 名前:デフォルトの名無しさん [2020/06/26(金) 23:35:54.37 ID:n1YsnRgt.net]
カプセル化するなら
一切ソースコードレビューしなくていいんだな
変数やメソッドの命名もインデントも全部
適当にやるからな
文句つけるならテストの結果だけで文句を言って
くれよ、ソースコードには文句言うなよな。
例外をキャッチする必要もないな。
俺が利用するクラスで発生した問題はそのクラス内部の
責任だ。内部事情は意識しなくてもいいんだからな。
おっとロギングも内部事情だからやる必要ないな。
そんな事情は利用側は知りたくもないし結果だけが
欲しいんだもんな。

逆にこれらを押し付けるなら全部publicで問題ないよな。
クラスの内部を知りたいってことだからな。

「↑こいつはカプセル化が何なのかを理解してない。」


カプセル化おじさんがどうせこう言うだろうから先に
言っておいたわ。

268 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 23:45:57 ID:0CWC8I0Q.net]
>>259
「↑こいつはカプセル化が何なのかを理解してない。」

いや、先に言っておくと言っても、俺も同じこと言うんだが、
それで言われることを予測していたんだろ?
反論までは用意してないの?

269 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 23:50:21 ID:ks+n8Bmz.net]
珍しくこの手のスレでは比較的、リアルな批判がでたかも。

汎用性の無いビジネスドメインをオブジェクト指向を意識しながらクラス化したところで、メリット薄いよね?って話はまぁ、理解できる。
でも、ビジネスドメインを構成するクラスを汎用性の高いクラスだけで構成させることができれば、大分スッキリする。
いや、ほんと、そこがオブジェクト指向信者の腕の見せ所なんだがな。

たぶん、ビジネスドメインの責務分割の仕方を誤って神クラスを作ってしまうパターンにはまってるのかも。

270 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 23:56:26.67 ID:ks+n8Bmz.net]
でも、まぁ...開発者の立場次第にもよるのかも。
俺みたいに自社開発しているエンジニアだったら、利益を上げるレベルの品質を根拠にいくらでも納期を伸ばしてもらえるので、ド丁寧なオブジェクト指向プログラムを書く余裕があるけど、受託開発になると納期がギリギリに設定されがちだし(偏見?)、そんな最中、丁寧なコードなんて記述できるかって言われると...まぁ、どうなんだろうね。

271 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 23:58:23 ID:34AfLaws.net]
「状態によって挙動が変わる」ものが何十個も何百個も集まったら凡人には把握しきれない。

ましてや内部の状態が読み取りすらできないとなれば絶望的なことになるのバカでもわかる。

ウェブシステムや業務システムみたいにデータベースという巨大グローバル変数群を構造体にコピーしては書き戻すというのを繰り返すだけだと深い階層化が発生しないから問題は起きないんだろうね。

272 名前:デフォルトの名無しさん [2020/06/26(金) 23:59:12 ID:5Zl1C0wL.net]
>>260
お前が俺の書いたことに反論してみろ
お前が言う真のカプセル化とやらを説明しろ。

273 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 23:59:54 ID:TcIyIoqu.net]
>>259
前半はコードの品質をどういう観点から担保するかという話
例外やロギングはどういう責務/役割をどこに持たせるかという話
どちらもオブジェクト指向特有のものではない

274 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 00:00:02 ID:ihk0yOtr.net]
問題が起きやすいのはハードウェアに近い低層と、ライブラリ層と、ビジネスロジック層なんかに分業している分野だろうね。

275 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 00:05:48.57 ID:n2G2JMaM.net]
>>261
お前の主張の最大のメリットであるスッキリがお前の主観でしかない
そもそも設計書とソースの構造を一致させるための設計技術ではないのかな?



276 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 00:09:26.27 ID:ihk0yOtr.net]
データベースを使っているようなシステムはまず深い階層化は起きない。
RDBと階層化は相性が悪いからね。
それなのに深い階層化を使っている気分になっている人が多い。

ハードウェア制御絡みの本当に深い階層化を経験している人とは住んでいる世界が違う。

だから話が噛み合わない。

277 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 00:31:59 ID:npRplKHX.net]
みんな難しく考えすぎw
オブジェクト指向はインテリセンスが効くんで便利
それで納得しろよ これがないとダルいだろ

278 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 00:33:18 ID:0UrSdNRf.net]
>>267

> お前の主張の最大のメリットであるスッキリがお前の主観でしかない

事実を主観でしかないと批判されましても困るね。
実際、汎用性の高いクラス...それこそ、listやstack、http cliant並みに汎用性の高いクラスだけでプログラムが書かれてたらスッキリするだろ。
代替案があるなら、どうぞ。

> そもそも設計書とソースの構造を一致させるための設計技術ではないのかな?

何の話?

279 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 00:47:38 ID:eG65KKvD.net]
スッキリって何?コードが短くなるの?
頭悪いから50行以上は読めないんだけど

280 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 00:51:39 ID:n2G2JMaM.net]
>>270
いや、スッキリの定義は?
俺が見たらねっとりしてることない?

281 名前:デフォルトの名無しさん mailto:age [2020/06/27(土) 00:53:32.69 ID:kHv6hhb8.net]
>>263
その深い階層を扱うのはC言語でしょう?
C言語はオブジェクト指向です!

282 名前:デフォルトの名無しさん mailto:age [2020/06/27(土) 01: ]
[ここ壊れてます]

283 名前:02:58.36 ID:kHv6hhb8.net mailto: >>261
ドメインが安定してるところはオブジェクトを作って
ゆるふわなところは骨組みメソッド作る感じ?
それなら僕と同じです
[]
[ここ壊れてます]

284 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 01:03:48.38 ID:0UrSdNRf.net]
いや、普通にOOPのコードだけど...。
逆に、list,stack並みに...で、なぜ伝わらない。
当たり前すぎて伝わらなかったのか、初めて聞いた単語だから伝わらなかったのか。
このスレの連中だと高低差激しすぎてコミュニケーションが難しいな。

285 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 01:04:44.30 ID:0UrSdNRf.net]
>>274
あっ、はい。そうです。



286 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 01:08:16.33 ID:0UrSdNRf.net]
>>274
強いて言うのなら、ドメインが安定しているところに見える範囲がオブジェクト指向信者とオブジェクト指向使いとstaticおじさんで、どれくらい違うのかな

287 名前:って感じですが。 []
[ここ壊れてます]

288 名前:デフォルトの名無しさん mailto:age [2020/06/27(土) 01:11:06.46 ID:kHv6hhb8.net]
こうなるんだったらもっとこういうオブジェクトにすれば
良かったと思うことがザラにある
今最高にきれいでも未来の仕様変更でど汚くなることもある
いま汚くても未来の仕様変更がきれいにできることもある
その見極め方が僕には未だにわからない

289 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 01:11:51.83 ID:F7GoDPAy.net]
>>269
いや動的になる分、効きづらくなるだろばか。
それでもモジュール切り離しの視点で良いこともあるってのがオブジェクト指向の旨みなわけだが。
依存逆転のモジュール構造が作りやすいってだけの話なのにバカが変な哲学持ち出すから
カスみたいな輩がお前はわかってない、俺が真の意味を理解してるとか言い出すわけだよ。

290 名前:デフォルトの名無しさん mailto:age [2020/06/27(土) 01:20:22.14 ID:kHv6hhb8.net]
依存性を逆転させて良いことがあるっていうんですか!?

291 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 01:27:34.87 ID:BNc+T5Ob.net]
1万行超えてもスクロールして作業するのか?

292 名前:デフォルトの名無しさん mailto:age [2020/06/27(土) 01:28:03.05 ID:kHv6hhb8.net]
業務で扱うようなある程度複雑な仕様をどう設計して実装するか
みんなでプログラミングして比較してみたいねー

293 名前:デフォルトの名無しさん mailto:age [2020/06/27(土) 01:31:55.47 ID:kHv6hhb8.net]
>>281
内容によるんじゃないかな
みっちりコントロールフローが1万行あったら嫌だけど
御経がほとんどを占めてたらわかるだろうし徳が高まりそう

294 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 02:14:37 ID:n/FbqQvh.net]
>>282
業務というのはIBM(International Business Machines )より
パンチングカードの集計から始まっているので
主にアンケート調査結果や在庫管理プログラム
の設計ということになるだろう

295 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 06:21:43.43 ID:pgI/H4Wp.net]
>>282
業務に限らず、OOPに限らず
そもそもはそれが問題なんよ
複雑さそのものが
ある程度以上複雑なモンは人類にはムリなんよ
それが人類とプログラミングの関係なんよ

サンプルプログラムや学校の課題書いたり
趣味で小さいの書いてる連中と
ある程度以上複雑なモンを書いてる連中とはまずそこからして
想定してるもんが違いすぎる



296 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 07:01:10 ID:U90iCGW6.net]
>>285
きっと>>282は
小さな趣味プログラムでも大きな業務プログラムでも
ほらね、カプセル化したコーディングだとあーだこーだ
だからいったじゃん
「カプセル化は絶対にやめろ!」
という結論にもっていきたいだけだお

297 名前:デフォルトの名無しさん [2020/06/27(土) 07:42:28.66 ID:e0+LQFD/.net]
「オブジェクト指向は高度で複雑な事をやる技術者
だけが恩恵を受けられるもので簡単なシステム
書いてるような凡人プログラマは恩恵を
感じにくい。」

だったら入門書でそんなもの教えるな
初心者プログラマにソケット通信や
システムコールやカーネルみたいな話を
いきなり教えるんか?

298 名前:デフォルトの名無しさん [2020/06/27(土) 07:44:28.06 ID:e0+LQFD/.net]
凡人にとってオブジェクト指向は
邪魔でしかないんだよ。

高度な技術者の勝手な利便性を
凡人に押し付けるな。
凡人の方が大多数なんだよ。

299 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 07:54:23.66 ID:BNc+T5Ob.net]
何でプログラムやってるんだ?
もっと簡単なことがあるだろ

300 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 08:29:03.79 ID:0UrSdNRf.net]
>>286
どうだろ。
staticおじさん(「オブジェクト指向ってしっくりこないんです」の記事を書いて炎上、詭弁を重ねて意固地にstaticを薦めた有名な老害)じゃないのなら、まだ、大丈夫なんじゃね?

301 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 08:38:52.96 ID:0UrSdNRf.net]
それ以前に、カプセル化は絶対駄目の結論に持っていこうとしているのか?
日が変わるとID変わるから、誰が誰だかよくわからなくなってきた...。

302 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 09:43:50.27 ID:8YCrt6Qf.net]
何事も程度次第
ただ丁度良い程度を知るのは少数の天性のセンス持ちだけで
凡人には理解できなかったり極端に走ったりする

俺は凡人とセンス持ちの間、というか凡人の域を超えられないのかなあ
プログラム書くたびにどの程度で済ませるか、いつも迷ってる

303 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 10:00:13.69 ID:pgI/H4Wp.net]
OOP批判の大半はクラス設計の難しさによる
OOPによってもたらされたクラスライブラリが
十分に使いやすいのに対して
自分でクラスやインタフェースを作ろうとしたとき
納得の行かない結果になる

問題の切り分けが出来ず
再利用性のある単位ぴったりにフォーカスできず
一緒にあるべきものを別にしたり
別にあるべきものを一緒にしたり
縦に割る物を横に割ろうとしたり
いろんな判断をあやまった結果

最後に、クラス設計が悪いのではなくてOOPそのものが悪いと断ずる

304 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 10:09:46.57 ID:twDHZDh4.net]
>>287
別に初心者だってオブジェクト指向の恩恵は受けられるだろう。良くあるコンテナや文字列とかの基本的なものだってオブジェクト指向的なものだし。

それに初心者の内からオブジェクト指向について知っておく、慣れておくことは重要だろう。
世の中の便利なライブラリやフレームワーク等の多くはオブジェクト指向で作られているからそれを使えるようになるために必要。
自分で設計するのも初めは難しいが、理屈や理論を学びながら実例に触れ、試行錯誤しながら徐々に慣れていく。

何より、初心者だからとオブジェクト指向をまったく触れずに手続き型のみで経験を積んで、ある程度自分なりのノウハウや経験論を身に付けてから別のパラダイムを取り入れようとすると、中にはアレルギー反応を起こして適応できなくなってしまう人もごく稀にいるから。

305 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 10:47:57.21 ID:n2G2JMaM.net]
長い上に全く中身がないな
スッキリ以上のオブジェクト指向のメリットは出てないからね

これで技術者やってるつもりなんだから早く死ねよ



306 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 11:57:57.12 ID:0UrSdNRf.net]
>>295
お前の無駄口程、無駄な発言は無いけどな。

307 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 12:40:58.84 ID:ut+wnsgT.net]
カプセル化って別に外部からのアクセスを不能にすることじゃないよ
外部から『直接的』にアクセスさせることを避けて、そのかわり外部向けにわかりやすい何かを提供すること
現実のカプセルのように、扱いにくいものを隠して扱いやすく提供すること
別にカプセル化してもリフレクションやその他諸々で遠回りなアクセスが可能なこともある
カプセル化ってのはかなり意味の広い言葉で、「臭いものに蓋」みたいなこと全般をカプセル化と呼ぶ
極端な例だと、関数にわかりやすい名前をつけることで関数内部を見なくて済むようにすることもカプセル化と呼ぶ

308 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 12:43:14.13 ID:npRplKHX.net]
>>288
いやいや兵隊がよくわからないのに使えるするのが
オブジェクト指向の利点の一つだろ つかそれができないなら
オブジェクト指向にする意義がない まあ兵隊がよくわからないのに
使えるぐらいのオブジェクト指向ができるなら、設計した本人たちは
そもそもオブジェクト指向にしなくても出来ちゃうって逆説はあるわな

309 名前:デフォルトの名無しさん [2020/06/27(土) 13:14:49.52 ID:e0+LQFD/.net]
>>293
その通りだと思う
オブジェクト指向で作られたOSSの、ライブラリは
とても便利だし、役に立つと思う。

なら初心者や凡人へはクラスをインポートして使い方
のみを教えるべきで、クラスの作り方なんて
教えない方が親切だと思う

正直、自分でクラスなんて作りたくないし
組織内のメンバーが作成したローカル内の
クラスなんて利用や継承したくないし
自分が作ったクラスを誰かに利用して
欲しくない、使い捨てで十分。
再利用性は以前自分が書いたコードを複製
して微修正すればいいよ、
自分が書いたコードだから修正箇所は
把握して

310 名前:る。


JavaScriptやpyみたいな言語はオブジェクト指向
導入してるけどクラスの作成は必須じゃない
だけどJavaみたいな静的言語はクラスの作成が
必須になってる。ここがおかしいと思う。
クラス作ること強制してる言語仕様やフレームワークは
おかしいと思う。
[]
[ここ壊れてます]

311 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 13:26:54.01 ID:eG65KKvD.net]
再利用しない前提ならそりゃ無用の長物だわな

312 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 13:45:44.90 ID:ssxfEnBq.net]
そして再利用しようとすると微妙に仕様が変わって結局中身を改造しないといけなくなる罠。
汎用的なパーツ以外はクラス化すると余計手間かかるな。

313 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 13:51:13.06 ID:eG65KKvD.net]
なんというかprivate云々とかそういう次元の話じゃないよねこれ
なんか脱力した

314 名前:デフォルトの名無しさん [2020/06/27(土) 13:56:46.31 ID:kHv6hhb8.net]
再利用しなくてもテストしやすくなったりするからオブジェクトは素敵な概念だと思うよ

315 名前:デフォルトの名無しさん [2020/06/27(土) 13:58:08.98 ID:kHv6hhb8.net]
修正が必要になったとき、それを使う側に影響を与えないっていう性質があっていっぱいちゅき



316 名前:デフォルトの名無しさん [2020/06/27(土) 13:58:50.41 ID:kHv6hhb8.net]
まあ修正の程度にもよるんですけどね!(げきおこ

317 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 14:06:34 ID:UiFDXh57.net]
JavaをdisるJava全否定のスレッドなのね

318 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 14:13:22 ID:UrcM2fcl.net]
このスレタイの主張、可能なら複数の言語で、
オブジェクト指向で書かれたそれなりの量のコードを、
それより機能的で保守性があって行数も少なくて万人が読みやすいようにリファクタリングするとかして証明して欲しいなあ

それがプログラマの矜持ってもんだと思う
コードで語れってね

319 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 14:22:56.55 ID:Z/pHF8i9.net]
>>273
カプセル化はC言語でもできる。

320 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 14:23:12.65 ID:1p1mL4Jd.net]
バカなやつほど長文で演説した挙げ句オブジェクト指向のメリットをスッキリ以上のモノを挙げられない
レスしにくるなよ惨めだから

321 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 14:26:38.74 ID:Z/pHF8i9.net]
>>282
一般的な業務システムはデータベースに出し入れするだけだから深い階層構造にはならない。
データベースに出し入れする際の受け皿となる構造体が1層あるくらいだろ。

そもそもRDBは階層構造そのままぶち込めないし。

322 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 14:34:40.99 ID:Z/pHF8i9.net]
>>307
最近流行りのPythonで作られたシステムを見て回れば?
カプセル化は言語仕様で禁止されてるから強制的に>>1の言うとおりに作るしかない。

323 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 14:37:58 ID:Z/pHF8i9.net]
>>307
というか最初の開発で問題になるようなことではないからソースコードでは比較できないでしょ。
機能追加・改修案件で発生する問題の話だし。

324 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 14:50:29.02 ID:1p1mL4Jd.net]
初めに赤字が出たら続きはねーよw

325 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:01:24.90 ID:Z/pHF8i9.net]
これオブジェクト指向の善し悪しじゃないよね。
改修発生時に雲の上で決まった無茶な追加仕様にどれだけ耐えられる構造にできるかという話だ。

ただオブジェクト指向は昔ながらの教科書どおりにやると耐えられない構造になりがち。
もちろんオブジェクト指向でなくても発生する。
C言語でも発生する。

そうならないようコーディングの約束事を決めよう。
そうなってないかコードレビューはしっかりやろう。



326 名前:デフォルトの名無しさん [2020/06/27(土) 15:03:08.36 ID:kHv6hhb8.net]
>>311
へーPythonにはアクセス修飾子がないんだ知らなかった
命名規則でこれはprivateなものだよと示すわけね
JavaScriptみたい

327 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:04:29.05 ID:qJyof1ZF.net]
>>311
>カプセル化は言語仕様で禁止されてるから

ソースは?

328 名前:デフォルトの名無しさん [2020/06/27(土) 15:09:38.92 ID:kHv6hhb8.net]
Pythonにアクセス修飾子がないことはググればわかるじゃん

329 名前:デフォルトの名無しさん [2020/06/27(土) 15:09:51.10 ID:kHv6hhb8.net]
ソースは僕だ!

330 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:10:07.03 ID:Z/pHF8i9.net]
>>316
https://www.python.org/downloads/source/

331 名前:デフォルトの名無しさん [2020/06/27(土) 15:10:51.38 ID:kHv6hhb8.net]
マヨネーズの君とソースの僕

332 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:12:52.88 ID:qJyof1ZF.net]
>>310
構造体が別の構造体を参照してる

333 名前:データ構造は階層構造とは呼ばないということかな?

階層構造の深さがカプセル化やオブジェクト指向と何の関係があるの?
[]
[ここ壊れてます]

334 名前:デフォルトの名無しさん [2020/06/27(土) 15:13:38.77 ID:kHv6hhb8.net]
そう言えば日本の業務形態には貧血ドメインの方がよく適合するなんて話があったなあ
貧血って言うと悪い印象があるからシンドメインとかスリムドメインに言い換えて
スリムドメインの方が優れてるんだって風潮がそろそろ出てきても良いと思う

335 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:14:18.21 ID:qJyof1ZF.net]
>>317
“アクセス修飾子がない” == “カプセル化が言語仕様で禁止されてる”
=> False



336 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:15:51.79 ID:Z/pHF8i9.net]
>>321
それただのポインタだろ

337 名前:デフォルトの名無しさん [2020/06/27(土) 15:18:13.32 ID:e0+LQFD/.net]
そもそも、一昔前ならソフトウェアは
製品化して値段を付けて売るって考えがあったから
保守や仕様変更の影響範囲について関心が高かった。
だからオブジェクト指向は必要だったかもしれない

だが現在ではソフトウェアは基本無料が当たり前だし
プロジェクト依頼元の依頼を受けてオーダーメイドで
システムを作るから依頼元だけが金を払ってくれるの
であって
あとはスマホアプリを無料配布して
そのアプリで課金してもらって金を稼ぐみたいな
稼ぎ方だから、ソフトウェア自体に売却する価値はない。
売却する資産価値がないからオブジェクト指向で
保守する価値がない、使い捨てにすればいい。

実際、スマホアプリとかのほとんどが軽微なバグ
とか沢山潜んだままリリースされていて、ずっと
放置されてたりするじゃん。

338 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:19:44.46 ID:Z/pHF8i9.net]
>>321
ポインタは横の繋がり
上下関係ではない

深い階層化というのは、雲の上で決まった仕様に底辺開発者は意見できないということ。

深い階層化というのは、底辺開発者が受けてるパワハラなど雲の上は知らないということ。

339 名前:デフォルトの名無しさん [2020/06/27(土) 15:20:21.12 ID:kHv6hhb8.net]
>>323
では君と僕のカプセル化の定義が異なるだけじゃん
君のカプセル化の定義で僕が言ってることを解釈するからFalseになる
僕が言ってることは僕の定義で解釈したらTrueになる
アクセス修飾子が存在することをカプセル化可能と定義します
よろしくおねがいします

340 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:23:36.87 ID:qJyof1ZF.net]
>>327
“カプセル化可能” == “言語仕様でカプセル化を禁止している”
#=> False

341 名前:デフォルトの名無しさん [2020/06/27(土) 15:25:23.02 ID:kHv6hhb8.net]
>>328
だからさー君のカプセル化の定義を知らないしそれを言ってもらわないことには
真偽値だけ言われても僕どうしたらいいかわからないよーえーん(T_T)

342 名前:デフォルトの名無しさん [2020/06/27(土) 15:26:25.05 ID:kHv6hhb8.net]
カプセル化とはアクセス修飾子でprivateにできることを言います

343 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:28:46.34 ID:UrcM2fcl.net]
本当に?

344 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:31:32.87 ID:qJyof1ZF.net]
>>326

>>310
>一般的な業務システムはデータベースに出し入れするだけだから深い階層構造にはならない。

このレスに書いてる”階層構造”の定義を聞いてるに
全く違う”階層化”の話を出されても困る
特に考えてなかったんなら別にそれで構わない

345 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:32:44.69 ID:qJyof1ZF.net]
>>328
バグってた

“カプセル化不可能” == “言語仕様でカプセル化を禁止している”
#=> False



346 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:40:51.44 ID:Z/pHF8i9.net]
>>332
データベースで深い階層化が起こるとすれば、
・データベースの出し入れはストアドプロシージャ経由のみ
・誰かが作ったストアドプロシージャを叩くライブラリ
・末端開発者が見えるのはライブラリのみ

という状況

347 名前:デフォルトの名無しさん [2020/06/27(土) 15:45:38.60 ID:kHv6hhb8.net]
>>331
ホントっす

348 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:46:26.65 ID:ut+wnsgT.net]
ちがうよ

349 名前:デフォルトの名無しさん [2020/06/27(土) 15:46:32.04 ID:kHv6hhb8.net]
>>333
なんでFalseになるか説明できる?
できないんだったら君は間違ってる

350 名前:デフォルトの名無しさん [2020/06/27(土) 15:47:10.15 ID:kHv6hhb8.net]
>>336
何が違うんですか!?なんでですか?説明してください!

351 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:47:49 ID:UrcM2fcl.net]
内包してない?

352 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:48:03 ID:ut+wnsgT.net]
>>338
定義が違うから説明しろと言われても困る

353 名前:デフォルトの名無しさん [2020/06/27(土) 15:48:32 ID:kHv6hhb8.net]
>>340
説明くらいできるだろハゲ、横着すんな

354 名前:デフォルトの名無しさん [2020/06/27(土) 15:48:33 ID:PPBVSkWl.net]
ぬるぽ

355 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:52:34 ID:ut+wnsgT.net]
>>341
>>294



356 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:53:17 ID:ut+wnsgT.net]
>>341
安価ミス
>>297

357 名前:デフォルトの名無しさん [2020/06/27(土) 15:53:25 ID:kHv6hhb8.net]
>>343
なるほどね、アレルギーが、そういうことね

358 名前:デフォルトの名無しさん [2020/06/27(土) 15:53:46 ID:kHv6hhb8.net]
恥かいた

359 名前:デフォルトの名無しさん [2020/06/27(土) 15:54:37 ID:kHv6hhb8.net]
安価ミスってんじゃないよ!!
納得した僕が馬鹿みたいでしょうが!!

360 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 15:55:00 ID:ut+wnsgT.net]
馬鹿なんじゃないの?

361 名前:デフォルトの名無しさん [2020/06/27(土) 15:56:18 ID:e0+LQFD/.net]
ああもうめちゃくちゃだよ!

362 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 16:01:21 ID:7UzCd1n0.net]
何やってんだおめーら。
そのへんでやめとき。

363 名前:デフォルトの名無しさん [2020/06/27(土) 16:02:43 ID:kHv6hhb8.net]
カプセル化には強度があります。

C言語のヘッダやJavaのprivateといった言語機能として
カプセル化できることを強カプセル化と言います

JavaScriptやPythonのように命名規則によって使用者に
知らせるカプセル化のことを弱カプセル化と言うのです。

>>348 僕のこと見直してくれてもいいです

364 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 17:08:00.05 ID:WDOSBdwF.net]
カプセル化こそ
すでに時代遅れだったんじゃねーの?

365 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 17:38:28.03 ID:ut+wnsgT.net]
>>351
頭悪そう



366 名前:デフォルトの名無しさん [2020/06/27(土) 17:59:51.27 ID:kHv6hhb8.net]
>>353
嘘つき!

367 名前:デフォルトの名無しさん [2020/06/27(土) 18:27:35.27 ID:e0+LQFD/.net]
>>351
これまでの話を統合した結論として、

いまはgitなどバージョン管理差分確認ツールや
エディタやIDEの機能が充実してるから

言語機能でカプセル化して
「内部を意識しない」ように隠蔽したり制限するのではなく
開発ツールを駆使して内部を意識はするけど
ソースの仕様変更切り替えに対応しやすくなっている
やり方が主流

開発ツール進化によりカプセル化はその役割を終えた。
継承や抽象クラスやオーバーライドも非推奨
これをやると同じ名前のメソッドが沢山あって
IDEによるプロジェクト内キーワード全文検索を
阻害するから






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<316KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef