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:pS5scTjj2019/02/08(金) 15:23:11.24ID:R4YoGPI4
Java全盛期だったからな
2019/02/08(金) 15:23:36.16ID:R4YoGPI4
phpまでオブジェクト志向とか狂ってたし
2019/02/08(金) 15:25:03.48ID:W/Hntm+n
staticおじさんの主張と関数型プログラミングは全く関係ない
関数型プログラミングはstatic変数なんか使わない
関数型プログラミングはstatic変数なんか使わない
2019/02/08(金) 15:28:16.85ID:f3TJJu2l
リーダブルコードにも極力staticにした方がいいって書いてあったな
6デフォルトの名無しさん
2019/02/08(金) 15:35:53.11ID:a1Tp9aO/ >>4
それは純粋関数型
それは純粋関数型
7デフォルトの名無しさん
2019/02/08(金) 15:36:51.43ID:QZ4Uj/ZC あの時期はjavaもそうだがrubyも悪い
2019/02/08(金) 15:37:21.50ID:4N6nvMTr
perlがクソクソ叩かれてた時期だからな
2019/02/08(金) 15:38:40.76ID:rNz0EA76
VBまでオブジェクト指向になってたからな。
底辺はそれが正しいと洗脳されてた。
底辺はそれが正しいと洗脳されてた。
2019/02/08(金) 15:39:02.52ID:OaBR9fSD
関数型はあまりにも難しすぎた
11デフォルトの名無しさん
2019/02/08(金) 15:39:58.76ID:VPgD7UHh いまでも関数型が理解できない奴が大半でTypeScriptみたいなトランスコード言語が次々出てきてるからな
12デフォルトの名無しさん
2019/02/08(金) 15:40:51.42ID:SGtVqYU9 @ITまわりは高学歴しか自慢できることが無い奴ばかりだったのが問題
13デフォルトの名無しさん
2019/02/08(金) 15:53:40.70ID:XuHrBl4g あれ完全に洗脳だよな
2019/02/08(金) 15:53:58.63ID:podrO9MW
集団ヒステリーみたいなもんだな
2019/02/08(金) 18:39:16.63ID:W/Hntm+n
>>6
だからなに?
> staticおじさんの主張と関数型プログラミングは全く関係ない
> 関数型プログラミングはstatic変数なんか使わない
この2つに対して、なにか否定したいなら
その理由を言えば?
だからなに?
> staticおじさんの主張と関数型プログラミングは全く関係ない
> 関数型プログラミングはstatic変数なんか使わない
この2つに対して、なにか否定したいなら
その理由を言えば?
2019/02/08(金) 18:39:54.29ID:W/Hntm+n
2019/02/08(金) 18:55:10.86ID:OdhM+TRJ
オブジェクトおじさんの方がたち悪いよね
18デフォルトの名無しさん
2019/02/08(金) 19:21:27.21ID:wNOXgeyf >>16
うっかり騙されるとこやったわ。
うっかり騙されるとこやったわ。
19デフォルトの名無しさん
2019/02/08(金) 21:28:02.60ID:g73JWU9E static女子高生なら叩かれなかった。諸悪の根源は彼がおじさんだったことであって彼の主張自体は何の間違いもない。
2019/02/08(金) 23:26:01.35ID:Ic824lCQ
>>19
静的女子高生…
静的女子高生…
21デフォルトの名無しさん
2019/02/08(金) 23:43:27.29ID:g73JWU9E >>16
make as many methods static as possible.
make as many methods static as possible.
2019/02/09(土) 00:10:27.61ID:Mo2A6iec
オブジェクト指向は愚かな考え
2019/02/09(土) 00:10:50.62ID:EjSVuTSx
>>17
ハロワすらオブジェクト指向で書こうとするからな
ハロワすらオブジェクト指向で書こうとするからな
2019/02/09(土) 00:12:10.95ID:1GMUh/vL
オブジェクト指向おじさんはIDEないと追うのが絶望的なソースにしまくるからタチが悪い
2019/02/09(土) 00:28:00.76ID:O4yJeWlE
オブジェクト指向3本柱マンのうちカプセル化が最も有害だと思う。
取りうる状態の組み合わせ爆発でまともな動作保証なんて出来ないだろ。
取りうる状態の組み合わせ爆発でまともな動作保証なんて出来ないだろ。
2019/02/09(土) 00:45:24.72ID:BEDpXpn6
お前ら関数型言語使えるんだよな?
2019/02/09(土) 01:01:16.24ID:qNFZDICU
そもそも関数型言語という言い方も誤解を招く要因
関数を型として扱えますよ何言ってんのと返されるだけ
関数を型として扱えますよ何言ってんのと返されるだけ
28デフォルトの名無しさん
2019/02/09(土) 01:19:36.90ID:wvYgqGa/2019/02/09(土) 01:24:06.13ID:c95MOxnf
東工大なら低学歴ぶった切ってよし!
30デフォルトの名無しさん
2019/02/09(土) 07:09:44.77ID:EhJ/kkED >>27
正確には関数を型安全な値として扱えますよ
正確には関数を型安全な値として扱えますよ
31デフォルトの名無しさん
2019/02/09(土) 08:02:23.63ID:NDas405z >>25
「階層化の有害性」ってやつだな
「階層化の有害性」ってやつだな
2019/02/09(土) 08:53:19.02ID:Oe2OGrsC
>>20
性的女子高生
性的女子高生
2019/02/09(土) 22:22:51.11ID:zy9w8qc8
staticおじさんは叩かれるけどDIでシングルトン保持するのは許される風潮があるよね
2019/02/09(土) 22:25:13.92ID:OJ6TU+cc
そりゃstaticにしないためのシングルトンだからな
2019/02/09(土) 22:56:18.26ID:DcqhKReG
Staticおじさんの言ってることと関数型言語はだいぶ違うと思うけど
2019/02/09(土) 23:26:26.85ID:RhBmlgQc
手続きおじさん
2019/02/10(日) 00:05:58.40ID:GE1ki46W
VBSおじさん
2019/02/10(日) 08:49:09.24ID:rK2pFdNZ
プログラミング手法そのものにこだわりがある人はダメ。めんどくさい。
2019/02/10(日) 09:58:53.14ID:ALObnpoM
おれあんまりこだわりないよ。
メソッドの先頭で全変数宣言
宣言した変数は直ちに初期値を代入
中途return禁止
ぐらいかな
メソッドの先頭で全変数宣言
宣言した変数は直ちに初期値を代入
中途return禁止
ぐらいかな
2019/02/10(日) 10:01:36.11ID:n6QJeawT
>>39
中途return禁止ってアーリーリターンも出来ないってこと?
中途return禁止ってアーリーリターンも出来ないってこと?
2019/02/10(日) 11:35:02.24ID:Ix0Ul5tp
中途return禁止とか言ってる奴はだいたい手段と目的を履き違えている
わざわざフラグ立てるくらいなら中途returnの方がマシ
中途returnが良くないと言われるのは処理順に依存した状態を持っていることになるからで、その代わりにフラグを使っても何も解決しない
わざわざフラグ立てるくらいなら中途returnの方がマシ
中途returnが良くないと言われるのは処理順に依存した状態を持っていることになるからで、その代わりにフラグを使っても何も解決しない
2019/02/10(日) 11:51:13.31ID:T5bON3Sh
前の会社は中途return禁止に再帰も禁止だった
めんどくさかったわ
めんどくさかったわ
2019/02/10(日) 11:55:13.97ID:LJxziodv
関数抜けるときの必須処理が多い場合は中途リターンせずにgoto使って、それ以外は中途リターンかな。
2019/02/10(日) 12:07:39.82ID:n6QJeawT
>>42
再帰禁止って、下手したら実装できないアルゴリズムとかあるんじゃないの
再帰禁止って、下手したら実装できないアルゴリズムとかあるんじゃないの
2019/02/10(日) 12:09:17.09ID:LJxziodv
>>44
ないでしょ
ないでしょ
2019/02/10(日) 12:19:54.47ID:Q/s8Bwot
実装できないことはないだろうけど再帰使った方がはるかに見通しが良くなるケースは多々あるだろうな
2019/02/10(日) 12:26:47.02ID:O8DkeQeo
あるフォルダ以下のフォルダ、ファイルを一覧表示とか再帰が便利だけどな
無くても余裕で作れるけど
無くても余裕で作れるけど
2019/02/10(日) 12:28:37.10ID:rK2pFdNZ
再帰使ったことないな。どんな時に使いたくなる?
呼び出し側で管理できるようにして繰り返し呼ぶ方がコードから処理がイメージしやすくていい気がするんだが。
まあコード量が少なくなるのと謎の美しさは感じるけど。
呼び出し側で管理できるようにして繰り返し呼ぶ方がコードから処理がイメージしやすくていい気がするんだが。
まあコード量が少なくなるのと謎の美しさは感じるけど。
2019/02/10(日) 12:29:11.59ID:rK2pFdNZ
>>47
なるほど
なるほど
2019/02/10(日) 12:30:17.50ID:Q/s8Bwot
>>48
階層の深さが可変のツリー構造になってるデータを探索する時とかに使う
階層の深さが可変のツリー構造になってるデータを探索する時とかに使う
2019/02/10(日) 12:31:26.00ID:cscIJSF5
末尾再起最適化を言語が保証してるのは前提として、いちいち末尾再起にするためにガチャガチャ汚ならしく変形するのが無常過ぎる。
例えばフィボナッチなんかは普通に再起書けば定義がそのまま動いているようでとても美しい。
メモ化入れてもそこまで汚くはならない。
しかし末尾再起のために変形すると一気に定義から離れる。
読むとき頭で変換しながら読むことになる。
ちっとも美しくない。
それなら最初からループで書いたほうが万が一にもスタック溢れないんだからいいわ。
例えばフィボナッチなんかは普通に再起書けば定義がそのまま動いているようでとても美しい。
メモ化入れてもそこまで汚くはならない。
しかし末尾再起のために変形すると一気に定義から離れる。
読むとき頭で変換しながら読むことになる。
ちっとも美しくない。
それなら最初からループで書いたほうが万が一にもスタック溢れないんだからいいわ。
2019/02/10(日) 12:32:03.94ID:DNUQi1GG
業務で再帰使ったことないわ
2019/02/10(日) 12:38:01.57ID:O8DkeQeo
将棋とかの思考ルーチンって再帰になってるのかな?
2019/02/10(日) 12:40:20.34ID:Q/s8Bwot
この再帰の話、全員が想定してる言語や状況が違いすぎて絶対に話がまとまらないやつだなw
2019/02/10(日) 12:41:15.72ID:O8DkeQeo
関数型 → 再帰
2019/02/10(日) 13:18:03.20ID:9lfcYoyL
>>52
ステップ数増やせるもんな
ステップ数増やせるもんな
2019/02/10(日) 13:33:45.38ID:n6QJeawT
再帰は階層構造を扱う時はほぼ必須だと思うけど、逆にそれ以外の用途はあまり思いつかない
2019/02/10(日) 13:44:32.23ID:DNUQi1GG
>>56
いや単純に使う場面がなかった
いや単純に使う場面がなかった
2019/02/10(日) 14:53:51.09ID:BEjmBSJ8
ループは再帰の糖衣構文だから何でも再帰で書けるんだけど
再帰構造を扱うとき以外は普通にループしたほうがいい、ってかそうでないと糖衣に包んだ意味がない
再帰構造を扱うとき以外は普通にループしたほうがいい、ってかそうでないと糖衣に包んだ意味がない
60デフォルトの名無しさん
2019/02/10(日) 15:05:17.60ID:tULdsfrx2019/02/10(日) 15:09:21.60ID:O8DkeQeo
フィボナッチで再帰は安直でマシンパワーの無駄使いの見本
ループでヤレ
ループでヤレ
2019/02/10(日) 17:24:48.45ID:KoYwv+8z
スマホのこのクソIME 再帰くらい変換しろやクソッ!候補にも出てこんぞ!
2019/02/10(日) 18:43:05.58ID:h0ljrL+B
1. ループは速い
2. 再帰にすると遅い
3. 末尾再帰になっていて処理系が対応していれば、
内部的にループに変換するので1と同じ速度になる
2. 再帰にすると遅い
3. 末尾再帰になっていて処理系が対応していれば、
内部的にループに変換するので1と同じ速度になる
2019/02/10(日) 20:55:34.15ID:c1xIq/Nm
SQLおじさんよりは実害ないからいい
2019/02/11(月) 10:51:41.00ID:vMTyjZUq
データ構造そのものが再帰構造になってるなら大人しく再帰を使う
せっかく階層を持ってるのに全部並列に並べてループ回してたら余計なコードが死ぬほど増えて何もいいことない
それ以外で使ったことはないし使おうと思ったこともない
せっかく階層を持ってるのに全部並列に並べてループ回してたら余計なコードが死ぬほど増えて何もいいことない
それ以外で使ったことはないし使おうと思ったこともない
2019/02/11(月) 12:10:58.33ID:27p6nxD6
別にデータ構造に振り回される必要ないと思うけどな。ループで処理した方が見通しよければそれでいい。まあコードが死ぬほど増えるなら避けた方がいいだろうけど。
67デフォルトの名無しさん
2019/02/11(月) 12:57:42.78ID:yN+iMh1T データ構造に振り回される
68デフォルトの名無しさん
2019/02/11(月) 12:58:12.86ID:yN+iMh1T www
2019/02/11(月) 13:02:33.29ID:qWYAdfL4
>>67
俺もワロタ
俺もワロタ
2019/02/11(月) 13:30:29.70ID:K/18SmCD
>>66
そこで高階関数ですよ!
そこで高階関数ですよ!
2019/02/11(月) 13:44:22.53ID:gYwRR98A
おれそんなに変なこといったか?
2019/02/11(月) 14:11:53.79ID:K/18SmCD
別に一般的な意見では?以下関数プログラミング実践入門より引用:
再帰関数は、物事を数学的に捉えた定義通りに書けることが多いためわかりやすいのですが、Haskellに慣れてくると直接的に再帰関数を書くのは避けるようになっていきます。
それは、再帰関数は便利であるのと同じくらい、危険でもあるからです。
停止しない再帰関数をうっかり書いてしまうこともあるでしょう。
とくに再帰関数を直接書くということは、時に必要となるものの、アセンブラを直接書くような低級な行為と認識されます。
データの構造に依存し、それを気にしたプログラミングを要求されるからです。
理想的にはデータの構造を気にせずに、全体に丸々変換をかけられるような関数だけを組み合わせて望む処理を書きたいのです。
そのために、再帰関数を直接利用せずにどうするかというと、次節で説明する高階関数をうまく利用するようになっていきます。
リストなど多くの再帰的に定義されたデータ構造に対しては、それを便利に利用するための計算パターンが用意されており、それらの計算パターンは高階関数として与えられています。
自分で再帰を書くのではなく、再帰部分は高階関数がやってくれるようになっています。
再帰関数は、物事を数学的に捉えた定義通りに書けることが多いためわかりやすいのですが、Haskellに慣れてくると直接的に再帰関数を書くのは避けるようになっていきます。
それは、再帰関数は便利であるのと同じくらい、危険でもあるからです。
停止しない再帰関数をうっかり書いてしまうこともあるでしょう。
とくに再帰関数を直接書くということは、時に必要となるものの、アセンブラを直接書くような低級な行為と認識されます。
データの構造に依存し、それを気にしたプログラミングを要求されるからです。
理想的にはデータの構造を気にせずに、全体に丸々変換をかけられるような関数だけを組み合わせて望む処理を書きたいのです。
そのために、再帰関数を直接利用せずにどうするかというと、次節で説明する高階関数をうまく利用するようになっていきます。
リストなど多くの再帰的に定義されたデータ構造に対しては、それを便利に利用するための計算パターンが用意されており、それらの計算パターンは高階関数として与えられています。
自分で再帰を書くのではなく、再帰部分は高階関数がやってくれるようになっています。
2019/02/11(月) 14:30:20.19ID:vMTyjZUq
そもそもこのスレではみんなの想定する「再帰」という言葉の定義からして違いそうなのは伝わってくる
2019/02/11(月) 14:50:55.95ID:OckTJWpB
永遠に噛み合わない水掛け論やってないでStaticおじさんの話をしてやれよ
2019/02/11(月) 15:30:45.56ID:+dKi1IbA
(言うほど噛み合ってないか?)
2019/02/11(月) 16:08:34.92ID:wLhY3x2i
>>72
これも当てはまる
ループ処理は、物事を数学的に捉えた定義通りに書けることが多いためわかりやすいのですが、Haskellに慣れてくると直接的にループ処理を書くのは避けるようになっていきます。
それは、ループ処理は便利であるのと同じくらい、危険でもあるからです。
停止しないループ処理をうっかり書いてしまうこともあるでしょう。
とくにループ処理を直接書くということは、時に必要となるものの、アセンブラを直接書くような低級な行為と認識されます。
データの構造に依存し、それを気にしたプログラミングを要求されるからです。
理想的にはデータの構造を気にせずに、全体に丸々変換をかけられるような関数だけを組み合わせて望む処理を書きたいのです。
そのために、ループ処理を直接利用せずにどうするかというと、次節で説明する高階関数をうまく利用するようになっていきます。
リストなど多くのループ処理に定義されたデータ構造に対しては、それを便利に利用するための計算パターンが用意されており、それらの計算パターンは高階関数として与えられています。
自分でループを書くのではなく、ループは高階関数がやってくれるようになっています。
これも当てはまる
ループ処理は、物事を数学的に捉えた定義通りに書けることが多いためわかりやすいのですが、Haskellに慣れてくると直接的にループ処理を書くのは避けるようになっていきます。
それは、ループ処理は便利であるのと同じくらい、危険でもあるからです。
停止しないループ処理をうっかり書いてしまうこともあるでしょう。
とくにループ処理を直接書くということは、時に必要となるものの、アセンブラを直接書くような低級な行為と認識されます。
データの構造に依存し、それを気にしたプログラミングを要求されるからです。
理想的にはデータの構造を気にせずに、全体に丸々変換をかけられるような関数だけを組み合わせて望む処理を書きたいのです。
そのために、ループ処理を直接利用せずにどうするかというと、次節で説明する高階関数をうまく利用するようになっていきます。
リストなど多くのループ処理に定義されたデータ構造に対しては、それを便利に利用するための計算パターンが用意されており、それらの計算パターンは高階関数として与えられています。
自分でループを書くのではなく、ループは高階関数がやってくれるようになっています。
2019/02/11(月) 16:33:22.35ID:K/18SmCD
>>76
雑すぎる…
> ループ処理は、物事を数学的に捉えた定義通りに書けることが多いため
数学の教科書読み直せw
> Haskellに慣れてくると直接的にループ処理を書くのは避けるようになっていきます。
Haskellはそもそもループ書けないぞw
雑すぎる…
> ループ処理は、物事を数学的に捉えた定義通りに書けることが多いため
数学の教科書読み直せw
> Haskellに慣れてくると直接的にループ処理を書くのは避けるようになっていきます。
Haskellはそもそもループ書けないぞw
2019/02/11(月) 18:40:51.77ID:iZFjFd14
再帰する関数の定義がばっちりと決まってて動かしようがないならそっちに吸い寄せられて書くけど
漏れがありそうな場合は再帰は使わない
普通のAPIで仕様的に再帰とは指定されてこないしね…(来たら死ねと思うわ)
漏れがありそうな場合は再帰は使わない
普通のAPIで仕様的に再帰とは指定されてこないしね…(来たら死ねと思うわ)
79デフォルトの名無しさん
2019/02/12(火) 01:14:01.84ID:aNPhUqtm 関数型なんかは結局書ける奴が少ない
それでは業務はこなしきれない
それが解らない奴はただのアホです
自分は凄い事が出来ますよ〜
って自慢したいだけ
それでは業務はこなしきれない
それが解らない奴はただのアホです
自分は凄い事が出来ますよ〜
って自慢したいだけ
2019/02/12(火) 01:26:10.04ID:Gzde7jeA
んなアホな
2019/02/12(火) 01:29:37.44ID:xM7yD0R2
そんなことないだろ。別に数学のすごい理論完璧に把握してなきゃ関数型書けないって訳でもないし。
OOP真理教の経典暗記のほうがよほど辛い。
慣れてないだけ。難しいと思い込んでるだけ。
OOP真理教の経典暗記のほうがよほど辛い。
慣れてないだけ。難しいと思い込んでるだけ。
82デフォルトの名無しさん
2019/02/12(火) 10:14:15.57ID:1dJfHHkV ネタにマジレスかもしれないが、
未だにこんなこと言ってるバカいるんだな。
今、誰でも名前知ってる大企業から受託案件受けてるけど、
一番チェックされるのは「オブジェクト指向設計になっているか」だぞ。
上でも出てるけど、staticおじさんの主張と関数型言語は何の関係もない。
関数型言語の本質は参照透過性。
「public static宣言した共有変数」なんて、
参照透過性を妨げる最たるものだろwww
未だにこんなこと言ってるバカいるんだな。
今、誰でも名前知ってる大企業から受託案件受けてるけど、
一番チェックされるのは「オブジェクト指向設計になっているか」だぞ。
上でも出てるけど、staticおじさんの主張と関数型言語は何の関係もない。
関数型言語の本質は参照透過性。
「public static宣言した共有変数」なんて、
参照透過性を妨げる最たるものだろwww
2019/02/12(火) 10:26:36.21ID:wp1a6nq7
そのオブジェクト指向もできないのが多すぎるから問題なんだよな
オブジェクトが分かってないからデザインパターンなんてもんも理解できるわけもない
つまり話は巡り巡ってstaticおじさんにたどり着くわけだ
オブジェクト指向もできなければ関数型でもないただのウンコード量産機がstaticおじさん
オブジェクトが分かってないからデザインパターンなんてもんも理解できるわけもない
つまり話は巡り巡ってstaticおじさんにたどり着くわけだ
オブジェクト指向もできなければ関数型でもないただのウンコード量産機がstaticおじさん
2019/02/12(火) 12:36:54.43ID:NT60/ZFg
でもこのstaticおじさん順調に出世して今では大手の本部長だかCTOだかなんでしょ?
2019/02/12(火) 12:56:41.90ID:VqanzRzk
高階関数って偉そうに言ってるけど具体例出さない時点でエアプだろw
2019/02/12(火) 13:06:24.87ID:eC1lEXzI
高階関数なんてありふれてるだろ。
それを偉そうにとは?
使ったことないの?
それを偉そうにとは?
使ったことないの?
2019/02/12(火) 13:12:41.50ID:1MzWJDZP
プログラミングは経験つめば抽象的な概念を使って具体的な整理がしっかりできる世界だろ。
2019/02/12(火) 14:00:13.73ID:zaXjz+ge
例出す必要もないわなw
2019/02/12(火) 14:00:46.30ID:zaXjz+ge
関数型コンプレックス
2019/02/12(火) 17:08:04.63ID:wp1a6nq7
2019/02/12(火) 18:46:33.01ID:1MzWJDZP
>>90
落ち着け。その解釈はメモリ破壊系のバグが発生してる可能性高い。
落ち着け。その解釈はメモリ破壊系のバグが発生してる可能性高い。
2019/02/12(火) 19:05:54.66ID:hBAcbodS
>>91
等価じゃないものを等価と判定してるから、そこら辺のロジックにバグがありそうだな
等価じゃないものを等価と判定してるから、そこら辺のロジックにバグがありそうだな
2019/02/12(火) 19:12:54.88ID:zaXjz+ge
バグおじさん
2019/02/12(火) 20:04:05.06ID:g6CslLMJ
テストコードちゃんと書く奴ならstatic変数もオブジェクト指向も
ある点で問題あることは理解できるもんだが。
そういう意味では関数型のが有害性は低いか。
たまに何でもかんでも再帰で書こうとして逆に可読性低くする馬鹿もいるが。
ある点で問題あることは理解できるもんだが。
そういう意味では関数型のが有害性は低いか。
たまに何でもかんでも再帰で書こうとして逆に可読性低くする馬鹿もいるが。
2019/02/12(火) 21:25:33.47ID:YWb9Gabw
なんだかんだ出世高給取りのstaticおじさん勝ち組だわ
2019/02/13(水) 01:37:44.19ID:WxhWOV7/
さんざんメソッド移動して最後のメソッドでreturnだけして値返すだけなのにたどり着くと殺意が湧く
2019/02/13(水) 01:43:30.19ID:P+AkLq1G
マトリョーシカおじさん
2019/02/13(水) 01:47:04.99ID:wIurVPBj
関数型の話をすると
関数書けない言語なんてあるんですかねと返されたことを思い出す
関数書けない言語なんてあるんですかねと返されたことを思い出す
2019/02/13(水) 01:56:08.62ID:5ssU2x9I
フフッ
100>>82
2019/02/13(水) 22:33:19.44ID:1YO06rir >>83
ま、その通りだよな。
「public static宣言した共有変数」なんて、
オブジェクト間のメッセージパッシングができないアホ
(別名「オブジェクト指向もできなければ関数型でもないただのウンコード量産機」)
が頼ろうとする手段の最たるものだからな。
ま、その通りだよな。
「public static宣言した共有変数」なんて、
オブジェクト間のメッセージパッシングができないアホ
(別名「オブジェクト指向もできなければ関数型でもないただのウンコード量産機」)
が頼ろうとする手段の最たるものだからな。
101デフォルトの名無しさん
2019/02/14(木) 07:14:01.74ID:zYy89We+ また今日もValueHolderモデル使わないで直にget/setやるうんこちゃんと仲良くコード書かなきゃ
はぁまじはぁ
はぁまじはぁ
102デフォルトの名無しさん
2019/02/15(金) 22:52:26.99ID:9C1FU27E 勘違いしてるやつ多いけど
statucおじさんはJavaじゃなくてC#だぞ
Javaプログラマのryoasaiがハッスルしただけで
statucおじさんはJavaじゃなくてC#だぞ
Javaプログラマのryoasaiがハッスルしただけで
103デフォルトの名無しさん
2019/02/16(土) 16:43:03.87ID:tvgUJD+/ どこまですればオブジェクト思考なのか
104デフォルトの名無しさん
2019/02/16(土) 17:24:45.57ID:mbQsd5u7 Classあれば全部オブジェクト指向
105デフォルトの名無しさん
2019/02/16(土) 17:27:47.39ID:3/SZoFmm Cで構造体を引き回して管理するタイプのライブラリはオブジェクト思考と言えるだろうか?
106デフォルトの名無しさん
2019/02/16(土) 18:51:28.96ID:LE6s3aZE XWindowライブラリは一般にはオブジェクト指向だと言われとる。
どこまでシンタックスでカプセル化対応するか、どこまで動的なものにするかってのが
議論の分かれ目じゃないかね。
どこまでシンタックスでカプセル化対応するか、どこまで動的なものにするかってのが
議論の分かれ目じゃないかね。
107デフォルトの名無しさん
2019/02/16(土) 19:03:53.77ID:PhVDH7kZ 違うだろ
Cの構造体と糞みたいに長い名前のXwindow関数群がいやだから
オブジェクト指向に移行したんだろ
Cの構造体と糞みたいに長い名前のXwindow関数群がいやだから
オブジェクト指向に移行したんだろ
108デフォルトの名無しさん
2019/02/17(日) 01:27:10.00ID:O/E0SKNM109デフォルトの名無しさん
2019/02/17(日) 02:26:19.17ID:L6um7wlM ハンドラ変数という悪夢
110デフォルトの名無しさん
2019/02/17(日) 03:07:42.86ID:xp57qVrW ハンドラに関数ポインタ持たせて、でその関数の変数にハンドラのポインタを渡しておけばさすがにオブジェクト指向と言えるか?
こうなるとハンドラじゃなくてthisとかselfって呼びたくなるな。
こうなるとハンドラじゃなくてthisとかselfって呼びたくなるな。
111デフォルトの名無しさん
2019/02/17(日) 04:02:09.20ID:KHx9LvZX >>108
関わりたくないとか言いながら自らアンカしてかかわっていくスタイルすごい斬新ですね
関わりたくないとか言いながら自らアンカしてかかわっていくスタイルすごい斬新ですね
112デフォルトの名無しさん
2019/02/17(日) 10:00:29.48ID:7SCgo2EY オブジェクト指向ならメソッド名などのメンバー名があいまいでもエディタである程度関数名がでてくる
構造体+グローバル関数だとアホみたいに出てくる候補から選ばなくてはならない
昔はその候補すら出ないので正確な名前が必要だった
だから分厚い辞書みたいな本や紙の束を持ってプログラムしていた
それでもミスする
コンパイルエラーでそんな関数ないよって言われてばかり
構造体+グローバル関数だとアホみたいに出てくる候補から選ばなくてはならない
昔はその候補すら出ないので正確な名前が必要だった
だから分厚い辞書みたいな本や紙の束を持ってプログラムしていた
それでもミスする
コンパイルエラーでそんな関数ないよって言われてばかり
113デフォルトの名無しさん
2019/02/17(日) 10:07:41.57ID:zowSdywj 設計書の機能一覧のどこのメソッドなのそれ?
これがわからないとどんなに高機能になってもゴミ
マイクロソフトはofficeとvisualstudioの統合を早急に行うべき
これがわからないとどんなに高機能になってもゴミ
マイクロソフトはofficeとvisualstudioの統合を早急に行うべき
114デフォルトの名無しさん
2019/02/17(日) 10:10:56.31ID:7SCgo2EY 昔は紙の束やノートや本をもってコードを書いていたんだよ
冗談抜きで
その本は洋書だた
教授の本棚から借りてくるの
冗談抜きで
その本は洋書だた
教授の本棚から借りてくるの
115デフォルトの名無しさん
2019/02/17(日) 10:17:10.43ID:zowSdywj116デフォルトの名無しさん
2019/02/17(日) 10:20:39.56ID:7SCgo2EY メソッド名が○○createなのか○○Createなのかcreate○○なのかCreate○○なのかcreates○○なのかCreates○○なのか
Cだと○○creatという線もある
○○.create最強すぎる
Cだと○○creatという線もある
○○.create最強すぎる
117デフォルトの名無しさん
2019/02/17(日) 10:38:53.57ID:S3RSWBju せめてcreatにeをつけたいね
118デフォルトの名無しさん
2019/02/17(日) 10:43:49.68ID:zowSdywj creatE○○採用
検索ヒットしやすいだろ
検索ヒットしやすいだろ
119デフォルトの名無しさん
2019/02/17(日) 11:51:33.28ID:hPUvxkn3 gccオプションでstaticを封じるとかあればいいのにw
120デフォルトの名無しさん
2019/02/17(日) 12:09:58.01ID:p5ummUd3 仮想関数技術でstatic関数みたいにできなかったっけ?
staticも静的占有修飾子という名称を聞いたことあるだけで
あんまくわしく知らない。違うところのファイルも仮想関数
使うとstaticとおんなじようにできるんじゃなかったっけ?
staticも静的占有修飾子という名称を聞いたことあるだけで
あんまくわしく知らない。違うところのファイルも仮想関数
使うとstaticとおんなじようにできるんじゃなかったっけ?
121デフォルトの名無しさん
2019/02/17(日) 15:23:18.00ID:KFkN1Yft fantasticおじさん
122デフォルトの名無しさん
2019/02/17(日) 16:24:01.33ID:stWHtwS7 algol60で新しく導入された従来の構文とは直交(orthogomal)する
ブロック(block)構文内で計算した結果を保存するために
一緒に導入されたのが占有修飾子own。だけれども実装に
あたっては仕様が曖昧で動的、静的、中間解釈と三通りに
解釈があって大論争。最終的にownの解釈は静的(static)
です、でstaticになった。
Simulaとかはそもそもブロック(block)の計算結果を捨てる
からいかんのだ、であんまりプログラマーになじみのない
例を題材に並列化をといてたりするからクラスベースのOOには
staticは実は固有の用語だね。
ブロック(block)構文内で計算した結果を保存するために
一緒に導入されたのが占有修飾子own。だけれども実装に
あたっては仕様が曖昧で動的、静的、中間解釈と三通りに
解釈があって大論争。最終的にownの解釈は静的(static)
です、でstaticになった。
Simulaとかはそもそもブロック(block)の計算結果を捨てる
からいかんのだ、であんまりプログラマーになじみのない
例を題材に並列化をといてたりするからクラスベースのOOには
staticは実は固有の用語だね。
123デフォルトの名無しさん
2019/02/22(金) 13:18:21.26ID:1Zm4d6fz クラスがあればstaticなんて不要だよな。
逆にクラスが無いならstatic使うしか無い。
逆にクラスが無いならstatic使うしか無い。
124デフォルトの名無しさん
2019/02/22(金) 14:02:53.19ID:s1C4N+RU シングルトンの実装はどのようにするべき?
125デフォルトの名無しさん
2019/02/22(金) 17:23:44.59ID:p3Rb6+Rr コメントに
// これはシングルトンで使ってください
って書いてけばおk
// これはシングルトンで使ってください
って書いてけばおk
126デフォルトの名無しさん
2019/02/22(金) 19:36:01.71ID:nCLTgLRo シングルトンは使うなが正解
127デフォルトの名無しさん
2019/02/22(金) 19:54:20.58ID:1Zm4d6fz リソース競合怖いならセマフォで排他すりゃいいしな。
待たせたいなら待たせればいいし。
待たせたいなら待たせればいいし。
128デフォルトの名無しさん
2019/02/22(金) 22:48:48.51ID:Tn7dUsgu >>124
DIコンテナを使う
DIコンテナを使う
129デフォルトの名無しさん
2019/02/25(月) 23:03:39.42ID:TP8zPbuZ シングルトンってどこで使うんだ?インスタンスを直接生成させたくないならManager使えばいいじゃん
130デフォルトの名無しさん
2019/02/25(月) 23:30:02.76ID:lsusqOoA >>129
Managerとは?
Managerとは?
131デフォルトの名無しさん
2019/02/25(月) 23:38:46.23ID:g2jQN+TN トンチンカンだったらすまんけど、例えばオーディオ操作するクラスとかはシングルトンだった。オーディオAPIを複数のインスタンスから叩かれてどうなるかよくわからないし。
132デフォルトの名無しさん
2019/02/25(月) 23:40:53.63ID:g2jQN+TN >>131だけど正確にはCでシングルトン的な実装をしてた。classとか紛らわしい言葉使ってすまない。
133デフォルトの名無しさん
2019/02/26(火) 10:45:40.21ID:UuxN6/HJ Cならむしろシングルトンがデフォルトだろ。
あれで別オブジェクト同時に動かすには工夫が要るからな。
あれで別オブジェクト同時に動かすには工夫が要るからな。
134デフォルトの名無しさん
2019/02/26(火) 12:57:09.88ID:4VLeDBYT 例えばタイマー機能を持つライブラリなんかはいろんなスレッドで別々に使用したくなるから別オブジェクトで同時に動かしたりするな。別オブジェクトというか別ハンドラ構造体だが。
135デフォルトの名無しさん
2019/02/26(火) 15:41:32.58ID:e2/fBDmS シングルトンをどう作るor使うって、言語によってあまりにも違いすぎるから一般化無理だろw
136デフォルトの名無しさん
2019/02/26(火) 18:02:58.64ID:eD4jaKNG 役割は言語関係ないだろ
137デフォルトの名無しさん
2019/02/26(火) 19:58:36.33ID:tR5x62Pi 結局どこでインスタンス生成するかを決めきれてないところがシングルトンが必要になる理由で
それは設計を見直すっていうのが根本的な治療な訳だ。
それは設計を見直すっていうのが根本的な治療な訳だ。
138デフォルトの名無しさん
2019/02/26(火) 20:25:46.94ID:a57A2wmx >>137
言いたいことはわかるが、「起きてはいけないことは起こらないようにする」ということを好むプログラマーがいて、彼らが作ったのがシングルトンなんじゃないの?
だからシングルトンが必要なわけでもないし治療が必要なわけでもない。
言いたいことはわかるが、「起きてはいけないことは起こらないようにする」ということを好むプログラマーがいて、彼らが作ったのがシングルトンなんじゃないの?
だからシングルトンが必要なわけでもないし治療が必要なわけでもない。
139デフォルトの名無しさん
2019/02/26(火) 20:35:21.90ID:W0wJxBNy 一方世間では「子供部屋おじさん」が激増中
140デフォルトの名無しさん
2019/02/26(火) 20:48:30.10ID:W0wJxBNy シングルトンの話題か、はいはい。
Singleton何が悪いの?
https://qiita.com/mo12ino/items/abf2e31e34278ebea42c
Why is Singleton considered an anti-pattern?
https://stackoverflow.com/questions/12755539/why-is-singleton-considered-an-anti-pattern
When Singleton Becomes an Anti-Pattern
https://dzone.com/articles/singleton-anti-pattern
Singleton is not an anti-pattern
https://medium.com/@piotr.chmielowski/singleton-is-not-an-anti-pattern-51392c3e508e
Singleton Anti-Pattern
https://www.michaelsafyan.com/tech/design/patterns/singleton
Singleton何が悪いの?
https://qiita.com/mo12ino/items/abf2e31e34278ebea42c
Why is Singleton considered an anti-pattern?
https://stackoverflow.com/questions/12755539/why-is-singleton-considered-an-anti-pattern
When Singleton Becomes an Anti-Pattern
https://dzone.com/articles/singleton-anti-pattern
Singleton is not an anti-pattern
https://medium.com/@piotr.chmielowski/singleton-is-not-an-anti-pattern-51392c3e508e
Singleton Anti-Pattern
https://www.michaelsafyan.com/tech/design/patterns/singleton
141デフォルトの名無しさん
2019/02/26(火) 21:49:06.18ID:AvMGpFJx シングルトンの話題がここまで伸びるとは・・・
まあ実際使わんからな。
正規表現をstaticにするのは悪い考えだろうか?
更に言えばstatic constなら問題無い?
まあ実際使わんからな。
正規表現をstaticにするのは悪い考えだろうか?
更に言えばstatic constなら問題無い?
142デフォルトの名無しさん
2019/02/26(火) 23:45:48.96ID:DJEN/H2R >>140
自分の意見を言えよ!(激おこ
自分の意見を言えよ!(激おこ
143デフォルトの名無しさん
2019/02/27(水) 00:27:53.77ID:wn5rL22a シングルトンと書いて"どこでもドア"と呼ぶ
144デフォルトの名無しさん
2019/02/27(水) 08:19:37.48ID:6ZXfG+VB 読み書きできるデータがどこでもドアなのは怖いけど副作用のないメソッドがどこでもドアなのはありがたい
145デフォルトの名無しさん
2019/02/27(水) 08:36:57.25ID:yveuGv1a C言語のstatic宣言が、private宣言となっているのがいけない。
146デフォルトの名無しさん
2019/02/27(水) 17:50:25.07ID:OHGiEJmI シングルトンにしてはいけないものをシングルトンにする輩がそこそこいるからな
147デフォルトの名無しさん
2019/02/27(水) 18:43:11.68ID:6a6tMlMF readは別にスコープをそこまで気にせんでもいいがwriteはあかんな。
シングルトンの問題とstaticおじさんの問題は本質的には同じ。
シングルトンの問題とstaticおじさんの問題は本質的には同じ。
148デフォルトの名無しさん
2019/02/28(木) 18:19:05.20ID:4caMtz9v やっとstaticおじさんの記事見つけた。面白いな、これ。「本物のプログラマは...」ほどじゃないけど、よく煽れてる。
149デフォルトの名無しさん
2019/02/28(木) 18:51:23.07ID:IByT54N8 > プログラムのアルゴリズムとは無関係のものである。
これは何となくわかるな。
むかし、LALRパーサジェネレータ書いたことがあって、最初OOPで書いたんだけど、あまりにも冗長になったので、ドラゴンブックに載ってるような古典で書いたら、もの凄くわかりやすくなった。
これは何となくわかるな。
むかし、LALRパーサジェネレータ書いたことがあって、最初OOPで書いたんだけど、あまりにも冗長になったので、ドラゴンブックに載ってるような古典で書いたら、もの凄くわかりやすくなった。
150デフォルトの名無しさん
2019/02/28(木) 22:23:17.58ID:jqfgz8pY >>130
Factoryだった
Factoryだった
151デフォルトの名無しさん
2019/03/01(金) 18:22:50.40ID:w4y3c4gQ >>100
うむうむ
うむうむ
152デフォルトの名無しさん
2019/03/01(金) 20:23:46.44ID:USDimQm3 害悪はDBの正規化おじさんのが上逝ってる。
153デフォルトの名無しさん
2019/03/01(金) 20:25:22.77ID:9js6QXaa 非正規化おじさん?
154デフォルトの名無しさん
2019/03/01(金) 20:38:01.31ID:RkdjknyC 縁起の悪い呼び方やめれ
155デフォルトの名無しさん
2019/03/01(金) 20:44:23.08ID:/17UEdHn big queryとかわざわざ非正規化させられるよな
公務員なっときゃよかった
公務員なっときゃよかった
156デフォルトの名無しさん
2019/03/01(金) 20:50:19.05ID:P8UuTZRK 構造としては完全に正規化したほうがいいのに、実際には弊害が多いってことは、DBMS側の問題のような気がするのだが。
正規化しまくっても実用に耐えられるだけの速度が出せればいい。
正規化しまくっても実用に耐えられるだけの速度が出せればいい。
157デフォルトの名無しさん
2019/03/01(金) 21:28:27.41ID:Y8fj+4tW 「構造としては完全に正規化したほうがいい」これがダウトだから速度が出ないんだろうが。
joinのコストなんてどう頑張っても限界があるわ。
joinのコストなんてどう頑張っても限界があるわ。
158デフォルトの名無しさん
2019/03/02(土) 01:57:17.03ID:5dA5xfVW オブジェクト指向は宗教なので
159デフォルトの名無しさん
2019/03/02(土) 07:50:23.86ID:66qf4QbX160デフォルトの名無しさん
2019/03/02(土) 08:55:41.65ID:bakyLAA5161デフォルトの名無しさん
2019/03/02(土) 09:32:08.88ID:1SfH4HCR いやマテリアライズドビュー使えや
162デフォルトの名無しさん
2019/03/02(土) 10:16:35.03ID:GZ5C2Het 下手に正規化しすぎると例えば3年前のデータを見たら現在の名称が表示されて大混乱、とかよくある
163デフォルトの名無しさん
2019/03/02(土) 10:40:50.67ID:Ebyn5USS 正規化おじさんはoracleのオプティマイザに100%の信頼置いてんのか?
いちいちヒント書くの非効率なんだが
いちいちヒント書くの非効率なんだが
164デフォルトの名無しさん
2019/03/02(土) 11:46:40.24ID:PSsyx6Qo だからマテリアライズドビュー使え
165デフォルトの名無しさん
2019/03/02(土) 11:49:44.37ID:egGs6Y+K そうだマテリアライズドビュー使え
166デフォルトの名無しさん
2019/03/02(土) 12:58:56.32ID:HQU7x3/f もしマテリアライズドビュー使ったら?
167デフォルトの名無しさん
2019/03/02(土) 14:32:26.26ID:391w8W0a 待てリアライズビューが始まる
168デフォルトの名無しさん
2019/03/02(土) 18:49:39.39ID:y8OJKCt/ >>129
loggerとかはシングルトンがいいんじゃねーの?
loggerとかはシングルトンがいいんじゃねーの?
169デフォルトの名無しさん
2019/03/02(土) 19:00:27.27ID:bakyLAA5170デフォルトの名無しさん
2019/03/02(土) 20:29:04.43ID:y8OJKCt/ >>169
俺はアンチシングルトンおじさんなんだけど、loggerだけはいいパターン見つかんなくて妥協して使ってるんだよねぇ
あとはシステム内で共有するパラメータとかも妥協的に
なんかいい手法あるかね?
俺はアンチシングルトンおじさんなんだけど、loggerだけはいいパターン見つかんなくて妥協して使ってるんだよねぇ
あとはシステム内で共有するパラメータとかも妥協的に
なんかいい手法あるかね?
171デフォルトの名無しさん
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 その昔インスタンスを一個だけ作って
あとはメソッド=関数のように扱ってるプロジェクトを見たことがある
誰もダメ出ししなかったのかと
あとはメソッド=関数のように扱ってるプロジェクトを見たことがある
誰もダメ出ししなかったのかと
271デフォルトの名無しさん
2019/03/10(日) 19:10:28.71ID:bDFWdxia やり方によっちゃリファクタリングできる余地もあるだろうしstatic変数使うよりかは
少しだけマシかなと。
最近の設計方針としてはオブジェクト指向がどうよりもSOLIDを理解してる方がだいじかなと思う。
SOLID少しバカにしてたけど、かなりコンパクトに要素をまとめた標語になってる気がしてきた。
少しだけマシかなと。
最近の設計方針としてはオブジェクト指向がどうよりもSOLIDを理解してる方がだいじかなと思う。
SOLID少しバカにしてたけど、かなりコンパクトに要素をまとめた標語になってる気がしてきた。
272デフォルトの名無しさん
2019/03/11(月) 04:59:46.90ID:pTTv+VC9 インスタンスが増える可能性があるなら良いんじゃない?
273デフォルトの名無しさん
2019/03/11(月) 05:12:51.52ID: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.
http://developer.wonderpla.net/entry/blog/engineer/oop_solid_s/
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.
http://developer.wonderpla.net/entry/blog/engineer/oop_solid_s/
274デフォルトの名無しさん
2019/03/11(月) 10:20:49.00ID:Rz4vOdRL 役割分担がどこまで出来てるかだよな。
オブジェクト指向より前から、機能分担なんてのは普通にやってたし、共通部品化と言う考えもあったしな。
オブジェクト指向より前から、機能分担なんてのは普通にやってたし、共通部品化と言う考えもあったしな。
275デフォルトの名無しさん
2019/03/13(水) 20:12:53.02ID:AiOHxaEO スノッブだよ。スノッブが役割分担とか笑わせる
276デフォルトの名無しさん
2019/03/13(水) 20:35:09.13ID:Kky52x6n じゃあいままで一体なにやって来たんだ。
277デフォルトの名無しさん
2019/03/14(木) 06:57:29.67ID:/hJRNFKz ↓麻生太郎のあの画像
278デフォルトの名無しさん
2019/03/14(木) 11:05:30.46ID:lFrR8Qde スコープの概念が無いだけ
279デフォルトの名無しさん
2019/03/14(木) 12:44:05.36ID:jLkIdUGW 怪奇現象が怖かったから、ほら、怖いだろ?って
後片付け、気が滅入る
後片付け、気が滅入る
280デフォルトの名無しさん
2019/03/17(日) 23:41:55.70ID:qFtY3RGx staticおじさん叩いてる人の何割がSingletonをstatic class的に使ってたのか問題
281デフォルトの名無しさん
2019/03/20(水) 09:26:19.50ID:R+JMdvE0 そんなやつおるの?w
282デフォルトの名無しさん
2019/04/14(日) 10:21:07.07ID:VpFefbBa >>206
ラベル付きのbreakとかcontinueって、スペルを変えたgotoってだけだよな
ラベル付きのbreakとかcontinueって、スペルを変えたgotoってだけだよな
283デフォルトの名無しさん
2019/04/14(日) 11:52:53.79ID:u6Sj11hg284デフォルトの名無しさん
2019/04/15(月) 09:54:01.21ID:gVz3O2O7 www.sejuku.netのゴミさは異常
いい加減な記事ばかりサイトに載せやがって
検索に引っかからないでほしい
いい加減な記事ばかりサイトに載せやがって
検索に引っかからないでほしい
285デフォルトの名無しさん
2019/04/15(月) 10:44:00.27ID:BsGbG3gA 英語の意味検索するときweblio見たいのにalcとかいうゴミサイトが上に来るみたいなもんだなwww
286デフォルトの名無しさん
2019/04/15(月) 13:14:38.74ID:Q9ByXEDM 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
これもガチで検索結果から消えてほしい
役に立ったためしがない
これもガチで検索結果から消えてほしい
役に立ったためしがない
287デフォルトの名無しさん
2019/04/15(月) 15:31:15.66ID:mM0ZEu/B インスタンス
コールスタックに実引数以外にインスタンスのアドレス積む
フィールドアクセスにアドレスの計算が必要
スタティック
コールスタックには実引数のみで良い
フィールドアクセスはダイレクトなアクセスでOK
satanic的にstaticはfantastic!!
コールスタックに実引数以外にインスタンスのアドレス積む
フィールドアクセスにアドレスの計算が必要
スタティック
コールスタックには実引数のみで良い
フィールドアクセスはダイレクトなアクセスでOK
satanic的にstaticはfantastic!!
288デフォルトの名無しさん
2019/04/15(月) 19:18:49.56ID:dnOkKB7K >>286
Google Hit Hider by Domainっていうuserscriptで検索結果から消してる
Google Hit Hider by Domainっていうuserscriptで検索結果から消してる
289デフォルトの名無しさん
2019/04/15(月) 20:37:29.25ID:Q9ByXEDM290デフォルトの名無しさん
2019/05/18(土) 13:49:08.45ID:J0miZ/5C perlあたりの時代だと手書きhtmlサイトだけだったのでperlの学習効率は高かった
今はblog化されてて、perl時代より学習効率が落ちてる
今はblog化されてて、perl時代より学習効率が落ちてる
291デフォルトの名無しさん
2019/06/18(火) 06:20:31.75ID:3nOE2mBA プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/
142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/
142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
292デフォルトの名無しさん
2019/08/28(水) 16:31:00.84ID:mS+vHE7R >>19
性的女子高校生
性的女子高校生
293デフォルトの名無しさん
2020/06/22(月) 15:51:05.78ID:khT4bacP 阪神タイガース居酒屋みたいなものがあればいいのか。
Ruby居酒屋 Rubyディすると即退場
Java居酒屋
K&R C居酒屋
うーむ。K&R居酒屋は、開店しても閉店まで客一人とかだから誰もやらんな
となると、客が多くきそうな、旬なおっPython居酒屋が一押しか。
Ruby居酒屋 Rubyディすると即退場
Java居酒屋
K&R C居酒屋
うーむ。K&R居酒屋は、開店しても閉店まで客一人とかだから誰もやらんな
となると、客が多くきそうな、旬なおっPython居酒屋が一押しか。
294デフォルトの名無しさん
2020/06/22(月) 15:51:05.86ID:khT4bacP 阪神タイガース居酒屋みたいなものがあればいいのか。
Ruby居酒屋 Rubyディすると即退場
Java居酒屋
K&R C居酒屋
うーむ。K&R居酒屋は、開店しても閉店まで客一人とかだから誰もやらんな
となると、客が多くきそうな、旬なおっPython居酒屋が一押しか。
Ruby居酒屋 Rubyディすると即退場
Java居酒屋
K&R C居酒屋
うーむ。K&R居酒屋は、開店しても閉店まで客一人とかだから誰もやらんな
となると、客が多くきそうな、旬なおっPython居酒屋が一押しか。
295デフォルトの名無しさん
2020/06/22(月) 15:55:14.35ID:mmpBZ73b cobol居酒屋ないのか
296デフォルトの名無しさん
2020/06/22(月) 17:35:45.94ID:5VJoOXgM おっパブ パイソン学園。
297デフォルトの名無しさん
2020/07/04(土) 12:56:47.56ID:3Z3LdE0t Java居酒屋は最初の一杯無料っぽい
298デフォルトの名無しさん
2020/07/26(日) 17:33:08.78ID:r0UUx6Fs そりゃクラスライブラリ使うだけならいいけど
自分で作るとなると本命の処理以外の
無駄なモノあれこれ書かされるだけだからなw
自分で作るとなると本命の処理以外の
無駄なモノあれこれ書かされるだけだからなw
299デフォルトの名無しさん
2021/06/06(日) 16:36:17.54ID:XQfgI5eT >>293
BaslerのMVカメラ使う時のライブラリがPypylonて名前だったのを脈絡なく思い出した
BaslerのMVカメラ使う時のライブラリがPypylonて名前だったのを脈絡なく思い出した
300デフォルトの名無しさん
2021/07/19(月) 21:30:25.28ID:Yaij3Qmg 酷い作りのクラスだと引数ではなくメンバ変数に値をセットしてメソッド呼び出しとかあるからな。
わかるかボケ
わかるかボケ
301デフォルトの名無しさん
2021/07/19(月) 23:13:13.39ID:7DxAXQZB 「週休3日・下限年収1000万」採用ツイートが話題に! “日本のエンジニア安く買い叩かれ過ぎ問題”に一石を投じた起業家の願い
https://type.jp/et/feature/11257
ネクスウェイ、週休4日制・1日3時間勤務選択できる勤務体系を導入
https://news.mynavi.jp/article/20191217-940849/
週休4日OK、介護などと両立も SMBC日興が導入へ
https://www.asahi.com/articles/ASMDJ4HD3MDJULFA01K.html
ルネサス、週休3日制導入へ 連休明けから5000人対象
https://www.nikkei.com/article/DGXMZO58462290U0A420C2TJ2000/
土日と「水曜」は休日! ベンチャー企業が「週休3日制」を導入してよかったコト
https://www.j-cast.com/2019/07/21363088.html?p=all
2020年4月より「週休3日制」を導入。テックカンパニー化に向け、好循環を生み出すエンジニアリング組織へ
https://prtimes.jp/main/html/rd/p/000000096.000016431.html
「週休3日」でバズった、無人コンビニ「600」はどんな会社か
https://media.moneyforward.com/articles/3394
週休3日制を導入した企業が学んだ7つの教訓とは?
https://gigazine.net/news/20200712-7-lessons-four-day-workweek/
「給料が倍になるよりうれしい」経営が導入に踏み切った、エンジニアの週休3日制とは
https://www.excite.co.jp/news/article/ds_journal_dsjournal19991/
週休3日制を採用している企業一覧
https://www.k-society.com/recruit/list_of_companies_allow_a-four-day-workweek/
https://type.jp/et/feature/11257
ネクスウェイ、週休4日制・1日3時間勤務選択できる勤務体系を導入
https://news.mynavi.jp/article/20191217-940849/
週休4日OK、介護などと両立も SMBC日興が導入へ
https://www.asahi.com/articles/ASMDJ4HD3MDJULFA01K.html
ルネサス、週休3日制導入へ 連休明けから5000人対象
https://www.nikkei.com/article/DGXMZO58462290U0A420C2TJ2000/
土日と「水曜」は休日! ベンチャー企業が「週休3日制」を導入してよかったコト
https://www.j-cast.com/2019/07/21363088.html?p=all
2020年4月より「週休3日制」を導入。テックカンパニー化に向け、好循環を生み出すエンジニアリング組織へ
https://prtimes.jp/main/html/rd/p/000000096.000016431.html
「週休3日」でバズった、無人コンビニ「600」はどんな会社か
https://media.moneyforward.com/articles/3394
週休3日制を導入した企業が学んだ7つの教訓とは?
https://gigazine.net/news/20200712-7-lessons-four-day-workweek/
「給料が倍になるよりうれしい」経営が導入に踏み切った、エンジニアの週休3日制とは
https://www.excite.co.jp/news/article/ds_journal_dsjournal19991/
週休3日制を採用している企業一覧
https://www.k-society.com/recruit/list_of_companies_allow_a-four-day-workweek/
302デフォルトの名無しさん
2021/07/19(月) 23:27:28.02ID:O+CllEm4 OOPが嫌なら使わなければいい
彼はそれを実践した
それだけのこと
彼はそれを実践した
それだけのこと
303デフォルトの名無しさん
2021/07/20(火) 04:37:58.44ID:pyjXm/pu もう終わってしまったRubyにしがみついてるような連中が叩いていただけ
304デフォルトの名無しさん
2021/07/20(火) 06:08:43.60ID:9FCE6Fta SE WORLD システムエンジニアの世界 IT技術
http://wonderfulsky.web.fc2.com/index.html
「実はオブジェクト指向ってしっくりこないんです」とその時代 | SE WORLD ブログ版
https://ameblo.jp/kenchaz/entry-12599678479.html
「実はオブジェクト指向ってしっくりこないんです」から10年 | SE WORLD ブログ版
https://ameblo.jp/kenchaz/entry-12599341144.html
http://wonderfulsky.web.fc2.com/index.html
「実はオブジェクト指向ってしっくりこないんです」とその時代 | SE WORLD ブログ版
https://ameblo.jp/kenchaz/entry-12599678479.html
「実はオブジェクト指向ってしっくりこないんです」から10年 | SE WORLD ブログ版
https://ameblo.jp/kenchaz/entry-12599341144.html
305デフォルトの名無しさん
2021/07/20(火) 08:38:10.17ID:Oy48Jhl6 >>304
言ってることはまとも、叩いてた人の方がヤバい
言ってることはまとも、叩いてた人の方がヤバい
306デフォルトの名無しさん
2021/07/20(火) 09:14:26.24ID:2ecX9oPq >>300
OpenGLですね判ります
OpenGLですね判ります
307デフォルトの名無しさん
2021/07/20(火) 09:15:14.00ID:2ecX9oPq308デフォルトの名無しさん
2021/07/27(火) 21:47:43.34ID:LjFMyt/8 0749−43−7194
そうかに指示出されて非通知かけてくんな死ね
そうかに指示出されて非通知かけてくんな死ね
309デフォルトの名無しさん
2021/08/06(金) 15:17:12.55ID:ejJCz0w7310デフォルトの名無しさん
2021/08/06(金) 15:29:34.57ID:NNYkMP36 文章よく読んだが良い
311デフォルトの名無しさん
2021/08/07(土) 00:13:47.52ID:rXkekRAR 「staticおじさん」が本当に欲しかったもの
private
private
312デフォルトの名無しさん
2021/08/07(土) 00:46:28.56ID:tnPFBmrK いいや?
313デフォルトの名無しさん
2021/08/07(土) 15:29:34.57ID:zzL21uSy むしろstaticおじさんの原文だとクラスのメンバ変数とメソッドをpublic staticを推奨してるのだが。
314デフォルトの名無しさん
2021/08/07(土) 17:30:06.10ID:nvw/+Fhk ASP.NETのライブラリ使ってれば事足りる仕事しかしてなければ
staticだけで良いと思うだろうしそんな人にstaticだからダメだというのは
野暮だと思うけどなあ
staticだけで良いと思うだろうしそんな人にstaticだからダメだというのは
野暮だと思うけどなあ
315デフォルトの名無しさん
2021/08/08(日) 11:34:22.24ID:+ND78RnS public staticにして、クラス利用者がクラス変数呼びまくってるんだぜ?
カプセル化されてないクラスメンバのstatic変数とか、グローバル変数宣言した構造体となんの違いがあるんだ...。
カプセル化されてないクラスメンバのstatic変数とか、グローバル変数宣言した構造体となんの違いがあるんだ...。
316デフォルトの名無しさん
2021/08/08(日) 13:48:08.90ID:9M/UErff そうなの? staticおじさんのソースコードみたことあるの?
317デフォルトの名無しさん
2021/08/08(日) 13:52:35.46ID:UvnbNG8C singletonクラスなら普通
318デフォルトの名無しさん
2021/08/08(日) 15:23:23.77ID:+ND78RnS staticおじさんの炎上元ネタ記事
https://el.jibun.atmarkit.co.jp/minagawa/2010/04/post-ebc4.html
>「メンバー関数をstatic宣言すればインスタンス宣言をしなくてもいい」ということ知ってからは、メンバー関数を従来のファンクションのように使っている。共有変数も、pubulic static宣言していまう。したがってプロパティなんて作らない。
って書いてあるゾ
https://el.jibun.atmarkit.co.jp/minagawa/2010/04/post-ebc4.html
>「メンバー関数をstatic宣言すればインスタンス宣言をしなくてもいい」ということ知ってからは、メンバー関数を従来のファンクションのように使っている。共有変数も、pubulic static宣言していまう。したがってプロパティなんて作らない。
って書いてあるゾ
319デフォルトの名無しさん
2021/08/08(日) 16:09:39.05ID:9M/UErff >>318
コメントで
> ですから必然的にstatic public で定義された変数はサーバー名とかデータベース名とか初期化パラメータとしてしか意味がないものになります。
とも言ってるからreadonlyのものに限られるんじゃないかな
コメントで
> ですから必然的にstatic public で定義された変数はサーバー名とかデータベース名とか初期化パラメータとしてしか意味がないものになります。
とも言ってるからreadonlyのものに限られるんじゃないかな
320デフォルトの名無しさん
2021/08/08(日) 18:19:40.45ID:ZzxWVxwD >>319
本文にもそれ書けよwってstaticおじさんに言いたいが...それはそれでまずいな。
プログラミングするのなら、必ず「状態」をどこかで持たないとだが、
本来のやり方
1.クラス(インスタンス)に属性を持たせる
メンバ変数をstaticにすることで、上記手段で状態を持つことをstaticおじさんは否定してる。そうなると...
他のやり方
2. グローバル変数
3. ユーザーに定義させる
4.クラス(staticメンバ)に状態を持たせる
くらいしか、状態を持つ手段がなくなるけど、そこから4.のやり方もreadonlyにすることで否定したら、2 or 3しか関数に状態を持たせる手段が無くなる。
初期化パラメータしか意味がないものをstaticにすると言うのなら、初期化パラメータ以外の意味を持つ状態変数はどう定義するんだよって感じだな。
本文にもそれ書けよwってstaticおじさんに言いたいが...それはそれでまずいな。
プログラミングするのなら、必ず「状態」をどこかで持たないとだが、
本来のやり方
1.クラス(インスタンス)に属性を持たせる
メンバ変数をstaticにすることで、上記手段で状態を持つことをstaticおじさんは否定してる。そうなると...
他のやり方
2. グローバル変数
3. ユーザーに定義させる
4.クラス(staticメンバ)に状態を持たせる
くらいしか、状態を持つ手段がなくなるけど、そこから4.のやり方もreadonlyにすることで否定したら、2 or 3しか関数に状態を持たせる手段が無くなる。
初期化パラメータしか意味がないものをstaticにすると言うのなら、初期化パラメータ以外の意味を持つ状態変数はどう定義するんだよって感じだな。
321デフォルトの名無しさん
2021/08/08(日) 18:42:54.75ID:9M/UErff そうなることがないんだと思うよ
Webアプリの処理をすべてコントローラに書けばローカル変数だけで事足りるわけだし
.NETのライブラリ使うだけで生きてきた人なんだよ
Webアプリの処理をすべてコントローラに書けばローカル変数だけで事足りるわけだし
.NETのライブラリ使うだけで生きてきた人なんだよ
322デフォルトの名無しさん
2021/08/08(日) 18:46:00.61ID:9M/UErff 引数や戻り値、ローカル変数で事足りるものをインスタンス変数にして
状態依存作りまくりの地獄オブジェクト指向を見てきた僕からすると
staticおじさんの方がよほど健全
状態依存作りまくりの地獄オブジェクト指向を見てきた僕からすると
staticおじさんの方がよほど健全
323デフォルトの名無しさん
2021/08/08(日) 19:02:54.91ID:+ND78RnS >>322
でも、.NET FrameworkやASP.NET自体はオブジェクト指向で作られてるよね?
そして、その.NETには状態を持ってるよね?
なんで自作のクラスはオブジェクト指向開発しては駄目で、ライブラリは許されるの?
そもそも貴方が嫌がってるコードって本当にオブジェクト指向?
ドメインモデル貧血症なクラスや、神クラスの間違いじゃないの?
でも、.NET FrameworkやASP.NET自体はオブジェクト指向で作られてるよね?
そして、その.NETには状態を持ってるよね?
なんで自作のクラスはオブジェクト指向開発しては駄目で、ライブラリは許されるの?
そもそも貴方が嫌がってるコードって本当にオブジェクト指向?
ドメインモデル貧血症なクラスや、神クラスの間違いじゃないの?
324デフォルトの名無しさん
2021/08/08(日) 19:04:50.02ID:+ND78RnS325デフォルトの名無しさん
2021/08/08(日) 19:07:46.40ID:9M/UErff >>323
それはそうだろけど
staticおじさんは.NETのフレームワークの充実したライブラリがあれば
自分でオブジェクト作る必要ないって立場だと思うよ
ドメインモデル貧血症も神クラスもオブジェクト指向だよね
設計の良し悪しはあれどオブジェクト指向だよ
それはそうだろけど
staticおじさんは.NETのフレームワークの充実したライブラリがあれば
自分でオブジェクト作る必要ないって立場だと思うよ
ドメインモデル貧血症も神クラスもオブジェクト指向だよね
設計の良し悪しはあれどオブジェクト指向だよ
326デフォルトの名無しさん
2021/08/08(日) 19:09:00.59ID:9M/UErff >>324
カプセル化は属性と操作を一体化することなのでカプセル化は破られてないよ
別のメソッドを先に呼ばないと次のメソッドは正常に動作しないみたいな
作りになってたんだよね、そういう意味での状態依存
カプセル化は属性と操作を一体化することなのでカプセル化は破られてないよ
別のメソッドを先に呼ばないと次のメソッドは正常に動作しないみたいな
作りになってたんだよね、そういう意味での状態依存
327デフォルトの名無しさん
2021/08/08(日) 19:17:41.03ID:ZzxWVxwD https://en.m.wikipedia.org/wiki/Anemic_domain_model
ここ読め
The fundamental horror of this anti-pattern is that it's so contrary to the basic idea of object-oriented designing
ドメインモデル貧血症はオブジェクト指向の設計思想に反したアンチパターンだ。
そもそも、自分で勝手に考えた最悪のパターンとstaticおじさんの主張を比較する意味がわからない
オブジェクト指向 vs staticおじさん で比較したいのなら、最良のオブジェクト指向 vs 最良のstaticおじさん(みながわけんじ氏)の主張に基づくコードで比べるべき。
ここ読め
The fundamental horror of this anti-pattern is that it's so contrary to the basic idea of object-oriented designing
ドメインモデル貧血症はオブジェクト指向の設計思想に反したアンチパターンだ。
そもそも、自分で勝手に考えた最悪のパターンとstaticおじさんの主張を比較する意味がわからない
オブジェクト指向 vs staticおじさん で比較したいのなら、最良のオブジェクト指向 vs 最良のstaticおじさん(みながわけんじ氏)の主張に基づくコードで比べるべき。
328デフォルトの名無しさん
2021/08/08(日) 19:18:17.69ID:9M/UErff 引数で渡せばいい値をインスタンス変数にセットしてメソッド呼んで戻り値として返せば良い値を
インスタンス変数にセットしてたりしたなあ
オブジェクト指向の入門書は僕も色々読んだけど、オブジェクト指向のメソッドは必ずインスタンス変数を操作しないと
いけないと書いてあるのもあったし、とにかくなんでもかんでもオブジェクトにするのが成功の秘訣だと
書いてあるのもあった
本を読む素直で意識の高いアホほど地獄オブジェクト指向に陥る印象だわ
ここの人たちは性格がひねくれてるから問題ないだろうけどさ
インスタンス変数にセットしてたりしたなあ
オブジェクト指向の入門書は僕も色々読んだけど、オブジェクト指向のメソッドは必ずインスタンス変数を操作しないと
いけないと書いてあるのもあったし、とにかくなんでもかんでもオブジェクトにするのが成功の秘訣だと
書いてあるのもあった
本を読む素直で意識の高いアホほど地獄オブジェクト指向に陥る印象だわ
ここの人たちは性格がひねくれてるから問題ないだろうけどさ
329デフォルトの名無しさん
2021/08/08(日) 19:21:38.54ID:9M/UErff >>327
僕の経験的にはドメインモデル貧血症が悪いとは思えない
君は誰かがそう言ってるからそうなんだと思ってるだけでドメインモデル貧血症で困ったこと経験なんてないっしょ
staticおじさんの文脈ではオブジェクト作る必要がない状況なんだからオブジェクト指向との
比較はやるまでもないことだと思うよ
僕の経験的にはドメインモデル貧血症が悪いとは思えない
君は誰かがそう言ってるからそうなんだと思ってるだけでドメインモデル貧血症で困ったこと経験なんてないっしょ
staticおじさんの文脈ではオブジェクト作る必要がない状況なんだからオブジェクト指向との
比較はやるまでもないことだと思うよ
330デフォルトの名無しさん
2021/08/08(日) 19:23:35.19ID:+ND78RnS >>328
> 引数で渡せばいい値をインスタンス変数にセットしてメソッド呼んで戻り値として返せば良い値を
> インスタンス変数にセットしてたりしたなあ
それ、完全にドメインモデル貧血症だゾ
それをオブジェクト指向と見なすこと自体変だし、オブジェクト指向と見なすにしても、なぜ、オブジェクト指向のやっては駄目なパターンをやってオブジェクト指向を批判するのかわからないゾ
> 引数で渡せばいい値をインスタンス変数にセットしてメソッド呼んで戻り値として返せば良い値を
> インスタンス変数にセットしてたりしたなあ
それ、完全にドメインモデル貧血症だゾ
それをオブジェクト指向と見なすこと自体変だし、オブジェクト指向と見なすにしても、なぜ、オブジェクト指向のやっては駄目なパターンをやってオブジェクト指向を批判するのかわからないゾ
331デフォルトの名無しさん
2021/08/08(日) 19:28:47.64ID:9M/UErff >>330
そうなの? 僕が知ってるドメインモデル貧血症は
属性と操作が一体化してないものだけど
> 引数で渡せばいい値をインスタンス変数にセットしてメソッド呼んで戻り値として返せば良い値を
> インスタンス変数にセットしてたりしたなあ
これはそれとは違うから、ドメインモデル貧血症ではないと僕は思ってる
いうなれば構造化プログラミング未経験症ってところかと
ダメな設計も簡単にできるダメなオブジェクトも簡単に作れる
これがオブジェクト指向の功罪だよ
そうなの? 僕が知ってるドメインモデル貧血症は
属性と操作が一体化してないものだけど
> 引数で渡せばいい値をインスタンス変数にセットしてメソッド呼んで戻り値として返せば良い値を
> インスタンス変数にセットしてたりしたなあ
これはそれとは違うから、ドメインモデル貧血症ではないと僕は思ってる
いうなれば構造化プログラミング未経験症ってところかと
ダメな設計も簡単にできるダメなオブジェクトも簡単に作れる
これがオブジェクト指向の功罪だよ
332デフォルトの名無しさん
2021/08/08(日) 19:33:47.70ID:ZzxWVxwD333デフォルトの名無しさん
2021/08/08(日) 19:34:19.56ID:9M/UErff 例がないとわからんねちょっと待って
334デフォルトの名無しさん
2021/08/08(日) 19:36:06.82ID:9M/UErff335デフォルトの名無しさん
2021/08/08(日) 19:37:13.14ID:9M/UErff 構造化プログラミング未経験症はこれ
class A {
int value;
int result;
String msg;
void execute() {
phase1();
phase2();
phase3();
return msg;
}
void phase1() {
value = 1;
}
void phase2() {
result = value * 2;
}
void phase3() {
msg = "result = " + result;
}
}
class A {
int value;
int result;
String msg;
void execute() {
phase1();
phase2();
phase3();
return msg;
}
void phase1() {
value = 1;
}
void phase2() {
result = value * 2;
}
void phase3() {
msg = "result = " + result;
}
}
336デフォルトの名無しさん
2021/08/08(日) 19:41:10.89ID:ZzxWVxwD DTOはO/Rマッパー等を使う時に利用するデザインパターンだが、ドメインモデル貧血症はアンチパターン。
まぁ、さっき示した具体的なコードがDTOと言えばそうなんだけど...用途の間違えたDTO。
まぁ、さっき示した具体的なコードがDTOと言えばそうなんだけど...用途の間違えたDTO。
337デフォルトの名無しさん
2021/08/08(日) 19:42:27.12ID:9M/UErff DTOをモデルという名前で呼ぶからドメインモデルとごっちゃになるのかもわからんね
DTOはDTO
ドメインモデルはDTOとは違うよ
ドメインモデル貧血症はこんなところかな
class Calc {
int calc(Person p) {
return p.Sarary * 2;
}
}
DTOはDTO
ドメインモデルはDTOとは違うよ
ドメインモデル貧血症はこんなところかな
class Calc {
int calc(Person p) {
return p.Sarary * 2;
}
}
338デフォルトの名無しさん
2021/08/08(日) 19:47:56.60ID:9M/UErff 君は具体的にどういう経験をしてドメインモデル貧血症がよくないと思ったのか教えてくれる?
僕はないんだよね、Calcというモデルで計算がしやすくなることもあるし
ドメインモデル貧血症はただのレッテル貼りにしか思えない
僕はないんだよね、Calcというモデルで計算がしやすくなることもあるし
ドメインモデル貧血症はただのレッテル貼りにしか思えない
339デフォルトの名無しさん
2021/08/08(日) 19:52:43.20ID:ZzxWVxwD >>337
ドメインモデルとデータが違うのはその通り。
悪かった。真面目にコードを書く。
class Box {
public int Height { get; set; }
public int Width { get; set; }
}
これがドメインモデル貧血症
class Box {
public int Height { get; }
public int Width { get; }
public Box(int height, int width) {
if (height <= 0) {
throw new ArgumentOutOfRangeException(nameof(height));
}
if (width <= 0) {
throw new ArgumentOutOfRangeException(nameof(width));
}
Height = height;
Width = width;
} public int Area() {
return Height * Width;
}
}
これがオブジェクト指向
スマホのお陰で改行が狂ってるかもだが。
ドメインモデルとデータが違うのはその通り。
悪かった。真面目にコードを書く。
class Box {
public int Height { get; set; }
public int Width { get; set; }
}
これがドメインモデル貧血症
class Box {
public int Height { get; }
public int Width { get; }
public Box(int height, int width) {
if (height <= 0) {
throw new ArgumentOutOfRangeException(nameof(height));
}
if (width <= 0) {
throw new ArgumentOutOfRangeException(nameof(width));
}
Height = height;
Width = width;
} public int Area() {
return Height * Width;
}
}
これがオブジェクト指向
スマホのお陰で改行が狂ってるかもだが。
340デフォルトの名無しさん
2021/08/08(日) 20:00:06.55ID:ZzxWVxwD341デフォルトの名無しさん
2021/08/08(日) 20:00:12.30ID:9M/UErff どちらもオブジェクト指向だよね
BoxにAreaメソッドがあるか否かの違いしかないので
あった方が便利なら追加すれば良いと思うけど
やはりドメインモデル貧血症がダメだとは思えない
BoxにAreaメソッドがあるか否かの違いしかないので
あった方が便利なら追加すれば良いと思うけど
やはりドメインモデル貧血症がダメだとは思えない
342デフォルトの名無しさん
2021/08/08(日) 20:03:30.34ID:ZzxWVxwD >>340
次は2個目のクラスだ。
まぁ、できる事は少ないが、これはクラスを利用する意義はある。
値をセットするだけではなく、Box(箱)クラスの名に恥じない機能、面積取得機能が備わってるから。
つまり、これだけでBoxクラスを使う価値が出てくるわけだ。
...という話なんだ。うん、それだけ。
次は2個目のクラスだ。
まぁ、できる事は少ないが、これはクラスを利用する意義はある。
値をセットするだけではなく、Box(箱)クラスの名に恥じない機能、面積取得機能が備わってるから。
つまり、これだけでBoxクラスを使う価値が出てくるわけだ。
...という話なんだ。うん、それだけ。
343デフォルトの名無しさん
2021/08/08(日) 20:03:44.77ID:9M/UErff >>340
Boxクラスはデータを表してるってことでしょ
なら何もしなくて正解だし何かしてくれる方が扱いづらい
Boxクラスの計算するクラスを作ればいい
どういう計算が必要かはドメインによって変わってくるでしょ
そうして作られたクラスが本当のドメインモデルだよ
Boxクラスはデータを表してるってことでしょ
なら何もしなくて正解だし何かしてくれる方が扱いづらい
Boxクラスの計算するクラスを作ればいい
どういう計算が必要かはドメインによって変わってくるでしょ
そうして作られたクラスが本当のドメインモデルだよ
344デフォルトの名無しさん
2021/08/08(日) 20:06:41.61ID:ZzxWVxwD >>341
じゃ聞くけど、貴方は前者のBoxクラス渡されても困らないの?
何もできないよ?
俺!Boxクラスのロジック実装します!あなたはBoxを使う処理を書いて!と分業したとき、俺があなたに前者Boxクラスを渡して、面積計算や座標変換(回転等)計算などの処理はそっちでやってください!とか言われたらどうです?
じゃ聞くけど、貴方は前者のBoxクラス渡されても困らないの?
何もできないよ?
俺!Boxクラスのロジック実装します!あなたはBoxを使う処理を書いて!と分業したとき、俺があなたに前者Boxクラスを渡して、面積計算や座標変換(回転等)計算などの処理はそっちでやってください!とか言われたらどうです?
345デフォルトの名無しさん
2021/08/08(日) 20:07:10.24ID:9M/UErff >>342
面積が必要なかったら無駄なクラスだしなあ
どうして面積を得るのかがわからないと価値があるかどうかはわからないよ
面積を使って何をするのっていう情報がないからドメインモデルではなくて
ただのデータだと思った
面積が必要なかったら無駄なクラスだしなあ
どうして面積を得るのかがわからないと価値があるかどうかはわからないよ
面積を使って何をするのっていう情報がないからドメインモデルではなくて
ただのデータだと思った
346デフォルトの名無しさん
2021/08/08(日) 20:09:16.92ID:9M/UErff >>344
すごく困るBoxクラスが欲しいと僕は言ってるわけじゃないから
そういうの渡されてもすごく困ると思う
え、なんで? って思う
> 俺!Boxクラスのロジック実装します!あなたはBoxを使う処理を書いて!と分業したとき、
> 俺があなたに前者Boxクラスを渡して、面積計算や座標変換(回転等)計算などの処理は
> そっちでやってください!とか言われたらどうです?
頭おかしいのかなって思う
すごく困るBoxクラスが欲しいと僕は言ってるわけじゃないから
そういうの渡されてもすごく困ると思う
え、なんで? って思う
> 俺!Boxクラスのロジック実装します!あなたはBoxを使う処理を書いて!と分業したとき、
> 俺があなたに前者Boxクラスを渡して、面積計算や座標変換(回転等)計算などの処理は
> そっちでやってください!とか言われたらどうです?
頭おかしいのかなって思う
347デフォルトの名無しさん
2021/08/08(日) 20:11:49.06ID:ZzxWVxwD >>344
あと、リアルプログラミングってまじで分業するからな。
俺がBoxクラスを使わせるのは貴方だけではない。他の開発者も使う。
そんな最中、getter.setterしかなかったら、皆、どんな反応すると思う?
こういうライブラリレベルで使い勝手の良いコードを隅々まで書くのが俺の開発現場。
あと、リアルプログラミングってまじで分業するからな。
俺がBoxクラスを使わせるのは貴方だけではない。他の開発者も使う。
そんな最中、getter.setterしかなかったら、皆、どんな反応すると思う?
こういうライブラリレベルで使い勝手の良いコードを隅々まで書くのが俺の開発現場。
348デフォルトの名無しさん
2021/08/08(日) 20:12:15.37ID:9M/UErff あ、でも面積計算クラスや座標変換クラスでまとめるのは場合によってはありかもね
僕はそういうドメインモデル貧血症は良いと思ってる立場だから、それはありですね
僕はそういうドメインモデル貧血症は良いと思ってる立場だから、それはありですね
349デフォルトの名無しさん
2021/08/08(日) 20:12:43.82ID:ZzxWVxwD >>346
へぇ。じゃ、前者のテストコード書いてよ。
へぇ。じゃ、前者のテストコード書いてよ。
350デフォルトの名無しさん
2021/08/08(日) 20:14:56.40ID:9M/UErff >>347
そうなの? Boxクラスが出てくるあたりゲームプログラマの人?
僕はBtoBの業務アプリが主だけど、分業するときってクラス単位じゃなくて
アクターとか機能とか大きな単位で分けるから、何言ってるのかよくわからない
そうなの? Boxクラスが出てくるあたりゲームプログラマの人?
僕はBtoBの業務アプリが主だけど、分業するときってクラス単位じゃなくて
アクターとか機能とか大きな単位で分けるから、何言ってるのかよくわからない
351デフォルトの名無しさん
2021/08/08(日) 20:29:21.22ID:ZzxWVxwD >>348
> 僕はそういうドメインモデル貧血症は良いと思ってる立場だから、それはありですね
分かってくれてありがとう。
でも、年のために言うと、ドメインモデル貧血症は前者の例ね。
まぁ、言葉の定義より、どんなコードの書き方が役に立つかの方が重要なんだけど...どうしても、staticおじさん論争になると言葉の定義は外せないのが辛いところ...。
> 僕はそういうドメインモデル貧血症は良いと思ってる立場だから、それはありですね
分かってくれてありがとう。
でも、年のために言うと、ドメインモデル貧血症は前者の例ね。
まぁ、言葉の定義より、どんなコードの書き方が役に立つかの方が重要なんだけど...どうしても、staticおじさん論争になると言葉の定義は外せないのが辛いところ...。
352デフォルトの名無しさん
2021/08/08(日) 20:38:17.38ID:ZzxWVxwD あと、ごめんなさい。>>349は無視してください。
353デフォルトの名無しさん
2021/08/08(日) 20:43:52.37ID:I3k2xDDQ 世に出ているservlet, jsp, spring とかの本では
APIとしてはオブジェクト指向が登場するけど
プログラムを書く側はオブジェクト指向を意識して書いてないぞ
APIとしてはオブジェクト指向が登場するけど
プログラムを書く側はオブジェクト指向を意識して書いてないぞ
354デフォルトの名無しさん
2021/08/08(日) 20:52:42.99ID:9M/UErff >>351
なんか誤解してるような気がするんだけど
Boxに面積の計算を持たせない前者の例で、面積の計算を面積計算クラスにまとめると
ドメインモデル貧血症になるけどそれはありだよねっていうのが僕が言いたかったことだよ
計算は僕が携わっているドメインだと結構変わるのよ、顧客満足のためだったり
法律のためだったり世の中の情勢に配慮したりとかで、その場合は個々のデータに
計算をもたせるよりも計算だけを行うようモデリングしたほうが都合がよかったりする
ドメインモデル貧血症にはなるけどシステムとしてはそちらの方が適切だからそうすることもある
君は分業することを例にドメインモデル貧血症がダメだといったけど、それは
コミュニケーションの問題だと思うんだよね、自分は面積の計算を実装してもらいたくて
相手は面積の計算を実装しなくて良いと思ってたというコミュニケーションミスだと思うんだよね
そういうコミュニケーションで解決するべき問題をオブジェクト指向の問題にするべきではないと思うよ
なんか誤解してるような気がするんだけど
Boxに面積の計算を持たせない前者の例で、面積の計算を面積計算クラスにまとめると
ドメインモデル貧血症になるけどそれはありだよねっていうのが僕が言いたかったことだよ
計算は僕が携わっているドメインだと結構変わるのよ、顧客満足のためだったり
法律のためだったり世の中の情勢に配慮したりとかで、その場合は個々のデータに
計算をもたせるよりも計算だけを行うようモデリングしたほうが都合がよかったりする
ドメインモデル貧血症にはなるけどシステムとしてはそちらの方が適切だからそうすることもある
君は分業することを例にドメインモデル貧血症がダメだといったけど、それは
コミュニケーションの問題だと思うんだよね、自分は面積の計算を実装してもらいたくて
相手は面積の計算を実装しなくて良いと思ってたというコミュニケーションミスだと思うんだよね
そういうコミュニケーションで解決するべき問題をオブジェクト指向の問題にするべきではないと思うよ
355デフォルトの名無しさん
2021/08/08(日) 21:03:19.91ID:hJWAYL03 ドメインモデル貧血症ってアンチパターンでしょ
356デフォルトの名無しさん
2021/08/08(日) 21:07:42.89ID:hJWAYL03 初めて聞いた言葉だから自信ないけど、
オブジェクト指向設計のアンチパターン
貧血ドメインモデル(英語版)ビジネスロジックが欠けたドメインモデル。オブジェクトは属性と振る舞いを持たなければならないので、オブジェクト指向プログラミングではない
ってwikiに書いてあった
(よく意味を理解していない)
オブジェクト指向設計のアンチパターン
貧血ドメインモデル(英語版)ビジネスロジックが欠けたドメインモデル。オブジェクトは属性と振る舞いを持たなければならないので、オブジェクト指向プログラミングではない
ってwikiに書いてあった
(よく意味を理解していない)
357デフォルトの名無しさん
2021/08/08(日) 21:10:07.64ID:9M/UErff >>353
ドメインモデルが必要なほど複雑な要件は入門書では扱われないからね・・・
現実は要件がころころ変わることに対応しないといけなかったりで
オブジェクト指向をきちんと理解して実践してると助かることはままある
リクエストごとに処理をごりごり書いたトランザクションスクリプトで十分なことは多いし
フレームワークが提供してるライブラリで処理を完結できるほどフレームワークの機能が
充実してきてることもあるんじゃないかな
ドメインモデルが必要なほど複雑な要件は入門書では扱われないからね・・・
現実は要件がころころ変わることに対応しないといけなかったりで
オブジェクト指向をきちんと理解して実践してると助かることはままある
リクエストごとに処理をごりごり書いたトランザクションスクリプトで十分なことは多いし
フレームワークが提供してるライブラリで処理を完結できるほどフレームワークの機能が
充実してきてることもあるんじゃないかな
358デフォルトの名無しさん
2021/08/08(日) 21:14:34.79ID:9M/UErff >>355
ドメインモデル貧血症はマーチン・ファウラーという猥褻顔のおっさんがアンチパターンと言ってて
そのおっさんが言うんならそうなんだろと思考停止で鵜呑みにしてる人がほとんどで
実際にプログラム書いてみるとドメインモデル貧血症はそんなに悪くない
スリムドメインモデルと言い換えて風評被害をなくしたい、ご協力よろしくお願いします
ドメインモデル貧血症はマーチン・ファウラーという猥褻顔のおっさんがアンチパターンと言ってて
そのおっさんが言うんならそうなんだろと思考停止で鵜呑みにしてる人がほとんどで
実際にプログラム書いてみるとドメインモデル貧血症はそんなに悪くない
スリムドメインモデルと言い換えて風評被害をなくしたい、ご協力よろしくお願いします
359デフォルトの名無しさん
2021/08/08(日) 21:19:34.66ID:9M/UErff これまでの話をまとめると、staticおじさん良いよねってこと
360デフォルトの名無しさん
2021/08/08(日) 21:32:38.03ID:pp984S8L スレタイさん「なんでstaticおじさんは叩かれたの?」
361デフォルトの名無しさん
2021/08/08(日) 21:38:00.74ID:9M/UErff 叩いた人がアホだったんだと思う
とくにAC/DCって人はstaticおじさんが悪くなるように物事を解釈して
議論をダメにしてると思った
とくにAC/DCって人はstaticおじさんが悪くなるように物事を解釈して
議論をダメにしてると思った
362デフォルトの名無しさん
2021/08/08(日) 21:40:51.43ID:+ND78RnS >>359
> これまでの話をまとめると、staticおじさん良いよねってこと
嘘だゾ
さっき、ドメインモデル貧血症はオブジェクト指向ではないvsオブジェクト指向だ、で衝突しているのを見てたゾ
どこにも、staticおじさんを褒めてる要素がなかったゾ
しかも、オブジェクト指向でも何でもないプログラムをオブジェクト指向のアンチパターンとして紹介して論破されてるところ見たゾ
> これまでの話をまとめると、staticおじさん良いよねってこと
嘘だゾ
さっき、ドメインモデル貧血症はオブジェクト指向ではないvsオブジェクト指向だ、で衝突しているのを見てたゾ
どこにも、staticおじさんを褒めてる要素がなかったゾ
しかも、オブジェクト指向でも何でもないプログラムをオブジェクト指向のアンチパターンとして紹介して論破されてるところ見たゾ
363デフォルトの名無しさん
2021/08/08(日) 21:44:29.81ID:9M/UErff >>362
落ち着きなよ、全部君の気のせいだよ、はい論破
落ち着きなよ、全部君の気のせいだよ、はい論破
364デフォルトの名無しさん
2021/08/08(日) 21:47:48.86ID:+ND78RnS >>363
ひょ?
ひょ?
365デフォルトの名無しさん
2021/08/08(日) 21:56:01.48ID:pp984S8L366デフォルトの名無しさん
2021/08/08(日) 21:56:21.01ID:pp984S8L ではないか?
367デフォルトの名無しさん
2021/08/08(日) 22:21:42.85ID:9M/UErff 揚げ足取りばかりのコメントに東工大の圧力で対抗するのは適切だよ
368デフォルトの名無しさん
2021/08/08(日) 22:24:05.28ID:9M/UErff 東北大学で情報工学学んで東工大の大学院に入ったとしたらすごい経歴だな
369デフォルトの名無しさん
2021/08/08(日) 22:24:34.16ID:9M/UErff うらやましいただただうらやましい
370デフォルトの名無しさん
2021/08/09(月) 17:36:30.11ID:jzl3UTNH 東京工業大学の汚点になるから、こんなボケたジジイを持ち上げるのやめて欲しい。
371デフォルトの名無しさん
2021/08/09(月) 17:41:06.81ID:vbsnYimc staticおじさんはSIerに仕事発注する立場でありながら自分でシステム構築もしてるようだな
エンジニアの理想じゃん
エンジニアの理想じゃん
372デフォルトの名無しさん
2021/08/26(木) 23:21:57.42ID:Engbmk1d アラン・ケイがオブジェクト指向という言葉を作って
オブジェクト指向のプログラミング言語Smalltalkを作った
日本IBMはSmalltalkのスペシャリストを集めてSmalltalkを使って
オブジェクト指向のシステムを作ろうとしたけど失敗した
長野オリンピックや九州医大病院のシステムだ
結局それらはVBで作られた
最強の組織、最強の言語、最強のオブジェクト指向を使っても
できなかったことがVBならできた
このことから僕たちは学ばないといけないよね
オブジェクト指向のプログラミング言語Smalltalkを作った
日本IBMはSmalltalkのスペシャリストを集めてSmalltalkを使って
オブジェクト指向のシステムを作ろうとしたけど失敗した
長野オリンピックや九州医大病院のシステムだ
結局それらはVBで作られた
最強の組織、最強の言語、最強のオブジェクト指向を使っても
できなかったことがVBならできた
このことから僕たちは学ばないといけないよね
373デフォルトの名無しさん
2021/08/26(木) 23:23:09.43ID:Engbmk1d 過剰なオブジェクト指向は破綻を招くのじゃなかろうかと
374デフォルトの名無しさん
2021/08/27(金) 12:18:26.30ID:+wfLaYar375デフォルトの名無しさん
2021/08/27(金) 13:37:11.91ID:eJGjxOi5 staticおじさんもデザインパターン厨もどっちも嫌なんだよ〜ん
376デフォルトの名無しさん
2021/09/02(木) 20:23:52.17ID:tjtHyeAD 俺は全部日本語で書くおじさんだけど叩かれる?
DDDとかもう古いかな
DDDとかもう古いかな
377デフォルトの名無しさん
2021/09/02(木) 21:47:04.83ID:IZWicv0z 日本固有の業務用語は変数名をローマ字で書いちゃう
378デフォルトの名無しさん
2021/09/03(金) 07:24:47.29ID:FhIZBaS/ ローマ字じゃない
ガチで日本語の業務用語書く
ガチで日本語の業務用語書く
379デフォルトの名無しさん
2021/09/03(金) 07:27:46.76ID:FhIZBaS/ 小規模スマホアプリならstaticで良いよね
他のオブジェクトと協調なんてしないから状態の奪い合いなんて起こらない
他のオブジェクトと協調なんてしないから状態の奪い合いなんて起こらない
380デフォルトの名無しさん
2021/09/03(金) 08:35:21.37ID:6uQ/qiqA Enumを全角の日本語にすることはある
気は進まないが英語やローマ字だと可読性が低すぎてバグに繋がりそうなとき
気は進まないが英語やローマ字だと可読性が低すぎてバグに繋がりそうなとき
381デフォルトの名無しさん
2022/04/09(土) 07:24:05.51ID:BCdBtInS 言うほど悪い人じゃなかったよね(´・ω・`)
一理はあったし、かわいそう(´・ω・`)
一理はあったし、かわいそう(´・ω・`)
382デフォルトの名無しさん
2022/05/01(日) 09:16:15.43ID:nmGekSHA 一理とは
383デフォルトの名無しさん
2022/05/01(日) 13:16:06.40ID:aS2zfgOp ぱっとしない家系
384デフォルトの名無しさん
2023/06/08(木) 21:44:07.44ID:nNz5ov89 メソッドもメンバ変数もstaticにしてインスタンス化を不要にするが何故駄目なのかようやく分かったよ
ホラ吹きプログラマーに流されて擁護したことが恥ずかしくなってきた
ホラ吹きプログラマーに流されて擁護したことが恥ずかしくなってきた
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★2 [Hitzeschleier★]
- なぜリベラルは人気がないのか 斎藤幸平さんが指し示す未来への道筋:朝日新聞 ★3 [少考さん★]
- 三谷幸喜氏 温泉嫌いの理由を熱弁「知らない人の股間を素通りしたお湯なんですよ」「おじさんの肛門を通り過ぎたお湯が自分の前に」 [Ailuropoda melanoleuca★]
- 【伊原剛志】62歳俳優、夫婦別姓に「選択出来るならしたい人はする したくない人はしない 何が問題?」 [少考さん★]
- ベトナムのバイク「脱ガソリン」、シェア8割のホンダに打撃…政府が電動二輪普及を主導 [煮卵★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★13 [蚤の市★]
- 喜多川海夢(その着せ替え人形は恋をする)純白ドレスでプライズのフィギュア化キタ━━━━(゚∀゚)━━━━!! [506177327]
- M-1グランプリ審査員発表…松本無し石田無しくるま無し粗品無し高市無し [462275543]
- 【悲報】すまん何で日本ってこんなに反『中国』が増えたんだ?ネトウヨどころかそこらの一般人レベルでもゴロゴロいる [483447288]
- 【実況】博衣こよりのえちえちドラクエ1&4リメイク🧪★2
- あ、出ちゃう、イクッ😫💦🏡
- 『おぢアタック』で結婚した女性、大部分が『障がい者』だと判明wwwwww「年収300万円程度実家暮らしの境界知能系の女性が多い [483447288]
