staticおじさん(読み:すたてぃっくおじさん)とは、2010年に@ITに「実はオブジェクト指向ってしっくりこないんです![1]」
と投稿して炎上したおじさんのことである。
staticおじさんが爆誕した2010年ごろのIT土方界隈ではJavaを中心としたオブジェクト指向が主流であり
「なんでもかんでもオブジェクト指向」という風潮があった。
このためstaticおじさんは多勢に無勢でボロクソに叩かれる結果となり、さらにはプログラミングそのものの
話を飛び出してオブジェクト指向推進派による学歴差別などに発展したすえに無事炎上した。
それからわずか数年後、staticおじさんの主張に「極力static変数は使わない」「関数ポインタを多用する」
というコーディング規約を加えた「関数型プログラミング」がJavaScript界隈を中心に爆発的に流行し、
その流れに乗るかたちでこれら規約を半ば強制する仕様の「関数型プログラミング言語」も多数登場するなど
世界的に一大ブームになった。
ちなみにstaticおじさんの主張と非常に酷似したものが、staticおじさんの登場より遥か昔、インターネットを
支える中核技術である「IP」のRFC(仕様書)にも「階層化の有害性」として書かれていたりする。
また、海外でも同様の主張を面白おかしく書いた「Bjarne Stroustrup インタビュー」なる怪文書が出回り、
こちらも大炎上した。
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
探検
なぜ「staticおじさん」は叩かれたのか?
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/02/08(金) 15:18:48.58ID:pS5scTjj171デフォルトの名無しさん
2019/03/02(土) 20:53:27.86ID:bakyLAA5 >>170
パラメータについては引数なりクラスメンバなりで渡した方が良いとは思う(システム内で変更があるなら)
loggerについて言い訳を用意するならば、基本的な動作は追記であって変更でないから
致命的な問題になりにくいというものはあるかも。
パラメータについては引数なりクラスメンバなりで渡した方が良いとは思う(システム内で変更があるなら)
loggerについて言い訳を用意するならば、基本的な動作は追記であって変更でないから
致命的な問題になりにくいというものはあるかも。
172デフォルトの名無しさん
2019/03/02(土) 21:03:35.11ID:GZ5C2Het ただ追記するだけのロガーなら確かにシングルトンである必要はあんまないわな
わざわざ別インスタンスを生成する理由も同様にないから、つまりそんなに悩むほど重要な問題じゃない
わざわざ別インスタンスを生成する理由も同様にないから、つまりそんなに悩むほど重要な問題じゃない
173デフォルトの名無しさん
2019/03/02(土) 21:09:02.07ID:KImDZwuV >>48
非同期処理を繰り返すとき
非同期処理を繰り返すとき
174デフォルトの名無しさん
2019/03/02(土) 21:29:24.61ID:hY2yNhzf 自分、ないしは自社で使うだけならシングルトンである必要はないんだろうけど、ライブラリとして公開するようなものなら間違った使い方をされることもありうるからシングルトンにしておきたくなったりしない?
175デフォルトの名無しさん
2019/03/02(土) 22:56:52.47ID:y8OJKCt/176デフォルトの名無しさん
2019/03/02(土) 23:42:02.50ID:KQCFitL1 目的は?
177デフォルトの名無しさん
2019/03/02(土) 23:44:27.56ID:iJkEnlOJ どんなアプリもシングル起動なんだから、そこに書けばいいだけだよな。
178デフォルトの名無しさん
2019/03/02(土) 23:48:01.36ID:KQCFitL1179デフォルトの名無しさん
2019/03/02(土) 23:51:49.69ID:KQCFitL1 今日は2019年3月2日だ。
DBによって日付が違うと動作不良を起こすがありゃなんでだ?
DBによって日付が違うと動作不良を起こすがありゃなんでだ?
180デフォルトの名無しさん
2019/03/03(日) 09:43:36.98ID:O68a6HXv そこまでは進んでない?
181デフォルトの名無しさん
2019/03/03(日) 11:25:14.70ID:BbxzBxVK >>175
ある程度の大きさのクラスを用意するとかかね。
それを継承して使いまわすとか。。
あんま大きすぎるとstatic変数やglobal変数と変わらんしあんまり良くないかな。
後はそれでも引数で渡しまくる。
実際cのプロジェクトで全ての関数はロガーを引数にするってなところもあった。
これはこれで確かにモジュラリティーは高くはなる。が面倒でもある。
ある程度の大きさのクラスを用意するとかかね。
それを継承して使いまわすとか。。
あんま大きすぎるとstatic変数やglobal変数と変わらんしあんまり良くないかな。
後はそれでも引数で渡しまくる。
実際cのプロジェクトで全ての関数はロガーを引数にするってなところもあった。
これはこれで確かにモジュラリティーは高くはなる。が面倒でもある。
182デフォルトの名無しさん
2019/03/03(日) 12:46:53.97ID:ITZTHuIP よくわからないし想像できないが炭におけないな。そんなプロジェクト
183デフォルトの名無しさん
2019/03/03(日) 16:17:33.81ID:YuQgiS/h 炎上ののち炭になるということ?
184デフォルトの名無しさん
2019/03/03(日) 16:56:29.71ID:E4UxtVYi ネタ
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php;_ylt=A7YWPRXdr3FTZxMA39vl_PN7?qid=11118107201
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php;_ylt=A7YWPRXdr3FTZxMA39vl_PN7?qid=11118107201
185デフォルトの名無しさん
2019/03/03(日) 20:04:38.79ID:miTn84+l 炭になってくれればいいんだけど、生焼けのままゾンビとして何年も残り続けるからタチが悪い
186デフォルトの名無しさん
2019/03/03(日) 20:56:46.98ID:eTCEJ2kQ187デフォルトの名無しさん
2019/03/05(火) 02:04:13.63ID:l2KGaBcJ >>39
早期リターン禁止してネスト深くするのは耐え難いわ
早期リターン禁止してネスト深くするのは耐え難いわ
188デフォルトの名無しさん
2019/03/05(火) 03:44:36.46ID:VDry4yCP 嫌ならgoto使え
189デフォルトの名無しさん
2019/03/05(火) 09:37:57.33ID:7BmVgGDk 動きゃいいんだよ。
ろくに動かないもんいつまでもデバッグしてるよりマシ
ろくに動かないもんいつまでもデバッグしてるよりマシ
190デフォルトの名無しさん
2019/03/05(火) 10:52:58.78ID:uHvCHwSS アーリーリターンがダメだからgoto使うとか、アホやかと
gotoこそ有無を言わさず全面禁止にするべきようなものなのに
gotoこそ有無を言わさず全面禁止にするべきようなものなのに
191デフォルトの名無しさん
2019/03/05(火) 11:29:06.76ID:HwCl8Q1J 馬鹿には無理
192デフォルトの名無しさん
2019/03/05(火) 12:34:15.96ID:590R4Sym returnは関数の最後に集約して、帰る時はgotoで飛ばすのが正しいスタイル
アーリーreturnが悪いわけじゃなくて、アーリーgotoラストreturnがより良いってだけの事
アーリーreturnが悪いわけじゃなくて、アーリーgotoラストreturnがより良いってだけの事
193デフォルトの名無しさん
2019/03/05(火) 12:49:30.50ID:uHvCHwSS その使い方なら確かにgoto使うのが一番スッキリするな
アホがむやみに使うせいで悪者扱いされるgotoさんは本当に気の毒だ
つっても最近の言語だとそもそもgotoが存在しない言語も多いけど
アホがむやみに使うせいで悪者扱いされるgotoさんは本当に気の毒だ
つっても最近の言語だとそもそもgotoが存在しない言語も多いけど
194デフォルトの名無しさん
2019/03/05(火) 14:00:42.08ID:7BmVgGDk 行き先不明のgotoより、明確に行き先が分かるreturnの方が遥かに安全だろ。
195デフォルトの名無しさん
2019/03/05(火) 14:46:08.15ID:uHvCHwSS phpにgotoがあることを今知ったわ
一律禁止しておかないと地獄のようなコードが量産されそうだなw
一律禁止しておかないと地獄のようなコードが量産されそうだなw
196デフォルトの名無しさん
2019/03/05(火) 22:05:45.65ID:0hQsMhrx 大域脱出をググっているんだが
英語でなんていうのか出てこない
英語でなんていうのか出てこない
197デフォルトの名無しさん
2019/03/05(火) 22:38:10.58ID:EBikh2IV staticでいいよ
オブジェクト指向が綺麗にハマるパターンなんてほとんどない
オブジェクト指向が綺麗にハマるパターンなんてほとんどない
198デフォルトの名無しさん
2019/03/05(火) 22:48:09.33ID:pOIJCY+L >>196
C言語のsetjumpとlongjump?
C言語のsetjumpとlongjump?
199デフォルトの名無しさん
2019/03/06(水) 17:31:56.59ID:/lIbHJ9o GOTO禁止という余計な知識は知っていても
そのGOTOがどの言語のものを指し、なぜ言われていたのかを理解していない者は少なくない
理由も経緯も理解せず、ただそれが正しいものだと信じるのであれば、それは単なる信仰にすぎない
間違っている例
「昔の8bitマイコンで動いてたようなBASICは構造化されてないからGOTOでスパゲッティになる」
「構造化されているC言語ではGOTOを使うべきではない」
GOTOを使うべきではないと”有名な論文”で言われていたのは
論理IF文(IF〜ELSE〜THEN)すらなく、何をするにもGOTOで溢れかえっていた
古い規格のFORTANがほぼ前提になっている事を理解しなければならない
そのGOTOがどの言語のものを指し、なぜ言われていたのかを理解していない者は少なくない
理由も経緯も理解せず、ただそれが正しいものだと信じるのであれば、それは単なる信仰にすぎない
間違っている例
「昔の8bitマイコンで動いてたようなBASICは構造化されてないからGOTOでスパゲッティになる」
「構造化されているC言語ではGOTOを使うべきではない」
GOTOを使うべきではないと”有名な論文”で言われていたのは
論理IF文(IF〜ELSE〜THEN)すらなく、何をするにもGOTOで溢れかえっていた
古い規格のFORTANがほぼ前提になっている事を理解しなければならない
200デフォルトの名無しさん
2019/03/06(水) 17:38:09.02ID:nP+qIuYQ FORTRANのGOTO禁止なんてFOR-NEXT外から中への突入だけだろ
それ以外は禁止なんてされてない
それ以外は禁止なんてされてない
201デフォルトの名無しさん
2019/03/06(水) 17:42:00.64ID:aGeQ5QQv まあ今時の言語なら大抵のケースにおいてgotoより良いやり方が用意されてるからな
一つ間違えたら大惨事を引き起こしかねないような代物をあえて使う理由もない
一つ間違えたら大惨事を引き起こしかねないような代物をあえて使う理由もない
203デフォルトの名無しさん
2019/03/06(水) 18:39:59.24ID:T925dhjI try〜catchとか後藤さんが嫌われて活躍してるじゃん。
>>203
try〜catch=SetJumpLongJmp ですか…たしかに一本とられました
try〜catch=SetJumpLongJmp ですか…たしかに一本とられました
205デフォルトの名無しさん
2019/03/06(水) 19:25:13.11ID:/lIbHJ9o 「GOTOを地上から消し去れ!とにかくGOTO表記を消し去れ!聖典にそう書いてあるというのを聞いたことがある!!」
置き換え可能な全ての機能をGOTOで置き直せ、と強制されているわけでもないのに
GOTOの4文字を目にした途端に発狂して「GOTOは悪魔の文字だ!使うな!」とわめき始める
GOTO否定教の信者さんは大変だな
置き換え可能な全ての機能をGOTOで置き直せ、と強制されているわけでもないのに
GOTOの4文字を目にした途端に発狂して「GOTOは悪魔の文字だ!使うな!」とわめき始める
GOTO否定教の信者さんは大変だな
206デフォルトの名無しさん
2019/03/06(水) 19:42:48.36ID:L0cGL7i+ ラベル付きの break, continue が現れたことで goto 文は息の根を止められたのでは?
207デフォルトの名無しさん
2019/03/06(水) 20:03:07.63ID:SgTtMyqz 下向きgotoはそこまで悪いとは思わない
gotoと並行してフラグ変数作りまくるのを勘弁して欲しい
gotoと並行してフラグ変数作りまくるのを勘弁して欲しい
208デフォルトの名無しさん
2019/03/06(水) 20:17:08.11ID:RlXQ9XDp 後藤「差別やめれ」
209デフォルトの名無しさん
2019/03/06(水) 20:40:00.08ID:6E2MmEsM 本当はメソッドに切り分けまくれば良いんだが
一番キツイのはメソッドの名前を考えること
カプセル化は名前を考える労力を減らすってのが一つの役割かもしれん
一番キツイのはメソッドの名前を考えること
カプセル化は名前を考える労力を減らすってのが一つの役割かもしれん
>>206
そのラベル付き、というのは goto に「言語上の」縛りを加えただけなのでは?バイナリーでは単なる jmp 文であるところにお節介な縛りをつけただけなのでは?
そのラベル付き、というのは goto に「言語上の」縛りを加えただけなのでは?バイナリーでは単なる jmp 文であるところにお節介な縛りをつけただけなのでは?
211デフォルトの名無しさん
2019/03/06(水) 20:52:20.84ID:T925dhjI 後藤さんは関数内ならどこにでも飛べちゃうから嫌われるんだよ。
あれが無けりゃいい奴なのに。
あれが無けりゃいい奴なのに。
212デフォルトの名無しさん
2019/03/06(水) 20:53:23.93ID:deMtns5v 昔のBASICはIF THENのあとに行番号を書いておけばそこにジャンプした
実際はGOTO
それを利用してGOTOを排除したって言ってた人がいて雑誌にそのプログラムが乗ってた
編集者も意地悪だなってオモタ
実際はGOTO
それを利用してGOTOを排除したって言ってた人がいて雑誌にそのプログラムが乗ってた
編集者も意地悪だなってオモタ
213デフォルトの名無しさん
2019/03/06(水) 21:56:50.08ID:s+f1BYLZ 自分がプログラム始めたての頃にgoto文を知ったときは、なるほどコレを使って処理を分けていけばいいんだな!と思ってgotoだらけになったからな。
その辺がgotoが悲劇を生み出す背景な気がする。
その辺がgotoが悲劇を生み出す背景な気がする。
214デフォルトの名無しさん
2019/03/06(水) 21:59:49.13ID:bD1OgwFI Learn C the hard wayが昔は無料で読めたんだけど、その中ではgotoをエラー時にリソース開放で使ってたな
あれは用途が明快で構造をシンプルに保つ唯一の手段だと納得した覚えがある
あれは用途が明快で構造をシンプルに保つ唯一の手段だと納得した覚えがある
215デフォルトの名無しさん
2019/03/06(水) 23:18:10.15ID:e2ChgRco 後藤さんは上向きに移動できる時点で使ってはいけないもの
216デフォルトの名無しさん
2019/03/07(木) 10:59:20.21ID:N2ThN7lC finallyみたいなもんか
217デフォルトの名無しさん
2019/03/07(木) 14:05:33.75ID:N/cPeE83 goto禁止なのはCPUの先読みキャッシュ再読み込みのペナルティが増えるからだろ
218デフォルトの名無しさん
2019/03/07(木) 14:08:50.43ID:BNKQ6N5d >>217
そんなの普通にループ処理でも分岐処理でも発生してるがな。
そんなの普通にループ処理でも分岐処理でも発生してるがな。
219デフォルトの名無しさん
2019/03/07(木) 21:55:15.93ID:DIhWxmq7 アセンブラレベルではgotoのようなものしかないけどな
220デフォルトの名無しさん
2019/03/07(木) 22:02:14.39ID:DIhWxmq7 もともとgotoみたいなものしかないけど意味レベルで使い方を分ければ素のgotoは使いどころが少ないので
なるべく使わないでねって事
なるべく使わないでねって事
>>220
その「意味レベルでの使い分け」とか本当に意味のある縛りなんですか?
その「意味レベルでの使い分け」とか本当に意味のある縛りなんですか?
222デフォルトの名無しさん
2019/03/07(木) 22:32:42.31ID:rioBJ/QG ダイクストラさんがこの現状見たら泣くぞ。。
223デフォルトの名無しさん
2019/03/08(金) 02:37:01.56ID:Wi6lnGN0 誰?
225デフォルトの名無しさん
2019/03/08(金) 08:51:45.91ID:G/pgcPeR ダイクストラはかく語りき
226デフォルトの名無しさん
2019/03/08(金) 09:03:00.94ID:WTQqfr5K gotoが悪玉視されたのは、関数やサブルーチンって概念が薄くて巨大な関数が鎮座するプログラムが横行していたからじゃないのかな?
1000行のメソッドの中のgotoなど地獄でしか無い
1000行のメソッドの中のgotoなど地獄でしか無い
227デフォルトの名無しさん
2019/03/08(金) 09:08:17.49ID:DXaMv9+Q 1000行のメソッド自体が地獄
228デフォルトの名無しさん
2019/03/08(金) 09:26:43.81ID:dZ4sYt+j >>226
昔はもっとすごいよ。goto文で前のループにつっこんだり、前のifにつっこんだりと本当のスパゲティが存在した。
昔はもっとすごいよ。goto文で前のループにつっこんだり、前のifにつっこんだりと本当のスパゲティが存在した。
229デフォルトの名無しさん
2019/03/08(金) 10:04:51.16ID:rZq9fJ02 2019年にもなってgotoに執着してるのはやばいだろ、逆張りにもほどがある
230デフォルトの名無しさん
2019/03/08(金) 10:43:55.93ID:WTQqfr5K 二重三重のループから脱出する手段としてはgotoとreturn、フラグの3択となる場合が多いが
gotoにしてメソッドの数を減らすやり方があってもいいとは思うんだけどね
俺はなんとなくreturn使っているが
gotoにしてメソッドの数を減らすやり方があってもいいとは思うんだけどね
俺はなんとなくreturn使っているが
231デフォルトの名無しさん
2019/03/08(金) 11:19:10.35ID:bTIRYiKW >>230
戻り先が明確なreturnが一番安全安心。
gotoなんてその時良くても、手が離れて改修されて何年か後に見てみたら違う意味になってたりするから怖いわ。
フラグは時系列的に前後関係がある場合には仕方ないから使い方次第だ。関数内スコープしか無いフラグは面倒なだけだわ。
戻り先が明確なreturnが一番安全安心。
gotoなんてその時良くても、手が離れて改修されて何年か後に見てみたら違う意味になってたりするから怖いわ。
フラグは時系列的に前後関係がある場合には仕方ないから使い方次第だ。関数内スコープしか無いフラグは面倒なだけだわ。
232デフォルトの名無しさん
2019/03/08(金) 12:18:43.98ID:rZq9fJ02233デフォルトの名無しさん
2019/03/08(金) 13:54:56.17ID:FlAUHkK4 gotoはウィザードにしか使いこなせないがウィザードはgotoの危険性も別の安全な手段も熟知しているので使用しない
結論としてgotoはいらない子
結論としてgotoはいらない子
234デフォルトの名無しさん
2019/03/08(金) 14:21:57.32ID:j3u+c/XL235デフォルトの名無しさん
2019/03/08(金) 14:25:55.23ID:bTIRYiKW gotoじゃリソース解放してくれないだろ。
236デフォルトの名無しさん
2019/03/08(金) 15:01:31.72ID:UJJsWIlY リソースの開放を忘れて、return で上位関数に戻るよりは、
リソース開放の処理を、関数末尾に集めて、
goto で必ずそこを通るようにしてから、
関数の終わりで上位関数に戻るようにした方が、良いのでは?
という意味なんだと思いますよ。私は。
リソース開放の処理を、関数末尾に集めて、
goto で必ずそこを通るようにしてから、
関数の終わりで上位関数に戻るようにした方が、良いのでは?
という意味なんだと思いますよ。私は。
237デフォルトの名無しさん
2019/03/08(金) 15:09:24.29ID: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;
という感じで
エラー時のリソース解放に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;
という感じで
238デフォルトの名無しさん
2019/03/08(金) 15:16:05.87ID:j3u+c/XL 上のやつはまとめてリソースを確保するだけの処理と仮定してるので、+αで何らかの処理まで行うなら>>236の言う通りです
239デフォルトの名無しさん
2019/03/08(金) 15:17:16.15ID:p3uWfhXt COBOL級のレガシー言語ならしかたない
240デフォルトの名無しさん
2019/03/08(金) 15:37:58.89ID:bTIRYiKW リソースハンドル捕まえてんだからそう慌てて解放する必要も無いんだぞ。
何らかの準備処理に失敗して戻って来たら、後片付け処理呼べばいいだけだからな。
何らかの準備処理に失敗して戻って来たら、後片付け処理呼べばいいだけだからな。
241デフォルトの名無しさん
2019/03/08(金) 15:41:48.93ID:bTIRYiKW そもそも、リソースまとめて生成する処理があるなら、
リソースまとめて削除する処理だって作るだろうに。
なんでアンバランスな設計したがるの?
リソースまとめて削除する処理だって作るだろうに。
なんでアンバランスな設計したがるの?
242デフォルトの名無しさん
2019/03/08(金) 15:48:15.81ID:rZq9fJ02 まとめて確保するのに解放は個別処理にやらせるのかよ、gotoとか関係なしにバグの温床になりそうな設計してるな。センスないわ。
243デフォルトの名無しさん
2019/03/08(金) 16:09:58.22ID:eYLLL/Dr C/C++のbreakにラベルへ飛ばす機能があれば良かったのに
244デフォルトの名無しさん
2019/03/08(金) 16:35:52.70ID:j3u+c/XL >>241
リソースをまとめて解放する処理自体は必要だけど(エラーがなかった時に呼ぶ)、失敗時にはrollbackする戦略の方が楽だと思う
利用する側が失敗時にも終了処理するって、個人的には微妙に感じる
リソースをまとめて解放する処理自体は必要だけど(エラーがなかった時に呼ぶ)、失敗時にはrollbackする戦略の方が楽だと思う
利用する側が失敗時にも終了処理するって、個人的には微妙に感じる
245デフォルトの名無しさん
2019/03/08(金) 16:59:51.94ID: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戦略がいいと思う
例えばmod-A(中でリソースを確保)mod-B(中でリソースを確保)という二つのモジュールを内部で利用する別のモジュールmod-Cを考えると、
この二つが共に非rollback戦略を採用していた場合には、mod-Aの初期化に成功、mod-Bの初期化に失敗、という場合に備えてmod-Cの終了処理はそれぞれmod-A/mod-Bが成功していたかどうかを判定するための変数を持つ必要がある
――あるいはmod-A/mod-Bは共に自身が未初期化状態であるにも関わらず終了処理を呼ぶことが合法であり、未定義動作を引き起こさないということを確約しないといけない
こういう状態管理の煩雑さを考えるとrollback戦略がいいと思う
246デフォルトの名無しさん
2019/03/08(金) 17:20:44.26ID:j3u+c/XL ...ん?サブモジュール数を二つにした結果、議論が意味を成してないな
>> 245は忘れてくれww
まあ要はサブモジュールがN個あったときに非rollback戦略だと、
1 <= k <= Nであるk番目で失敗したとき、残るN-K個は完全に未定義状態なのだから、
1. その状況下でも終了処理が未定義動作を引き起こさないよう約束するか、
2. そうでないなら呼び出し側で状態を追跡できるようにするための変数が必要
ってことで、まあ結局状態管理が面倒ってことが言いたかったんだ
>> 245は忘れてくれww
まあ要はサブモジュールがN個あったときに非rollback戦略だと、
1 <= k <= Nであるk番目で失敗したとき、残るN-K個は完全に未定義状態なのだから、
1. その状況下でも終了処理が未定義動作を引き起こさないよう約束するか、
2. そうでないなら呼び出し側で状態を追跡できるようにするための変数が必要
ってことで、まあ結局状態管理が面倒ってことが言いたかったんだ
247デフォルトの名無しさん
2019/03/08(金) 18:07:41.94ID:0ga9HMQd そのrollback戦略とやらって、別にgoto使わなくても実現出来るでしょ、、
248デフォルトの名無しさん
2019/03/08(金) 18:33:27.22ID:j3u+c/XL >>247
当たり前じゃないですか
自分が言っているのは「gotoはエラー処理時に便利」「rollackの方が状態管理の煩雑さを軽減できるのでいいのではないか?」という二点であって、それ以上のことは言ってませんよ
当たり前じゃないですか
自分が言っているのは「gotoはエラー処理時に便利」「rollackの方が状態管理の煩雑さを軽減できるのでいいのではないか?」という二点であって、それ以上のことは言ってませんよ
249デフォルトの名無しさん
2019/03/08(金) 18:46:48.30ID:rZq9fJ02 ああ、こういうタイプの人か
250デフォルトの名無しさん
2019/03/08(金) 19:48:05.20ID:bTIRYiKW いやいや、createでエラーが返されたらdestroyする。
それだけだぞ。当然中身なんか知らなくてもいい様にするだろ?
なんで未定義のリソースの心配までしなきゃならないんだ?
全部createしたモジュールから機能を呼ぶだけなのに。
…あ、オブジェクト指向は理解できない人たち?
それだけだぞ。当然中身なんか知らなくてもいい様にするだろ?
なんで未定義のリソースの心配までしなきゃならないんだ?
全部createしたモジュールから機能を呼ぶだけなのに。
…あ、オブジェクト指向は理解できない人たち?
251デフォルトの名無しさん
2019/03/08(金) 20:33:53.95ID:j3u+c/XL あのさあ、人にオブジェクト指向の理解を問う前に不変条件という概念について勉強してくれないかな
class-invariantって聞いたことない?生成失敗は不変条件の構築失敗なんだから破棄処理もクソもないでしょ
前提が成り立ってないんだから
class-invariantって聞いたことない?生成失敗は不変条件の構築失敗なんだから破棄処理もクソもないでしょ
前提が成り立ってないんだから
252デフォルトの名無しさん
2019/03/08(金) 20:58:42.35ID:0ga9HMQd 情報系の学生さんっぽいね君
253デフォルトの名無しさん
2019/03/08(金) 21:33:08.23ID:meEyRQaU goto で一番問題だったのは外で変数を勝手にセットして
ループに飛び込んで、ループ内の変数を勝手に書き換えて
ループから飛び出していく
とかいうコードを当たり前のように書いていたから
変数がどこで書き換えられているのかわからなかったのが
一番の問題
ループに飛び込んで、ループ内の変数を勝手に書き換えて
ループから飛び出していく
とかいうコードを当たり前のように書いていたから
変数がどこで書き換えられているのかわからなかったのが
一番の問題
254デフォルトの名無しさん
2019/03/08(金) 22:04:49.84ID:bTIRYiKW255デフォルトの名無しさん
2019/03/08(金) 22:53:58.68ID:j3u+c/XL 上で言っているのは「要求される前提条件」についての話ですよ?
あなたの上げた例は単にあるリソースの獲得失敗は想定の内である、そのような前提条件を有するシステムが存在するっていうだけです
それとも任意のエラーを許容する、前提条件ゼロのシステムが存在するとでも?
あなたの上げた例は単にあるリソースの獲得失敗は想定の内である、そのような前提条件を有するシステムが存在するっていうだけです
それとも任意のエラーを許容する、前提条件ゼロのシステムが存在するとでも?
256デフォルトの名無しさん
2019/03/08(金) 23:16:55.43ID:j3u+c/XL というか、そもそも不変条件の構築失敗時には死ぬしかないっていう一般論が
リソース獲得時には死ぬしかないという主張に挿げ替えられているのが意味不明ですね
一体どこを読んでそう思ったんですか?皮肉じゃなくて聞きたいですね
そんなこと言ってないつもりですが
リソース獲得時には死ぬしかないという主張に挿げ替えられているのが意味不明ですね
一体どこを読んでそう思ったんですか?皮肉じゃなくて聞きたいですね
そんなこと言ってないつもりですが
257デフォルトの名無しさん
2019/03/09(土) 01:44:23.67ID:jz9xUaFa リソース獲得に失敗した時にできるだけ活かすようにするのか
即時に終了するべきかのかは、「そう簡単に一般化できる結論はない」というのが
c++での例外導入時の議論における結論。
即時に終了するべきかのかは、「そう簡単に一般化できる結論はない」というのが
c++での例外導入時の議論における結論。
258デフォルトの名無しさん
2019/03/09(土) 04:54:46.17ID:EXmOKVNB 居酒屋で愚痴ってればいいのに
ネットで発信したから
ネットで発信したから
259デフォルトの名無しさん
2019/03/09(土) 08:30:21.08ID:RvRucbhc 居酒屋で愚痴る相手もいなかったんでしょ
260デフォルトの名無しさん
2019/03/09(土) 10:09:44.53ID:fkGpFy2T こんなネタで愚痴れる居酒屋があるなら行くわ
261デフォルトの名無しさん
2019/03/09(土) 10:12:12.55ID:aSefnx8y >生成失敗は不変条件の構築失敗なんだから
プログラムのロードはそうだろうけど
プログラムのロードはそうだろうけど
262デフォルトの名無しさん
2019/03/09(土) 11:16:49.71ID:0gt1Zzgm >>260
愚痴るネタが制限されてる居酒屋ってあるの?
愚痴るネタが制限されてる居酒屋ってあるの?
263デフォルトの名無しさん
2019/03/09(土) 12:06:11.88ID:RvRucbhc vimの話をしちゃいけない居酒屋とか作りたい
264デフォルトの名無しさん
2019/03/09(土) 13:56:59.81ID:jz9xUaFa プログラミングbarとか恐ろしく殺伐としてそうw
265デフォルトの名無しさん
2019/03/09(土) 19:27:34.53ID:sW/nhyo2 Ruby使いやPython使いだらけな予感
あとはVBA使い
あとはVBA使い
266デフォルトの名無しさん
2019/03/09(土) 22:11:22.90ID:vm8VmVdo 若い実務者が「オブジェクト指向」というお題目で一致団結してプロジェクトを
進めようという雰囲気のなか、それに水を指すひとが出てくるという状況が発生してきた
実務者は若いので現実に否定されると傷害事件にも発展するかもしれない
そうなると面倒だし統制かける自信がなかったから
代表して大々的に叩いてガス抜きした
みんなウィンウィンだからこれでいいんだろ。若者なんかなにするかわかんないんだから。
進めようという雰囲気のなか、それに水を指すひとが出てくるという状況が発生してきた
実務者は若いので現実に否定されると傷害事件にも発展するかもしれない
そうなると面倒だし統制かける自信がなかったから
代表して大々的に叩いてガス抜きした
みんなウィンウィンだからこれでいいんだろ。若者なんかなにするかわかんないんだから。
267デフォルトの名無しさん
2019/03/09(土) 22:43:52.46ID:kzjDxuXD 片方winしかしてないのにwinwinとは
268デフォルトの名無しさん
2019/03/10(日) 10:26:06.25ID:al/xCIsd まずあの当時の若いエンジニアならオブジェクト指向は当然の前提だからわざわざお題目として唱えない
269デフォルトの名無しさん
2019/03/10(日) 16:36:03.29ID:FM+9nmuq >>268
オブジェクト指向と言っても何をどうしたいのは人それぞれだからな。
オブジェクト指向と言っても何をどうしたいのは人それぞれだからな。
270デフォルトの名無しさん
2019/03/10(日) 19:06:30.25ID:kEGKNzHc その昔インスタンスを一個だけ作って
あとはメソッド=関数のように扱ってるプロジェクトを見たことがある
誰もダメ出ししなかったのかと
あとはメソッド=関数のように扱ってるプロジェクトを見たことがある
誰もダメ出ししなかったのかと
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】Jリーグ観客動員が歴代最多を更新 初の「1300万人超え」達成…平均入場者数も史上最高に [尺アジ★]
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 ★3 [少考さん★]
- 日中対立「着地点」見えず 中国、他国にも圧力の過去―関係悪化から1カ月 [蚤の市★]
- 日本の英語力96位から動かず AI評価で可視化された「読めるが話せない」の正体 (EF EPI 2025) ★2 [少考さん★]
- 【芸能】粗品、日本テレビに苦言 客のレベルが「かなり低い。あいつら分かってない」「拍手したいだけやねん」 [冬月記者★]
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★4 [Hitzeschleier★]
- 日本人騎手、香港カップで罰金10万香港ドル [462275543]
- 【朗報】イーロン・マスク「AIとロボットで誰も働かなくて良くなる。全員ニートで金銭も税金もないパラダイスみてぇな国を作りてえ」 [347751896]
- うまトマ食って「うまトマ〜」って言って滑ったんだが!?
- 仕事やめたいけど
- なんでネトウヨが勃起してるの? [377482965]
- 今これで全力シコってる
