カプセル化は愚かな考え

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/07/29(水) 17:17:58.13ID:u638n5uE
■危険性

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

一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性(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)
2020/08/20(木) 23:07:26.61ID:Ha0cLvqC
>>213
ハイハイ、オブジェクト指向にメリットが全く無いのはメリットを感じ取れないやつがバカなんだよなw
誰も証明できないけどなw
バーカ、一生やってろw
218デフォルトの名無しさん
垢版 |
2020/08/20(木) 23:08:01.72ID:qjxJt4Hn
そのライブラリ使ってるブログ検索して
真似するだけなんだよなぁ…
隠蔽要らんやん
2020/08/20(木) 23:11:15.07ID:Ha0cLvqC
>>216
は?何言ってるのか意味不明
2020/08/20(木) 23:13:58.87ID:KHHtBj+5
>>219
隠蔽っていうのはな、コードとデータの両方の話なんだよ
ライブラリにすれば中身を見なくてすむようになるんだよ
知ってるか?
2020/08/20(木) 23:15:04.46ID:KHHtBj+5
頑張ってクイックソートライブラリを作ったおっさんは
これでもうソートするときに中身をいちいち見なくてすむ
って安堵してるわけだ
2020/08/20(木) 23:19:44.69ID:Ha0cLvqC
>>220
でも修正するとき見ないと駄目なんだろw
つまり作る側と使う側が完全に別れてないときにクラスなんか無意味なんじゃない?
2020/08/20(木) 23:44:16.56ID:KHHtBj+5
>>222
オブジェクト指向
 修正しない時・・・見ない(メリット)
 修正する時・・・見る

関数型言語
 修正しない時・・・見る(デメリット)
 修正する時・・・見る

理解できますか?
224デフォルトの名無しさん
垢版 |
2020/08/20(木) 23:44:18.70ID:iNatz9V0
>>195
そうそう。
カプセル化っていってんだから、オブジェクト指向は関係ない。
Cの構造体でメンバを公開したり非公開にしたりできまっせ。っていうだけのこと。
それを愚かというなら、その程度の規模のプログラムしか作ったことないんだろうね。
225デフォルトの名無しさん
垢版 |
2020/08/20(木) 23:45:52.06ID:iNatz9V0
>>222
君って情報学部の学生さんなんか?
それとも、どっかの会社でプログラマーの卵として頑張ってるのか?
プログラミングの素養が絶望的にないから、他の道で頑張ったほうがいいよ。
2020/08/20(木) 23:47:57.89ID:Ha0cLvqC
>>223
は?意味不明
なんの説明してんの?
恥の上塗りの達人かよ
2020/08/20(木) 23:49:20.30ID:KHHtBj+5
>>226
理解できないのか?

お前が○○の時に限っては見るんだから意味ないっていうから
○○の時だけ見るというのはメリットだって言ってるんだが
2020/08/20(木) 23:50:03.69ID:Ha0cLvqC
>>225
年収1000万超えのカリスマプログラマー(笑)さんですか?
2020/08/20(木) 23:50:43.49ID:KHHtBj+5
> でも修正するとき見ないと駄目なんだろw

でも風呂に入るとき脱がないと駄目なんだろw
じゃあ服着る意味がないじゃない

といっているのがお前
230デフォルトの名無しさん
垢版 |
2020/08/20(木) 23:55:00.24ID:iNatz9V0
>>227
「見る」の一人称が机に座ってモニターを眺めてる>>226なんだよ。
こんなのが新卒として入ってきたら、速攻で人事に掛け合ってクビにさせる。
231デフォルトの名無しさん
垢版 |
2020/08/20(木) 23:56:32.42ID:iNatz9V0
>>230
机じゃなくて椅子か。
2020/08/20(木) 23:59:10.43ID:Ha0cLvqC
>>227
は?だってメンバ変数ってクラス内限定のグローバル変数だぜ
このときのお前のメソッドは俺の作るpublic staticなメソッドより遥かに
不出来で読みにくい
どこでいきなり編集されるかわからないメンバ変数に気を配りながら
メソッドを読むのはぶっちゃけ苦痛でしかない
2020/08/21(金) 00:00:02.85ID:f3uMOLT8
>>229
たとえ話が適切であることを証明してからしろよそういうのは
234デフォルトの名無しさん
垢版 |
2020/08/21(金) 00:01:33.82ID:x4g5r5SE
> メンバ変数がクラス内限定のグローバル変数
その通りなんだが、声を出して笑ったわ。
君と働く人たちは大変だなw
2020/08/21(金) 00:13:52.76ID:8bG0TKoL
>>232
> は?だってメンバ変数ってクラス内限定のグローバル変数だぜ
お前の場合、ローカル変数は関数内限定のグローバル変数って言うだろw
2020/08/21(金) 00:14:57.41ID:8bG0TKoL
条件付きで何かを主張し始めたら、
それはもう主張が破綻してるってことなんですよ。

Macユーザー限定だとMacのシェア100%だ!みたいにね
2020/08/21(金) 00:31:48.71ID:FlbTfju5
>>234-235
俺の作るpublic staticのが遥かに厳密に管理されてて
お前らのはしっかりやってるようでいて
わりかしドンブリだってわかっただろ?
俺はオブジェクト指向のここが特に嫌でメンバ変数がグローバル変数的な問題を起こすところが
クラスが大きくなったときに本当に嫌

つまり俺が嫌いなのはグローバル変数的な動きをするメンバ変数なんだよ
クラスでもちゃんと引数通してアクセスするような造りにしてるときは別にいいぜ
ただそれやるならpublic staticのがいいしやっぱりバカだね
2020/08/21(金) 00:43:01.36ID:8bG0TKoL
> わりかしドンブリだってわかっただろ?

なにか証明した?
それがわかるというレスを(明示できるなら)やってみてよw
2020/08/21(金) 00:43:45.59ID:8bG0TKoL
>>237
関数内ローカル変数が、グローバル変数だっていうのなら
関数を小さく保てばいいだけでは?w

あ、クラスの話でしたっけ?
同じですがね
2020/08/21(金) 01:05:05.19ID:FlbTfju5
>>238
だってpublic static でグローバル変数無しなら
入力に対する出力が絶対一定だぜ
これ以上の安心感ってあるの?
2020/08/21(金) 01:06:35.83ID:FlbTfju5
まあ、デバイス絡むとそいつの状態次第だけど
そこに限定できるじゃん?
2020/08/21(金) 02:13:09.68ID:8bG0TKoL
>>240
引数が大量になるじゃんw
クラスの中にある変数を全部引数で渡すとしたら
何十個にもなるからな

それとも構造体で渡すのか?
そうすると構造体のうちどこを弄るかわからないから
結局グローバル変数と変わらなくなるなw
243デフォルトの名無しさん
垢版 |
2020/08/21(金) 03:01:20.82ID:2Tg4ivJd
たしかにベテランになるにつれ、パブリックスタティック関数でやりきる方がすっきりするかもしれん
整理の上手さで
利点はソースがシンプルで早く作れるのと、可読性が良い
ただし整理が上手い場合
もっとも、整理が下手ならクラスもうじゃーっとなるw
無駄にやたらオーバーロードしてたり
244デフォルトの名無しさん
垢版 |
2020/08/21(金) 03:02:16.79ID:2Tg4ivJd
いやオーバーロードはパブリックスタティックでもできるか
245デフォルトの名無しさん
垢版 |
2020/08/21(金) 04:45:13.35ID:xkZp2iCS
>>243
もともと小さいプログラムならどっちでやってもすっきり書ける
問題はある程度大きくなると状態とかを取り回す必要が生じてその場合は
毎回staticな関数を呼ぶときにそれらを引数として渡さなきゃいけない
そこまで想像して発言してるか?
246デフォルトの名無しさん
垢版 |
2020/08/21(金) 04:53:48.30ID:xkZp2iCS
小さいプログラムに対してはオブジェクト指向なんて記述が大げさすぎるのは事実だ
でもプログラムが大きくなってくるとその恩恵に預かれる
2020/08/21(金) 04:55:17.21ID:cTh5+k8G
例えばボタンを描画する関数があったとする
そのスタイルとはボタンの色、サイズ、座標

面倒くさいからリンクを貼るけど
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.button?view=netcore-3.1

AccessibilityObject, AccessibleDefaultActionDescription, AccessibleDescription, AccessibleName,
AccessibleRole, AllowDrop., Anchor, AutoEllipsis, AutoScrollOffset, AutoSize, AutoSizeMode,
BackColor, BackgroundImage, BackgroundImageLayout, ImageLayout, BindingContext,
Bottom, Bounds, CanEnableIme, CanFocus, CanRaiseEvents, CanSelect, Capture,
CausesValidation, ClientRectangle, ClientSize, CompanyName, Container, ContainsFocus,
ContextMenu , ContextMenuStrip, Controls, Created, CreateParams, Cursor

飽きたがこれぐらい渡せばボタンが実現でっきるやろ
2020/08/21(金) 05:34:11.16ID:FlbTfju5
>>242
どっちでもいいよ
そこで見た目にビビってやめちゃうのが一番の害
それだけ複雑な処理だから仕方ないんだよ
逆にそれだけのもんをグローバル変数で空中戦なんかするから手に負えなくなる

どんなにでかくなっても引数と戻り値に打ち込めや
逆にそこの検閲を徹底するから楽になるんや
2020/08/21(金) 05:36:23.70ID:FlbTfju5
>>247
必要なら全部持っとけや
それらをグローバル変数で空中戦やられる地獄を味わうよりずっといい
250デフォルトの名無しさん
垢版 |
2020/08/21(金) 07:03:30.98ID:xkZp2iCS
>メンバ変数ってクラス内限定のグローバル変数だぜ
最強の迷言
2020/08/21(金) 08:40:41.98ID:FlbTfju5
>>250
でもそうだろ?
俺のpublic staticグローバル変数無しのメソッドのが遥かにキッチリ作ってあるというわけ
252デフォルトの名無しさん
垢版 |
2020/08/21(金) 09:09:18.44ID:x4g5r5SE
お前がコーディングしたプログラム貼れよ。
一つのメソッドで1000行とかそれ以上書いてそうなんだよな。
253デフォルトの名無しさん
垢版 |
2020/08/21(金) 09:57:08.78ID:Tdq0GS4g
>>250
君は引数やローカル変数、戻り値の代わりにインスタンス変数使ってるプログラムを見たことがない幸せな人
オブジェクト指向こじらせたバカは想像を超えてくるぞ
254デフォルトの名無しさん
垢版 |
2020/08/21(金) 10:00:09.80ID:Tdq0GS4g
変数は必要最小限にしたが良い
数もスコープも
255デフォルトの名無しさん
垢版 |
2020/08/21(金) 10:30:15.77ID:aoU7uP7R
要するにゴミのような想像を絶する現場で使われてる言語がJavaだった、と
すると袈裟が憎い理論も成り立つ

が、どんなパラダイムのどんな言語を使っても底辺ドカタはゴミを作り出す
とすると、一定水準以下の知能の物体は習得できない、面倒な言語を作った方がいい
2020/08/21(金) 10:41:29.06ID:FlbTfju5
>>254
だからってその解決方法がグローバル変数じゃ駄目なわけよ

引数外してグローバル変数や突然取得できる何らかの手法例えばメンバ変数に逃げるのはやってはいけないこと
最低限にするのであって本来必要な引数までカットしていいわけではない
2020/08/21(金) 10:42:26.76ID:cTh5+k8G
>>256
必要な引数が多かったらどうすんの?
2020/08/21(金) 10:49:23.77ID:FlbTfju5
>>257
処理を分けるかそれができなければ
その引数はそのメソッドに必要なものなので潔く引数にズラズラ並べる
こうすることで
引数を通した時点で型チェック
メソッドを呼び出した頭で値のチェックができ、適切なエラーが出せるし出しやすい
無くしてしまっては何にもわからない
呼び出した側はその変数がそのメソッドに使われているかどうかすらわからない
エラーを出してもそれが内包されてるメンバ変数では一体何が起こったのかさっぱりわからない
2020/08/21(金) 10:57:12.37ID:wUhiKu+g
>>258
俺はお前が何をやってるのかさっぱりわからないよw
結局のところ、お前はお前の言うやり方で、現実的に意味のある動作をするそれなりの規模のプログラムを書いたことはあるの?
実際のスケール感を無視して、頭の中の小さなサンプルだけをイメージしながら机上の空論を並べ立ててるだけでないの?
そりゃ自分に都合のいいモデルだけをイメージしてれば、サイキョーのカンペキな理論ができるわな
260デフォルトの名無しさん
垢版 |
2020/08/21(金) 10:58:41.37ID:xkZp2iCS
もうこのバカ相手にするのやめません?
2020/08/21(金) 11:01:10.93ID:cTh5+k8G
>>258
メンバ変数は型チェックされるよ?
その型しか入らないからね
2020/08/21(金) 11:01:36.84ID:cTh5+k8G
>>258
> エラーを出してもそれが内包されてるメンバ変数では一体何が起こったのかさっぱりわからない

意味不。どの変数を参照してるかなんてコード見ればわかるだろ
2020/08/21(金) 11:01:59.90ID:cTh5+k8G
>>260
おもちゃを取り上げないでくれないかな?w
2020/08/21(金) 11:11:15.32ID:FlbTfju5
>>262
いきなりメソッドの中身を見る話になってんじゃん
見る必要ないんだろ?w
2020/08/21(金) 11:29:37.79ID:cTh5+k8G
>>264
だから修正するときと使う時の話をごっちゃにするな
使うときはメソッドの中身なんか見ない
2020/08/21(金) 11:30:05.87ID:cTh5+k8G
何度言っても理解できない。アホなのか?本当のアホなのか?
2020/08/21(金) 11:33:26.05ID:cTh5+k8G
引数で渡すと、この値なんなんですか?ってなる
「内部で使用するフラグです。」

初期化関数を呼んだら内部で必要なデータを返しますので
次呼ぶときに渡してください。
ファイルハンドルっていうんです。

みたいなね。

内部情報が一つだけならいいが
複数あったらどうするのか?

ファイルハンドルは内部に確保したメモリに
シーク位置を紐付けて保存してるんですよ
なんてことになるw
268デフォルトの名無しさん
垢版 |
2020/08/21(金) 11:47:09.66ID:UrYJ9hGn
>>247
ボタンごときに膨大なプロパティがあるのがおかしい
整理できてないw

さておき、実際にはほとんどデフォルトで使うから、「クラスなら面倒がない」と言いたいのかな
関数でも名前付き引数、あるいはコレクション渡しで未設定ならデフォルト、で省略できると思うが

まあコレクションはオブジェクト指向の基礎なので、これを使えば既にオブジェクト指向なんだろうけど
WinAPIもスタティック関数でオブジェクトを動かすので、スタティック関数は別にオブジェクト指向の対立概念ではないが
2020/08/21(金) 12:00:44.90ID:pQPzrAvT
>>267
内部で〜はお前が出してるメッセージの問題だよね?
2020/08/21(金) 12:03:46.30ID:pQPzrAvT
>>265
じゃあ、エラーもトレースも外に出すなよ
お前が作ったモノは、ただ、ただ、わけもわからず落ちろ
2020/08/21(金) 12:08:14.57ID:cTh5+k8G
>>268
> ボタンごときに膨大なプロパティがあるのがおかしい

現実見ろよ

お前が言う方法で、create_button関数作ってみ

ボタンの属性として、ボタンの値、無効ボタンかどうか、
位置x、y、z座標、文字の色、ボタンの色、枠のスタイル、
ボタンの余白、文字の右寄せ・左寄せ、フォント、
まだまだあるが、これぐらいでいいだろう?

ボタンを作ったらこれだけの属性が初期設定として
設定される

はい、引数で作ってみてください
あと将来の拡張性も考えてね。
増えるかもしれない
2020/08/21(金) 12:24:30.10ID:FlbTfju5
構造体でも作れば見た目シンプルになるで
2020/08/21(金) 12:28:47.71ID:AwYjNd+Z
>>272
構造体はグローバル変数やろ?
どこを書き換えるのかわからんのだから

それとも一つのクラスになってるから
それは一つの引数だ!っていうつもりか?
あ、間違った一つの構造体だったw
2020/08/21(金) 12:32:51.09ID:AwYjNd+Z
結局、引数で複数の情報を与えるのはずらずら何十個の並べれば
また可能だとしても、戻り値が一つしかないから現実的じゃないんだよね

クラスを使うのは、一つのメソッドで
複数のプロパティを操作することがあるからなわけ
例えばcreate_buttonだったら複数のプロパティを初期化する

戻り値で複数の値を返せないし、戻り値を構造体とかクラスにして返すとしたら
結局それはお前の言うクラス内のグローバル変数と同じになってしまう
引数の構造体(クラス)のうちどこを変更するかわからないからね
2020/08/21(金) 12:50:37.55ID:AwYjNd+Z
引数で渡すと将来の修正時の拡張性と互換性が犠牲になる
これはいい知見だ
2020/08/21(金) 12:51:17.64ID:7UnAdk+W
変数のスコープと型の違いも区別できてないようだと
どういうやり方しても泥スパゲッティしか出来上がらない
277デフォルトの名無しさん
垢版 |
2020/08/21(金) 12:53:26.97ID:Q2DXCe4b
関数型を否定するのか。
2020/08/21(金) 12:57:43.17ID:AwYjNd+Z
関数型は否定してないよ

少数の引数と一つの戻り値だけで実現できることなら関数型でやればいい
それができないことまで無理してやろうとするのはデメリットしか無いという話

引数で渡せばメリットが有る、だから引数で渡すようにしよう!
これは間違いで
引数で渡せる場合は、関数型にメリットが有るが
そうでない場合にはむしろろデメリットになる
条件に応じて関数型にするかに分岐するのであって
関数型にするために条件を無理やり歪めてはいけないということ
2020/08/21(金) 13:56:53.08ID:YabcZt9w
構造体でまとめることによって引数で渡せるようになるのなら、そうした方が関数型的な考え方に親和的ということはない?
戻り値が引数以外に依存するのはできるだけ避けるというのが関数形的な発想かと思っていたが、
2020/08/21(金) 14:03:53.99ID:AwYjNd+Z
>>279
そうすると結局、クラス内のメンバ変数のどこがいじられるかわからないというのが
引数の構造体のどこがいじられるかわからないという問題に変わるだけで
関数型を使うメリットが無くなる
じゃあもうクラスでいいじゃんとなる

何度も言うように、関数型が優れてるから関数型に移行するのではなく
関数型が優れてる場合は限られてるので、そこだけ関数型にすればいい
関数型にメリットがないならオブジェクト指向にすればいい

その例が、ボタンの生成のように一つの関数で
複数のメンバ変数を初期化するような例
2020/08/21(金) 14:05:27.74ID:AwYjNd+Z
× 戻り値が引数以外に依存するのはできるだけ避ける
○ 戻り値が引数以外に依存するのが "避けられる場合に限って" 関数型を使いましょう
2020/08/21(金) 14:22:18.92ID:7UnAdk+W
関数型を実践したこともないのに
知ったかして関数型関数型と連呼しちゃうのは
日本を出たこともなく日本のことしか知らないのに
欧米では〜欧米では〜と連呼してるのと同じ
283デフォルトの名無しさん
垢版 |
2020/08/21(金) 14:28:24.68ID:Tdq0GS4g
自分で経験したことしか信じない人っていますよね
284デフォルトの名無しさん
垢版 |
2020/08/21(金) 14:42:05.45ID:Tdq0GS4g
じゃあグローバル変数を使って大規模なプログラムを組み上げたことがない人はグローバル変数を批判してはいけないのか
実践せずともわかるだろうが、関数型も欧米も想像で十分
2020/08/21(金) 15:11:36.49ID:AwYjNd+Z
だから多数のプロパティを持つcreate_buttonを関数型で実装してほしい
286デフォルトの名無しさん
垢版 |
2020/08/21(金) 15:22:29.34ID:xkZp2iCS
それもグローバル変数を使わずに
287デフォルトの名無しさん
垢版 |
2020/08/21(金) 15:23:39.17ID:xkZp2iCS
押下されたらちゃんとその状態も反映すること
288デフォルトの名無しさん
垢版 |
2020/08/21(金) 15:27:03.62ID:Q2DXCe4b
1クラス1メソッドの原則を守れば可能。
2020/08/21(金) 15:29:04.16ID:2S3OsUgZ
1クラス1メソッドの原則なんて言葉はお前が考え出したものだろ?w
2020/08/21(金) 15:38:01.82ID:YabcZt9w
ボタン自体は状態を持つものだから、オブジェクト指向で実装するのが自然でしょ?(関数型でも抜け道があるのかもしれないが、自分は関数型には詳しくないのでわからない)
しかし、上でされていた議論はそういう話ではなくて、関数の戻り値が依存する情報を、@全て引数として与えることも、A一部はメンバ変数から引っ張ってくることもできるという状況の場合に、どちらを選択するかという問題設定だと思っていたんだが。
2020/08/21(金) 15:41:01.39ID:2S3OsUgZ
>>290
関数型の主張が「どんな場合でも引数で渡して戻り値で戻したほうがいい」だから
オブジェクト指向の主張は元から、内部にプロパティが多数ある場合の話をしてる
292デフォルトの名無しさん
垢版 |
2020/08/21(金) 15:47:59.93ID:xkZp2iCS
グローバル変数未使用で関数のみを使って状態にも対処できる!
オブジェクト指向なんて選択肢はない!
と言い張る子の霊圧が消えた...
293デフォルトの名無しさん
垢版 |
2020/08/21(金) 15:49:18.62ID:x4g5r5SE
>>252
ぉ?Javaディスってんのか?

>>290
> ボタン自体は状態を持つものだから、オブジェクト指向で実装するのが自然でしょ?
いや、別にオブジェクト指向で実装するのが自然っていうのは乱暴だろ。

ほんと、ソース貼れよ。引きこもりのアマグラマーがw
294デフォルトの名無しさん
垢版 |
2020/08/21(金) 15:50:37.63ID:xkZp2iCS
そして日本語もまともに読めないらしい
295デフォルトの名無しさん
垢版 |
2020/08/21(金) 16:05:07.06ID:xkZp2iCS
はよこいつにとどめさしてあげて
2020/08/21(金) 16:24:00.01ID:2S3OsUgZ
もう死んでね?w
ボタンを関数型で作れなかったんだから
297デフォルトの名無しさん
垢版 |
2020/08/21(金) 17:27:54.83ID:Tdq0GS4g
>>296
お前作れんの?
298デフォルトの名無しさん
垢版 |
2020/08/21(金) 17:28:26.23ID:Tdq0GS4g
作れなかったら>>296の負けだから
299デフォルトの名無しさん
垢版 |
2020/08/21(金) 17:33:06.64ID:UrYJ9hGn
>>271
たしかC++ってそういうもんだがw
しかも同じく嫌いだよw
整理できてない

で、なんでクラスだとそれが楽になるのかね

>さておき、実際にはほとんどデフォルトで使うから、「クラスなら面倒がない」と言いたいのかな

こういうことかね、て先回りして聞いてるんだが
300デフォルトの名無しさん
垢版 |
2020/08/21(金) 17:34:24.29ID:Q2DXCe4b
Reduxみたいなやつな。
はよ作れ。
301デフォルトの名無しさん
垢版 |
2020/08/21(金) 17:49:58.82ID:xkZp2iCS
ちなみに俺はGUIを実装したことある
302デフォルトの名無しさん
垢版 |
2020/08/21(金) 17:50:12.82ID:xkZp2iCS
オブジェクト指向でな!
303デフォルトの名無しさん
垢版 |
2020/08/21(金) 17:54:10.24ID:xkZp2iCS
作れもしないくせにど素人が楯突くな
304デフォルトの名無しさん
垢版 |
2020/08/21(金) 17:57:19.01ID:UrYJ9hGn
そんなにうじゃっとしてないか

https://bituse.info/winapi/5
//ボタンコントロール作成
hwnd_button=CreateWindowA("button","ボタン",WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
50,50,100,100,hwnd,(HMENU)CHILD_ID,hInstance,NULL);

親ウィンドウの準備がイラっとするのかな
305デフォルトの名無しさん
垢版 |
2020/08/21(金) 17:59:06.13ID:xkZp2iCS
そんなお膳立てされたAPI使っていいって誰が言った?
306デフォルトの名無しさん
垢版 |
2020/08/21(金) 18:03:32.36ID:UrYJ9hGn
ちなみに多くの人が、「クラスオブジェクト指向な記述で」を「オブジェクト指向で」と言ってるようだね
スタティック関数で動かすオブジェクト指向もあるので(C++、WinAPI)
略すなら「クラスで」と言った方がいい(これも不正確だが)
2020/08/21(金) 18:22:59.95ID:iO1OXKqS
windows apiはc言語でしょ
308デフォルトの名無しさん
垢版 |
2020/08/21(金) 20:03:28.77ID:Q2DXCe4b
システムワイドでReduxのような仕組みを適用するのは無理だろうか?
309デフォルトの名無しさん
垢版 |
2020/08/21(金) 20:12:46.04ID:7ttzM/39
思うに、このスレに集まってる人らの
業務内容が違うんから議論がズレるんじゃないか?


Web系の場合メモリ上の
オブジェクトは一瞬で役目を終えるから
正直カプセル化とかいらない
node.jsやPHPでデータベースのへselect文投げると
連想配列オブジェクトの配列が帰ってくるから
つまりテーブルから動的にクラスののオブジェクトが
生成するから正直クラス定義もいらない
staticでなんの問題もないと思う。
状態管理は特有のセッションに保持するだろう。


でもゲーム系だとキャラのHPみたいなゲージ管理や
持ち物、装備品などいつまでもメモリ上に
居座って状態管理が必要だからオブジェクト指向
とカプセル化は大切。
310デフォルトの名無しさん
垢版 |
2020/08/21(金) 20:23:39.45ID:Q2DXCe4b
うーん。
職業プログラマが5chで情報交換してたら、ちょっとひどすぎない?

俺は自分の職業の板なんて行かない。
見たことはもちろんあるけど、素人が玄人のフリしてうんちく述べてるだけで、俺らが何か書き込むことは無いと思うよ。

それとも職業プログラマってそんなに程度低い?
素人とうんちく語り合うほど?
311デフォルトの名無しさん
垢版 |
2020/08/21(金) 20:24:45.30ID:Q2DXCe4b
プロが匿名掲示板で情報交換して得るものなんてないでしょ。

あったら怖いわw
2020/08/21(金) 20:34:27.65ID:x4g5r5SE
>>309
常駐プログラム云々いっちゃうと、GCが優れてる!いや、C++のデストラクタの方が!
とか、そういう話にもなっちゃうからオブジェクト指向云々は関係ないような。
優秀なCプログラマならCでもリークしないプログラム書くでしょ。

static云々言ってるバカは、オブジェクト指向でもリーク起こすと思うわ。
313デフォルトの名無しさん
垢版 |
2020/08/21(金) 20:49:57.82ID:xkZp2iCS
オブジェクトのライフサイクルとカプセル化がなんの関係あるんだ?
314デフォルトの名無しさん
垢版 |
2020/08/21(金) 20:50:21.42ID:xkZp2iCS
素人発言が目立ちだしたな
315デフォルトの名無しさん
垢版 |
2020/08/21(金) 20:51:44.98ID:xkZp2iCS
素人が玄人のフリしてうんちく述べてるのがうざいから消えてほしいとは思ってる
でも中にはプロっぽい人も紛れてる
316デフォルトの名無しさん
垢版 |
2020/08/21(金) 20:55:22.67ID:Q2DXCe4b
いや、無いない。

素人が適当なこと書いてるから訂正するか?
無い無い。

レベルが違いすぎるのよ。

それとも何か?
プログラマという職業に限ってそんなにレベルが低いか?
素人と言い争うほどか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況