2ch勢いランキング 全部 1- 最新50

なぜ「staticおじさん」は叩かれたのか?


デフォルトの名無しさん [] 2019/02/08(金) 15:18:48.58:pS5scTjj
staticおじさん(読み:すたてぃっくおじさん)とは、2010年に@ITに「実はオブジェクト指向ってしっくりこないんです![1]」
と投稿して炎上したおじさんのことである。

staticおじさんが爆誕した2010年ごろのIT土方界隈ではJavaを中心としたオブジェクト指向が主流であり
「なんでもかんでもオブジェクト指向」という風潮があった。

このためstaticおじさんは多勢に無勢でボロクソに叩かれる結果となり、さらにはプログラミングそのものの
話を飛び出してオブジェクト指向推進派による学歴差別などに発展したすえに無事炎上した。

それからわずか数年後、staticおじさんの主張に「極力static変数は使わない」「関数ポインタを多用する」
というコーディング規約を加えた「関数型プログラミング」がJavaScript界隈を中心に爆発的に流行し、
その流れに乗るかたちでこれら規約を半ば強制する仕様の「関数型プログラミング言語」も多数登場するなど
世界的に一大ブームになった。

ちなみにstaticおじさんの主張と非常に酷似したものが、staticおじさんの登場より遥か昔、インターネットを
支える中核技術である「IP」のRFC(仕様書)にも「階層化の有害性」として書かれていたりする。
また、海外でも同様の主張を面白おかしく書いた「Bjarne Stroustrup インタビュー」なる怪文書が出回り、
こちらも大炎上した。

ttp://https://monobook.org/wiki/%E3%82%B9%E3%82%BF%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E3%81%8A%E3%81%98%E3%81%95%E3%82%93
デフォルトの名無しさん [sage] 2019/03/03(日) 12:46:53.97:ITZTHuIP
よくわからないし想像できないが炭におけないな。そんなプロジェクト
デフォルトの名無しさん [sage] 2019/03/03(日) 16:17:33.81:YuQgiS/h
炎上ののち炭になるということ?
デフォルトの名無しさん [] 2019/03/03(日) 16:56:29.71:E4UxtVYi
ネタ
ttp://https://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php;_ylt=A7YWPRXdr3FTZxMA39vl_PN7?qid=11118107201
デフォルトの名無しさん [sage] 2019/03/03(日) 20:04:38.79:miTn84+l
炭になってくれればいいんだけど、生焼けのままゾンビとして何年も残り続けるからタチが悪い
デフォルトの名無しさん [sage] 2019/03/03(日) 20:56:46.98:eTCEJ2kQ

コードは書くがプロジェクトに参加できない、
参加したとしても下っぱでしかやってないような視野の連中多かったイメージ
デフォルトの名無しさん [sage] 2019/03/05(火) 02:04:13.63:l2KGaBcJ

早期リターン禁止してネスト深くするのは耐え難いわ
デフォルトの名無しさん [] 2019/03/05(火) 03:44:36.46:VDry4yCP
嫌ならgoto使え
デフォルトの名無しさん [sage] 2019/03/05(火) 09:37:57.33:7BmVgGDk
動きゃいいんだよ。
ろくに動かないもんいつまでもデバッグしてるよりマシ
デフォルトの名無しさん [sage] 2019/03/05(火) 10:52:58.78:uHvCHwSS
アーリーリターンがダメだからgoto使うとか、アホやかと
gotoこそ有無を言わさず全面禁止にするべきようなものなのに
デフォルトの名無しさん [] 2019/03/05(火) 11:29:06.76:HwCl8Q1J
馬鹿には無理
デフォルトの名無しさん [sage] 2019/03/05(火) 12:34:15.96:590R4Sym
returnは関数の最後に集約して、帰る時はgotoで飛ばすのが正しいスタイル
アーリーreturnが悪いわけじゃなくて、アーリーgotoラストreturnがより良いってだけの事
デフォルトの名無しさん [sage] 2019/03/05(火) 12:49:30.50:uHvCHwSS
その使い方なら確かにgoto使うのが一番スッキリするな
アホがむやみに使うせいで悪者扱いされるgotoさんは本当に気の毒だ
つっても最近の言語だとそもそもgotoが存在しない言語も多いけど
デフォルトの名無しさん [sage] 2019/03/05(火) 14:00:42.08:7BmVgGDk
行き先不明のgotoより、明確に行き先が分かるreturnの方が遥かに安全だろ。
デフォルトの名無しさん [sage] 2019/03/05(火) 14:46:08.15:uHvCHwSS
phpにgotoがあることを今知ったわ
一律禁止しておかないと地獄のようなコードが量産されそうだなw
デフォルトの名無しさん [sage] 2019/03/05(火) 22:05:45.65:0hQsMhrx
大域脱出をググっているんだが
英語でなんていうのか出てこない
デフォルトの名無しさん [sage] 2019/03/05(火) 22:38:10.58:EBikh2IV
staticでいいよ
オブジェクト指向が綺麗にハマるパターンなんてほとんどない
デフォルトの名無しさん [sage] 2019/03/05(火) 22:48:09.33:pOIJCY+L

C言語のsetjumpとlongjump?
デフォルトの名無しさん [sage] 2019/03/06(水) 17:31:56.59:/lIbHJ9o
GOTO禁止という余計な知識は知っていても
そのGOTOがどの言語のものを指し、なぜ言われていたのかを理解していない者は少なくない
理由も経緯も理解せず、ただそれが正しいものだと信じるのであれば、それは単なる信仰にすぎない

間違っている例
「昔の8bitマイコンで動いてたようなBASICは構造化されてないからGOTOでスパゲッティになる」
「構造化されているC言語ではGOTOを使うべきではない」

GOTOを使うべきではないと”有名な論文”で言われていたのは
論理IF文(IF〜ELSE〜THEN)すらなく、何をするにもGOTOで溢れかえっていた
古い規格のFORTANがほぼ前提になっている事を理解しなければならない
デフォルトの名無しさん [] 2019/03/06(水) 17:38:09.02:nP+qIuYQ
FORTRANのGOTO禁止なんてFOR-NEXT外から中への突入だけだろ
それ以外は禁止なんてされてない
デフォルトの名無しさん [sage] 2019/03/06(水) 17:42:00.64:aGeQ5QQv
まあ今時の言語なら大抵のケースにおいてgotoより良いやり方が用意されてるからな
一つ間違えたら大惨事を引き起こしかねないような代物をあえて使う理由もない
◆QZaw55cn4c [sage] 2019/03/06(水) 18:27:54.11:pvc8mHD3

>今時の言語なら大抵のケースにおいてgotoより良いやり方

そんなものがあるのでしょうか?かなり疑問です…
デフォルトの名無しさん [sage] 2019/03/06(水) 18:39:59.24:T925dhjI
try〜catchとか後藤さんが嫌われて活躍してるじゃん。
◆QZaw55cn4c [sage] 2019/03/06(水) 18:44:25.89:pvc8mHD3

try〜catch=SetJumpLongJmp ですか…たしかに一本とられました
デフォルトの名無しさん [sage] 2019/03/06(水) 19:25:13.11:/lIbHJ9o
「GOTOを地上から消し去れ!とにかくGOTO表記を消し去れ!聖典にそう書いてあるというのを聞いたことがある!!」
置き換え可能な全ての機能をGOTOで置き直せ、と強制されているわけでもないのに
GOTOの4文字を目にした途端に発狂して「GOTOは悪魔の文字だ!使うな!」とわめき始める

GOTO否定教の信者さんは大変だな
デフォルトの名無しさん [sage] 2019/03/06(水) 19:42:48.36:L0cGL7i+
ラベル付きの break, continue が現れたことで goto 文は息の根を止められたのでは?
デフォルトの名無しさん [sage] 2019/03/06(水) 20:03:07.63:SgTtMyqz
下向きgotoはそこまで悪いとは思わない
gotoと並行してフラグ変数作りまくるのを勘弁して欲しい
デフォルトの名無しさん [sage] 2019/03/06(水) 20:17:08.11:RlXQ9XDp
後藤「差別やめれ」
デフォルトの名無しさん [sage] 2019/03/06(水) 20:40:00.08:6E2MmEsM
本当はメソッドに切り分けまくれば良いんだが
一番キツイのはメソッドの名前を考えること
カプセル化は名前を考える労力を減らすってのが一つの役割かもしれん
◆QZaw55cn4c [sage] 2019/03/06(水) 20:45:55.18:pvc8mHD3

そのラベル付き、というのは goto に「言語上の」縛りを加えただけなのでは?バイナリーでは単なる jmp 文であるところにお節介な縛りをつけただけなのでは?
デフォルトの名無しさん [sage] 2019/03/06(水) 20:52:20.84:T925dhjI
後藤さんは関数内ならどこにでも飛べちゃうから嫌われるんだよ。
あれが無けりゃいい奴なのに。
デフォルトの名無しさん [sage] 2019/03/06(水) 20:53:23.93:deMtns5v
昔のBASICはIF THENのあとに行番号を書いておけばそこにジャンプした
実際はGOTO
それを利用してGOTOを排除したって言ってた人がいて雑誌にそのプログラムが乗ってた

編集者も意地悪だなってオモタ
デフォルトの名無しさん [sage] 2019/03/06(水) 21:56:50.08:s+f1BYLZ
自分がプログラム始めたての頃にgoto文を知ったときは、なるほどコレを使って処理を分けていけばいいんだな!と思ってgotoだらけになったからな。
その辺がgotoが悲劇を生み出す背景な気がする。
デフォルトの名無しさん [sage] 2019/03/06(水) 21:59:49.13:bD1OgwFI
Learn C the hard wayが昔は無料で読めたんだけど、その中ではgotoをエラー時にリソース開放で使ってたな
あれは用途が明快で構造をシンプルに保つ唯一の手段だと納得した覚えがある
デフォルトの名無しさん [sage] 2019/03/06(水) 23:18:10.15:e2ChgRco
後藤さんは上向きに移動できる時点で使ってはいけないもの
デフォルトの名無しさん [sage] 2019/03/07(木) 10:59:20.21:N2ThN7lC
finallyみたいなもんか
デフォルトの名無しさん [] 2019/03/07(木) 14:05:33.75:N/cPeE83
goto禁止なのはCPUの先読みキャッシュ再読み込みのペナルティが増えるからだろ
デフォルトの名無しさん [sage] 2019/03/07(木) 14:08:50.43:BNKQ6N5d

そんなの普通にループ処理でも分岐処理でも発生してるがな。
デフォルトの名無しさん [sage] 2019/03/07(木) 21:55:15.93:DIhWxmq7
アセンブラレベルではgotoのようなものしかないけどな
デフォルトの名無しさん [sage] 2019/03/07(木) 22:02:14.39:DIhWxmq7
もともとgotoみたいなものしかないけど意味レベルで使い方を分ければ素のgotoは使いどころが少ないので
なるべく使わないでねって事
◆QZaw55cn4c [sage] 2019/03/07(木) 22:31:49.66:IzAEAgL0

その「意味レベルでの使い分け」とか本当に意味のある縛りなんですか?
デフォルトの名無しさん [sage] 2019/03/07(木) 22:32:42.31:rioBJ/QG
ダイクストラさんがこの現状見たら泣くぞ。。
デフォルトの名無しさん [sage] 2019/03/08(金) 02:37:01.56:Wi6lnGN0
誰?
◆QZaw55cn4c [sage] 2019/03/08(金) 02:41:59.12:z/Z4PF0F

ttp://https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%89%E3%82%AC%E3%83%BC%E3%83%BB%E3%83%80%E3%82%A4%E3%82%AF%E3%82%B9%E3%83%88%E3%83%A9
デフォルトの名無しさん [] 2019/03/08(金) 08:51:45.91:G/pgcPeR
ダイクストラはかく語りき
デフォルトの名無しさん [sage] 2019/03/08(金) 09:03:00.94:WTQqfr5K
gotoが悪玉視されたのは、関数やサブルーチンって概念が薄くて巨大な関数が鎮座するプログラムが横行していたからじゃないのかな?
1000行のメソッドの中のgotoなど地獄でしか無い
デフォルトの名無しさん [sage] 2019/03/08(金) 09:08:17.49:DXaMv9+Q
1000行のメソッド自体が地獄
デフォルトの名無しさん [] 2019/03/08(金) 09:26:43.81:dZ4sYt+j

昔はもっとすごいよ。goto文で前のループにつっこんだり、前のifにつっこんだりと本当のスパゲティが存在した。
デフォルトの名無しさん [sage] 2019/03/08(金) 10:04:51.16:rZq9fJ02
2019年にもなってgotoに執着してるのはやばいだろ、逆張りにもほどがある
デフォルトの名無しさん [sage] 2019/03/08(金) 10:43:55.93:WTQqfr5K
二重三重のループから脱出する手段としてはgotoとreturn、フラグの3択となる場合が多いが
gotoにしてメソッドの数を減らすやり方があってもいいとは思うんだけどね
俺はなんとなくreturn使っているが
デフォルトの名無しさん [sage] 2019/03/08(金) 11:19:10.35:bTIRYiKW

戻り先が明確なreturnが一番安全安心。
gotoなんてその時良くても、手が離れて改修されて何年か後に見てみたら違う意味になってたりするから怖いわ。
フラグは時系列的に前後関係がある場合には仕方ないから使い方次第だ。関数内スコープしか無いフラグは面倒なだけだわ。
デフォルトの名無しさん [sage] 2019/03/08(金) 12:18:43.98:rZq9fJ02

それだよな。
gotoは書いたその瞬間だけは別に問題がないけど、どこかに変更が加わった瞬間に魔物と化すリスクが大きすぎる。
デフォルトの名無しさん [sage] 2019/03/08(金) 13:54:56.17:FlAUHkK4
gotoはウィザードにしか使いこなせないがウィザードはgotoの危険性も別の安全な手段も熟知しているので使用しない
結論としてgotoはいらない子
デフォルトの名無しさん [sage] 2019/03/08(金) 14:21:57.32:j3u+c/XL

そりゃすごい...というか、それならgotoは有害、って言われるのも頷ける


例外禁止/例外がない言語だとリソース解放はgoto一択では?
デフォルトの名無しさん [sage] 2019/03/08(金) 14:25:55.23:bTIRYiKW
gotoじゃリソース解放してくれないだろ。
デフォルトの名無しさん [sage] 2019/03/08(金) 15:01:31.72:UJJsWIlY
リソースの開放を忘れて、return で上位関数に戻るよりは、
リソース開放の処理を、関数末尾に集めて、
goto で必ずそこを通るようにしてから、
関数の終わりで上位関数に戻るようにした方が、良いのでは?
という意味なんだと思いますよ。私は。
デフォルトの名無しさん [sage] 2019/03/08(金) 15:09:24.29:j3u+c/XL
goto自体がリソース解放の命令だなんて言ってないよw
エラー時のリソース解放にgotoが有益、っていう話

if ((err = create_resource_00(args..., &res00)) goto error_00;
if ((err = create_resource_01(args..., &res01)) goto error_01;
if ((err = create_resource_02(args..., &res02)) goto error_02;
...
return 0; // success
...
error_02: destroy_resource_01(res01);
error_01: destroy_resource_00(res00);
error_00:
return err;

という感じで
デフォルトの名無しさん [sage] 2019/03/08(金) 15:16:05.87:j3u+c/XL
上のやつはまとめてリソースを確保するだけの処理と仮定してるので、+αで何らかの処理まで行うならの言う通りです
デフォルトの名無しさん [sage] 2019/03/08(金) 15:17:16.15:p3uWfhXt
COBOL級のレガシー言語ならしかたない
デフォルトの名無しさん [sage] 2019/03/08(金) 15:37:58.89:bTIRYiKW
リソースハンドル捕まえてんだからそう慌てて解放する必要も無いんだぞ。
何らかの準備処理に失敗して戻って来たら、後片付け処理呼べばいいだけだからな。
デフォルトの名無しさん [sage] 2019/03/08(金) 15:41:48.93:bTIRYiKW
そもそも、リソースまとめて生成する処理があるなら、
リソースまとめて削除する処理だって作るだろうに。
なんでアンバランスな設計したがるの?
デフォルトの名無しさん [sage] 2019/03/08(金) 15:48:15.81:rZq9fJ02
まとめて確保するのに解放は個別処理にやらせるのかよ、gotoとか関係なしにバグの温床になりそうな設計してるな。センスないわ。
デフォルトの名無しさん [] 2019/03/08(金) 16:09:58.22:eYLLL/Dr
C/C++のbreakにラベルへ飛ばす機能があれば良かったのに
デフォルトの名無しさん [sage] 2019/03/08(金) 16:35:52.70:j3u+c/XL

リソースをまとめて解放する処理自体は必要だけど(エラーがなかった時に呼ぶ)、失敗時にはrollbackする戦略の方が楽だと思う
利用する側が失敗時にも終了処理するって、個人的には微妙に感じる
デフォルトの名無しさん [sage] 2019/03/08(金) 16:59:51.94:j3u+c/XL
というかリソースを内包するようなモジュールを組み合わせることを考えると、非rollback戦略では無駄な状態が増えるので良くない

例えばmod-A(中でリソースを確保)mod-B(中でリソースを確保)という二つのモジュールを内部で利用する別のモジュールmod-Cを考えると、
この二つが共に非rollback戦略を採用していた場合には、mod-Aの初期化に成功、mod-Bの初期化に失敗、という場合に備えてmod-Cの終了処理はそれぞれmod-A/mod-Bが成功していたかどうかを判定するための変数を持つ必要がある
――あるいはmod-A/mod-Bは共に自身が未初期化状態であるにも関わらず終了処理を呼ぶことが合法であり、未定義動作を引き起こさないということを確約しないといけない

こういう状態管理の煩雑さを考えるとrollback戦略がいいと思う
デフォルトの名無しさん [sage] 2019/03/08(金) 17:20:44.26:j3u+c/XL
...ん?サブモジュール数を二つにした結果、議論が意味を成してないな

>> 245は忘れてくれww

まあ要はサブモジュールがN個あったときに非rollback戦略だと、
1 <= k <= Nであるk番目で失敗したとき、残るN-K個は完全に未定義状態なのだから、

1. その状況下でも終了処理が未定義動作を引き起こさないよう約束するか、
2. そうでないなら呼び出し側で状態を追跡できるようにするための変数が必要

ってことで、まあ結局状態管理が面倒ってことが言いたかったんだ
デフォルトの名無しさん [sage] 2019/03/08(金) 18:07:41.94:0ga9HMQd
そのrollback戦略とやらって、別にgoto使わなくても実現出来るでしょ、、
デフォルトの名無しさん [sage] 2019/03/08(金) 18:33:27.22:j3u+c/XL

当たり前じゃないですか
自分が言っているのは「gotoはエラー処理時に便利」「rollackの方が状態管理の煩雑さを軽減できるのでいいのではないか?」という二点であって、それ以上のことは言ってませんよ
デフォルトの名無しさん [sage] 2019/03/08(金) 18:46:48.30:rZq9fJ02
ああ、こういうタイプの人か
デフォルトの名無しさん [sage] 2019/03/08(金) 19:48:05.20:bTIRYiKW
いやいや、createでエラーが返されたらdestroyする。
それだけだぞ。当然中身なんか知らなくてもいい様にするだろ?
なんで未定義のリソースの心配までしなきゃならないんだ?
全部createしたモジュールから機能を呼ぶだけなのに。

…あ、オブジェクト指向は理解できない人たち?
デフォルトの名無しさん [sage] 2019/03/08(金) 20:33:53.95:j3u+c/XL
あのさあ、人にオブジェクト指向の理解を問う前に不変条件という概念について勉強してくれないかな
class-invariantって聞いたことない?生成失敗は不変条件の構築失敗なんだから破棄処理もクソもないでしょ
前提が成り立ってないんだから
デフォルトの名無しさん [sage] 2019/03/08(金) 20:58:42.35:0ga9HMQd
情報系の学生さんっぽいね君
デフォルトの名無しさん [sage] 2019/03/08(金) 21:33:08.23:meEyRQaU
goto で一番問題だったのは外で変数を勝手にセットして
ループに飛び込んで、ループ内の変数を勝手に書き換えて
ループから飛び出していく
とかいうコードを当たり前のように書いていたから

変数がどこで書き換えられているのかわからなかったのが
一番の問題
デフォルトの名無しさん [sage] 2019/03/08(金) 22:04:49.84:bTIRYiKW

生成失敗しても動き続けないとならないコンピュータシステムなんて、幾らでも世の中にはあるんだよ?
リソースの取得が失敗したくらいで停止してもらっちゃ困るわ。
デフォルトの名無しさん [sage] 2019/03/08(金) 22:53:58.68:j3u+c/XL
上で言っているのは「要求される前提条件」についての話ですよ?
あなたの上げた例は単にあるリソースの獲得失敗は想定の内である、そのような前提条件を有するシステムが存在するっていうだけです
それとも任意のエラーを許容する、前提条件ゼロのシステムが存在するとでも?
デフォルトの名無しさん [sage] 2019/03/08(金) 23:16:55.43:j3u+c/XL
というか、そもそも不変条件の構築失敗時には死ぬしかないっていう一般論が
リソース獲得時には死ぬしかないという主張に挿げ替えられているのが意味不明ですね

一体どこを読んでそう思ったんですか?皮肉じゃなくて聞きたいですね
そんなこと言ってないつもりですが
デフォルトの名無しさん [sage] 2019/03/09(土) 01:44:23.67:jz9xUaFa
リソース獲得に失敗した時にできるだけ活かすようにするのか
即時に終了するべきかのかは、「そう簡単に一般化できる結論はない」というのが
c++での例外導入時の議論における結論。
デフォルトの名無しさん [sage] 2019/03/09(土) 04:54:46.17:EXmOKVNB
居酒屋で愚痴ってればいいのに
ネットで発信したから
デフォルトの名無しさん [sage] 2019/03/09(土) 08:30:21.08:RvRucbhc
居酒屋で愚痴る相手もいなかったんでしょ
デフォルトの名無しさん [sage] 2019/03/09(土) 10:09:44.53:fkGpFy2T
こんなネタで愚痴れる居酒屋があるなら行くわ
デフォルトの名無しさん [sage] 2019/03/09(土) 10:12:12.55:aSefnx8y
>生成失敗は不変条件の構築失敗なんだから
プログラムのロードはそうだろうけど
デフォルトの名無しさん [sage] 2019/03/09(土) 11:16:49.71:0gt1Zzgm

愚痴るネタが制限されてる居酒屋ってあるの?
デフォルトの名無しさん [sage] 2019/03/09(土) 12:06:11.88:RvRucbhc
vimの話をしちゃいけない居酒屋とか作りたい
デフォルトの名無しさん [sage] 2019/03/09(土) 13:56:59.81:jz9xUaFa
プログラミングbarとか恐ろしく殺伐としてそうw
デフォルトの名無しさん [sage] 2019/03/09(土) 19:27:34.53:sW/nhyo2
Ruby使いやPython使いだらけな予感
あとはVBA使い
デフォルトの名無しさん [sage] 2019/03/09(土) 22:11:22.90:vm8VmVdo
若い実務者が「オブジェクト指向」というお題目で一致団結してプロジェクトを
進めようという雰囲気のなか、それに水を指すひとが出てくるという状況が発生してきた
実務者は若いので現実に否定されると傷害事件にも発展するかもしれない
そうなると面倒だし統制かける自信がなかったから
代表して大々的に叩いてガス抜きした
みんなウィンウィンだからこれでいいんだろ。若者なんかなにするかわかんないんだから。
デフォルトの名無しさん [sage] 2019/03/09(土) 22:43:52.46:kzjDxuXD
片方winしかしてないのにwinwinとは
デフォルトの名無しさん [sage] 2019/03/10(日) 10:26:06.25:al/xCIsd
まずあの当時の若いエンジニアならオブジェクト指向は当然の前提だからわざわざお題目として唱えない
デフォルトの名無しさん [] 2019/03/10(日) 16:36:03.29:FM+9nmuq

オブジェクト指向と言っても何をどうしたいのは人それぞれだからな。
デフォルトの名無しさん [sage] 2019/03/10(日) 19:06:30.25:kEGKNzHc
その昔インスタンスを一個だけ作って
あとはメソッド=関数のように扱ってるプロジェクトを見たことがある
誰もダメ出ししなかったのかと
デフォルトの名無しさん [sage] 2019/03/10(日) 19:10:28.71:bDFWdxia
やり方によっちゃリファクタリングできる余地もあるだろうしstatic変数使うよりかは
少しだけマシかなと。
最近の設計方針としてはオブジェクト指向がどうよりもSOLIDを理解してる方がだいじかなと思う。
SOLID少しバカにしてたけど、かなりコンパクトに要素をまとめた標語になってる気がしてきた。
デフォルトの名無しさん [] 2019/03/11(月) 04:59:46.90:pTTv+VC9
インスタンスが増える可能性があるなら良いんじゃない?
デフォルトの名無しさん [] 2019/03/11(月) 05:12:51.52:sVkqVhUd
Single responsibility principle 単一責任の原則
A class should have only a single responsibility, that is,
only changes to one part of the software's specification should be able to affect the specification of the class.


Open–closed principle 開放・閉鎖原則
"Software entities ... should be open for extension, but closed for modification."


Liskov substitution principle リスコフ置換原則
"Objects in a program should be replaceable with instances of their subtypes
without altering the correctness of that program." See also design by contract.


Interface segregation principle インタフェース分離の原則
"Many client-specific interfaces are better than one general-purpose interface."


Dependency inversion principle 依存性逆転の原則
One should "depend upon abstractions, [not] concretions.

ttp://http://developer.wonderpla.net/entry/blog/engineer/oop_solid_s/
デフォルトの名無しさん [sage] 2019/03/11(月) 10:20:49.00:Rz4vOdRL
役割分担がどこまで出来てるかだよな。
オブジェクト指向より前から、機能分担なんてのは普通にやってたし、共通部品化と言う考えもあったしな。
デフォルトの名無しさん [sage] 2019/03/13(水) 20:12:53.02:AiOHxaEO
スノッブだよ。スノッブが役割分担とか笑わせる
デフォルトの名無しさん [sage] 2019/03/13(水) 20:35:09.13:Kky52x6n
じゃあいままで一体なにやって来たんだ。
デフォルトの名無しさん [] 2019/03/14(木) 06:57:29.67:/hJRNFKz
↓麻生太郎のあの画像
デフォルトの名無しさん [] 2019/03/14(木) 11:05:30.46:lFrR8Qde
スコープの概念が無いだけ
デフォルトの名無しさん [sage] 2019/03/14(木) 12:44:05.36:jLkIdUGW
怪奇現象が怖かったから、ほら、怖いだろ?って
後片付け、気が滅入る
デフォルトの名無しさん [sage] 2019/03/17(日) 23:41:55.70:qFtY3RGx
staticおじさん叩いてる人の何割がSingletonをstatic class的に使ってたのか問題
デフォルトの名無しさん [sage] 2019/03/20(水) 09:26:19.50:R+JMdvE0
そんなやつおるの?w

勢い5万以上のスレをメールでお知らせするサービス、実施中!!
憧れボディをGETしたい!その夢、ボニックで!

2ch勢いランキング 全部 1- 最新50 プログラム板ランキング

凡例:

レス番

100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている

名前

名無しさん (青) → sage のレス
名無しさん (緑) → age のレス

ID

ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID

このページは2ch勢いランキングが作成したキャッシュです。元のページはこちら。削除についてはこちら