このスレはクソコードとは何かを考えるスレです。
・親クラスが子クラスに依存する処理を持つコード
例...社員クラスを継承した正社員クラスと派遣社員クラスがあり、社員クラスが正社員クラスの知識を持つ状況
・staticにするべきではないモデルにまでstaticにする人
例...社員クラスのメソッドを全てstaticにしたり、社員クラスにシングルトンパターンに相応するものを適用する人
等、クソコードを見た時に「あっ、これクソコードだ」って認識する根拠を挙げていきましょう。
探検
クソコードとは何か
レス数が900を超えています。1000を超えると表示できなくなるよ。
2021/01/30(土) 17:33:05.78ID:BjNTZWUI
831デフォルトの名無しさん
2021/03/02(火) 16:18:47.07ID:sTNRmcJa >>829
そうやって複数クラスで使う前提じゃなくて
自身にしか提供しないくせにインターフェースにするクソコード見ても同じこと言えんの?
その例で言うと
Interface USBMemoryと
Implements USBMemoryImplementsと
Interface SDCardと
Implements SDCardImplementsの4つファイルが作られるんだよ
もちろんStorageクラスなんて作られないからな、覚悟しとけ?
そうやって複数クラスで使う前提じゃなくて
自身にしか提供しないくせにインターフェースにするクソコード見ても同じこと言えんの?
その例で言うと
Interface USBMemoryと
Implements USBMemoryImplementsと
Interface SDCardと
Implements SDCardImplementsの4つファイルが作られるんだよ
もちろんStorageクラスなんて作られないからな、覚悟しとけ?
832デフォルトの名無しさん
2021/03/02(火) 17:22:18.70ID:MXVQCo9F833デフォルトの名無しさん
2021/03/02(火) 17:45:25.68ID:MXVQCo9F 脱線したが、無意味にインタフェースと実装部を分けるクソコードは俺も見たことがある
俺も初心者時代はやらかした事はあったな
無駄にコードが増えるだけでメリットが無いというね
初心者時代は、>>831のコードを書けば
class XXXImplement
から
class XXXImplement2
に乗り換える時が楽だなんて思ってたけど、実際はXXXImplement2なんて作らずにXXXImplementを直接編集してた
変な突っ掛かり方をして悪かったな
俺も初心者時代はやらかした事はあったな
無駄にコードが増えるだけでメリットが無いというね
初心者時代は、>>831のコードを書けば
class XXXImplement
から
class XXXImplement2
に乗り換える時が楽だなんて思ってたけど、実際はXXXImplement2なんて作らずにXXXImplementを直接編集してた
変な突っ掛かり方をして悪かったな
834デフォルトの名無しさん
2021/03/02(火) 17:49:55.29ID:1QjqZlxS 仕様と実装をどこで切り離しておくかという設計選択の話なのでコードだけでは判断できない
>>831のようにインターフェースに対して実装が1種類しかなくてもそれが望ましい状況もあれば望ましくない状況もある
>>831のようにインターフェースに対して実装が1種類しかなくてもそれが望ましい状況もあれば望ましくない状況もある
835デフォルトの名無しさん
2021/03/02(火) 17:59:46.35ID:QgVhfuvD836デフォルトの名無しさん
2021/03/02(火) 18:06:26.23ID:RCz98UPT インターフェース作ってもいいけど同じファイルに押し込んで欲しい
こんなくだらない内容でファイル数が倍は勘弁してほしい
こんなくだらない内容でファイル数が倍は勘弁してほしい
837デフォルトの名無しさん
2021/03/02(火) 18:27:01.85ID:1QjqZlxS >>835
Storageの例と一緒だよ
共通した仕様を使いたいレイヤーと複数の実装を使いわけたいレイヤーがあって
それを分離することで結合度を下げときたい場合の選択肢の一つ
USBの例で言えばSDカードや他のストレージとは異なるUSB特有の仕様に依存したコードを書く必要がある場合に
実装が変更されても利用者側のプログラムを変更しなくてもいいようにしたかったり
複数の実装を実行時に切り替えて使えるようにしておきたい場合
面倒臭さと将来の柔軟性とのトレードオフ
切る場所が適切かどうかは要件次第なのでコードからは判断できない
Storageの例と一緒だよ
共通した仕様を使いたいレイヤーと複数の実装を使いわけたいレイヤーがあって
それを分離することで結合度を下げときたい場合の選択肢の一つ
USBの例で言えばSDカードや他のストレージとは異なるUSB特有の仕様に依存したコードを書く必要がある場合に
実装が変更されても利用者側のプログラムを変更しなくてもいいようにしたかったり
複数の実装を実行時に切り替えて使えるようにしておきたい場合
面倒臭さと将来の柔軟性とのトレードオフ
切る場所が適切かどうかは要件次第なのでコードからは判断できない
838デフォルトの名無しさん
2021/03/02(火) 18:28:28.29ID:k1c4vJst839デフォルトの名無しさん
2021/03/02(火) 18:29:36.21ID:k1c4vJst クラスは分けてなんぼ、理想を言えばメソッドごとにクラスを分けるべき
840デフォルトの名無しさん
2021/03/02(火) 18:36:50.14ID:Ut+tyB9O メソッドごとにクラスを分ける理由は?
841デフォルトの名無しさん
2021/03/02(火) 18:47:13.75ID:cXyQmkET 同じ階層のものがたくさんあると
全体を把握しにくくなるんじゃないかなあ
全体を把握しにくくなるんじゃないかなあ
842デフォルトの名無しさん
2021/03/02(火) 18:48:50.43ID:2RCjcGnL クラス毎にファイルを分ける理由は?
843デフォルトの名無しさん
2021/03/02(火) 18:48:57.53ID:qGFbOGXJ Java脳のレスはインターフェースなくてもオブジェクト指向できるっつう話でしょ
引数に関数をとることでインターフェースの代替にできる時もあるしね
引数に関数をとることでインターフェースの代替にできる時もあるしね
844デフォルトの名無しさん
2021/03/02(火) 18:59:10.26ID:Ut+tyB9O >>842
関連するものの単位が同じだからでは?
関連するものの単位が同じだからでは?
845デフォルトの名無しさん
2021/03/02(火) 19:35:50.44ID:stemNYci >>831
あの例だと
interface IStorageにread()などの必須メソッドを追加
class USBMemory implements IStorage
class SDCard implements IStorage
やろw
Storage抽象クラス又は親クラスで定義してoverrideでもいいけど
設計次第やな
あの例だと
interface IStorageにread()などの必須メソッドを追加
class USBMemory implements IStorage
class SDCard implements IStorage
やろw
Storage抽象クラス又は親クラスで定義してoverrideでもいいけど
設計次第やな
846デフォルトの名無しさん
2021/03/02(火) 19:55:38.87ID:sTNRmcJa >>845
違うんだよなぁw
Interface USBMemory
class USBMemoryImplements implements USBMemory
Interface SDCard
class SDCardImplements implements SDCard
こんなのが爆誕してるというかほぼ全クラスこんなので統一されてる絶望感分かる?
違うんだよなぁw
Interface USBMemory
class USBMemoryImplements implements USBMemory
Interface SDCard
class SDCardImplements implements SDCard
こんなのが爆誕してるというかほぼ全クラスこんなので統一されてる絶望感分かる?
847デフォルトの名無しさん
2021/03/02(火) 20:12:52.16ID:sTNRmcJa >>833
まあ仕様が悪いというより簡単に悪用される実態が問題なんだよね
そのパターンもあるあるやと思ってる
だけどもし仮に2に乗り換えたところで、何かあった時に戻れるようにって無印が残されて結局ファイル数は増える地獄なんだなぁw
まあ仕様が悪いというより簡単に悪用される実態が問題なんだよね
そのパターンもあるあるやと思ってる
だけどもし仮に2に乗り換えたところで、何かあった時に戻れるようにって無印が残されて結局ファイル数は増える地獄なんだなぁw
848デフォルトの名無しさん
2021/03/03(水) 07:45:39.12ID:jQr6IfK5 >>846
テストしやすくて最高じゃないですか
テストしやすくて最高じゃないですか
849デフォルトの名無しさん
2021/03/03(水) 10:51:02.42ID:xzgw1tFV ワクチン効かなくて人類オワタ
850デフォルトの名無しさん
2021/03/04(木) 00:08:07.08ID:FIbtDWBm 親クラスが子クラスに依存する処理を持つコード例
https://stackoverflow.com/a/29907649/
Eric Lippertの書いてるコードがクソなのか?
それともその認識がクソなのか?
https://stackoverflow.com/a/29907649/
Eric Lippertの書いてるコードがクソなのか?
それともその認識がクソなのか?
851デフォルトの名無しさん
2021/03/04(木) 09:40:02.79ID:s3zRsfeD ケース・バイ・ケース
852デフォルトの名無しさん
2021/03/04(木) 09:49:55.40ID:OjWW0m8I 普通にクソってことでいいんじゃね?
クソだけど処理が小さく、まともにするには
過剰気味な設計が必要になるならそのままにするけど
良いとは思わないけど必要十分
クソだけど処理が小さく、まともにするには
過剰気味な設計が必要になるならそのままにするけど
良いとは思わないけど必要十分
853デフォルトの名無しさん
2021/03/05(金) 11:07:38.15ID:zIBx0bjD854デフォルトの名無しさん
2021/03/05(金) 16:16:51.44ID:rOFa7Oz2855デフォルトの名無しさん
2021/03/05(金) 17:34:44.54ID:5bhxQzE4 >>854
クソプログラマー認定も含めて自分の見方がクソかもしれないと考えてないようなら
そいつ自身がクソプログラマーの可能性はそれなりに高いだろうね
ただコードとプログラマーにはクソかどうか判断する基準に決定的違いがある
その決定的違いが分かってないから君はクソプログラマーなんだよ
クソプログラマー認定も含めて自分の見方がクソかもしれないと考えてないようなら
そいつ自身がクソプログラマーの可能性はそれなりに高いだろうね
ただコードとプログラマーにはクソかどうか判断する基準に決定的違いがある
その決定的違いが分かってないから君はクソプログラマーなんだよ
856デフォルトの名無しさん
2021/03/05(金) 18:45:25.18ID:Gcj+sygJ > クソコードを見た時に「あっ、これクソコードだ」って認識する根拠を挙げていきましょう。
スレ主は短絡的にクソコード認定をしていないと思うけど
むしろ、なぜクソコードを見てクソコードだと感じたのか哲学するスレだろ
クソプログラマーの定義とかスレ違いだし、どうでもいいわ
スレ主は短絡的にクソコード認定をしていないと思うけど
むしろ、なぜクソコードを見てクソコードだと感じたのか哲学するスレだろ
クソプログラマーの定義とかスレ違いだし、どうでもいいわ
857デフォルトの名無しさん
2021/03/05(金) 20:45:43.09ID:72RBlbeS >>856
スレ主さんwちーすっ
スレ主さんwちーすっ
858デフォルトの名無しさん
2021/03/05(金) 23:14:44.63ID:6LAcg/yu859デフォルトの名無しさん
2021/03/06(土) 09:14:58.43ID:6IalgJ8T 根本的な原理が分かってない人が意外なぐらい多い
情報の多重化、DRY原則からの逸脱を誘発するものがとにかく駄目
突き詰めればダメなものは間接的でもそこにつながっているから被害を受けるのだと分かる
いろんなデザインパターンなんて結局は
いろんな状況でDRYを遵守する手練手管が99%だろう
重複実装も必要な時があるが
どんなものをどんな風に重複させるかで
状況はかなり異なるので短絡的な判断は禁物
1が言ってる一つ目の例は
もっと文脈をはっきりさせないと
何がクソなのか断定出来ないし
これで伝わると思ってるなら難アリ
情報の多重化、DRY原則からの逸脱を誘発するものがとにかく駄目
突き詰めればダメなものは間接的でもそこにつながっているから被害を受けるのだと分かる
いろんなデザインパターンなんて結局は
いろんな状況でDRYを遵守する手練手管が99%だろう
重複実装も必要な時があるが
どんなものをどんな風に重複させるかで
状況はかなり異なるので短絡的な判断は禁物
1が言ってる一つ目の例は
もっと文脈をはっきりさせないと
何がクソなのか断定出来ないし
これで伝わると思ってるなら難アリ
860デフォルトの名無しさん
2021/03/06(土) 11:40:20.85ID:3bUl0e7x そもそもデザインパターンみたいなのは、こうすれば良いのでは?みたいな物だし
正直そういう所から入った層よりは、ある程度組めるようになってから見て納得出来た方が良いかと
つまりは最初に読むものでは無いと
正直そういう所から入った層よりは、ある程度組めるようになってから見て納得出来た方が良いかと
つまりは最初に読むものでは無いと
861デフォルトの名無しさん
2021/03/06(土) 12:21:11.27ID:x8WQCH58 バックグラウンドとデザパタへの反応
複雑でも無く大きくも無いプログラムで遊んでた人
→自分のコードに対してデザパタの概念が大きい
→無意味にデザパタ導入してコード無意味に膨らます
→あるいはデザパタは無価値だと騒ぎ出す
ある程度複雑で大きいものを作ろうとして糞の山量産した人
→自分のコードに対してデザパタの概念が小さい
→デザパタ導入して部分的に見通し良く場面が見える
→必要に応じてデザパタを無言で使用
複雑でも無く大きくも無いプログラムで遊んでた人
→自分のコードに対してデザパタの概念が大きい
→無意味にデザパタ導入してコード無意味に膨らます
→あるいはデザパタは無価値だと騒ぎ出す
ある程度複雑で大きいものを作ろうとして糞の山量産した人
→自分のコードに対してデザパタの概念が小さい
→デザパタ導入して部分的に見通し良く場面が見える
→必要に応じてデザパタを無言で使用
862デフォルトの名無しさん
2021/03/06(土) 12:47:09.63ID:2s/lB21T オブジェクト指向を理解するにはデザインパターンを理解するのが近道
言語の基本文法を学んだ後すぐデザインパターンを学ぶと上達がはやい
パターン熱にかかるのも早い方がいい
言語の基本文法を学んだ後すぐデザインパターンを学ぶと上達がはやい
パターン熱にかかるのも早い方がいい
863デフォルトの名無しさん
2021/03/06(土) 14:22:35.38ID:pd/Aiz5V デザインパターンとオブジェクト指向は全く別。
864デフォルトの名無しさん
2021/03/06(土) 14:29:20.30ID:9ME8iPe/ >>863
GoFのデザインパターンのことだぞ
GoFのデザインパターンのことだぞ
865デフォルトの名無しさん
2021/03/06(土) 19:16:45.22ID:TUaJ1ME0866デフォルトの名無しさん
2021/03/06(土) 20:23:40.52ID:MNqEIsM4 そう言えば「名前がクソ」というクソパターンは
DRYとあまり関係ないな
あまりに基本過ぎて盲点だった
使ってる言葉や概念がそもそもおかしいのは
あまりに基本的な問題だが一番有りがちかもしれない
特に日本では戯言過ぎて英訳なんか不可能なぐらいの
曖昧模糊とした言葉を話す人が多いので…
コードを書くずっと前から間違ってることが多い
DRYとあまり関係ないな
あまりに基本過ぎて盲点だった
使ってる言葉や概念がそもそもおかしいのは
あまりに基本的な問題だが一番有りがちかもしれない
特に日本では戯言過ぎて英訳なんか不可能なぐらいの
曖昧模糊とした言葉を話す人が多いので…
コードを書くずっと前から間違ってることが多い
867デフォルトの名無しさん
2021/03/06(土) 20:54:37.19ID:/fxEYj1Q コードがクソかどうかはコードを見ただけでは判断できない
一見名前がクソっぽくても本当にクソなのかどうかは分からない
一見名前がクソっぽくても本当にクソなのかどうかは分からない
868デフォルトの名無しさん
2021/03/06(土) 20:58:25.37ID:Q5bee5g2 コードを見る以外の何をやって判断するんだ?
煮るのか焼くのか食べるのか?
煮るのか焼くのか食べるのか?
869デフォルトの名無しさん
2021/03/06(土) 21:00:04.77ID:pd/Aiz5V マウントスレ
870デフォルトの名無しさん
2021/03/06(土) 21:08:34.97ID:BLtO+LoM 重複には悪性のものとそうでないものがある
明らかに悪性なものの見極めは簡単だかそうでないものは重複を除去すべきかどうかそう簡単には見極められない
accidental duplicationなのかactual duplicationか
重複を除去して抽象化することが望ましい状況なのかどうか
最低でもこの2点の判断が必要
明らかに悪性なものの見極めは簡単だかそうでないものは重複を除去すべきかどうかそう簡単には見極められない
accidental duplicationなのかactual duplicationか
重複を除去して抽象化することが望ましい状況なのかどうか
最低でもこの2点の判断が必要
871デフォルトの名無しさん
2021/03/07(日) 00:51:19.68ID:1+EXA2lk 片方だけの変更が妥当なら良性、両方に変更を入れないとダメなら悪性、ぐらいでだいたい見分けられるんじゃね?
872デフォルトの名無しさん
2021/03/07(日) 01:45:46.06ID:TO18Vm5t 例えばこれ
https://mevius.5ch.net/test/read.cgi/tech/1610137345/570
似たようなこと3回繰り返してるけど重複を除去すべきかどうか?
除去すべきならどうリファクタリングするか?
https://mevius.5ch.net/test/read.cgi/tech/1610137345/570
似たようなこと3回繰り返してるけど重複を除去すべきかどうか?
除去すべきならどうリファクタリングするか?
873デフォルトの名無しさん
2021/03/07(日) 18:09:07.95ID:6RHLTJ16 具体的なコードが出てくると途端にヒヨるマウントスレ民
874デフォルトの名無しさん
2021/03/07(日) 19:18:29.31ID:HPgG7LJK ゴミみたいに細かい問題
知るかボケ
知るかボケ
875デフォルトの名無しさん
2021/03/07(日) 20:58:32.09ID:FZPehcc/876デフォルトの名無しさん
2021/03/08(月) 08:06:44.01ID:Q93ekmxF それは要件次第って言えてしまうからなあ
関数作れない時もあるし、仮に1回でも要件で拡張の余地をとか言われたら関数にしなきゃだし
クソコードって分かってもそうしなきゃいけないときもある
関数作れない時もあるし、仮に1回でも要件で拡張の余地をとか言われたら関数にしなきゃだし
クソコードって分かってもそうしなきゃいけないときもある
877デフォルトの名無しさん
2021/03/08(月) 09:04:47.24ID:ca4xsibi 関数化すらしないやつがいるのはちょっと驚き
このケースで関数化する動機は繰り返し同じことをしてるからというより意図を明確にするため
行数やbreakの有無みたいな表面的な形よりも意味が重要なので
この書き方が組織内で標準化されてる等の特殊な理由がない限り関数化する
ループにするかどうかは処理順序やcssをコードに固定化すべき状況なのかどうかによる
これも形じゃなく意味
使い捨てじゃなく長期的にメンテするコードで
hrml要素の検索順や検索条件をコードに固定化したほうが望ましい状況は少ない
このケースで関数化する動機は繰り返し同じことをしてるからというより意図を明確にするため
行数やbreakの有無みたいな表面的な形よりも意味が重要なので
この書き方が組織内で標準化されてる等の特殊な理由がない限り関数化する
ループにするかどうかは処理順序やcssをコードに固定化すべき状況なのかどうかによる
これも形じゃなく意味
使い捨てじゃなく長期的にメンテするコードで
hrml要素の検索順や検索条件をコードに固定化したほうが望ましい状況は少ない
878デフォルトの名無しさん
2021/03/08(月) 09:23:46.71ID:zo5oau9O でも関数って勝手に作ったらまずい現場もあるよね
879デフォルトの名無しさん
2021/03/08(月) 10:14:50.71ID:1B2qwCXx880デフォルトの名無しさん
2021/03/08(月) 11:50:19.86ID:u4CRr3CF 全然控えめに言ってない件
881デフォルトの名無しさん
2021/03/08(月) 13:51:58.27ID:pnlhyJpZ 作らせないってのもあると思うな
MSDNはドキュメントあるけど
派遣社員ってドキュメント書かないじゃん
ドキュメントないメソッドなら作らんほうがマシになるときもある
MSDNはドキュメントあるけど
派遣社員ってドキュメント書かないじゃん
ドキュメントないメソッドなら作らんほうがマシになるときもある
882デフォルトの名無しさん
2021/03/08(月) 14:37:36.32ID:Amm+J3oO883デフォルトの名無しさん
2021/03/08(月) 14:40:37.46ID:Amm+J3oO ドキュメント必須のレイヤーとドキュメントは任意で十分なレイヤーがあるから
全部同じ扱いをするのは非効率
コーディング規約と同様に指針を決めておくのが普通
全部同じ扱いをするのは非効率
コーディング規約と同様に指針を決めておくのが普通
884デフォルトの名無しさん
2021/03/08(月) 20:18:45.16ID:pnlhyJpZ >>882
( ゚д゚)あ、お金ないんでいいです
( ゚д゚)あ、お金ないんでいいです
885デフォルトの名無しさん
2021/03/08(月) 20:20:53.39ID:C8XgJIOz ドキュメント間違えるし、イラネ
886デフォルトの名無しさん
2021/03/08(月) 21:04:02.65ID:iO7qg9sm >>884
金の使い方間違ってるw
金の使い方間違ってるw
887デフォルトの名無しさん
2021/03/09(火) 08:13:13.98ID:DXzi7WCn ドキュメントはちゃんとメンテしないとむしろ害を及ぼすよ
888デフォルトの名無しさん
2021/03/09(火) 09:22:23.90ID:1va3W7Si メンテと言ってる時点でおかしいんだよね
本来はドキュメント変更してからコード直すべき
まあ不具合対策とかでいちいちドキュメントまで直してられっかって言うのはよくあるけど…
本来はドキュメント変更してからコード直すべき
まあ不具合対策とかでいちいちドキュメントまで直してられっかって言うのはよくあるけど…
889デフォルトの名無しさん
2021/03/09(火) 09:35:33.69ID:p4cuNQqC ドキュメントを修正するのは不可能
すでにそれでOKがでてるんだから
すでにそれでOKがでてるんだから
890デフォルトの名無しさん
2021/03/09(火) 10:35:41.16ID:B9Z9HiJ8 関数化すべき
→勝手に関数作れないもん
→関数作ったらドキュメントが必要になるもん
→作ったドキュメント維持できないもん
コードを評価する方法よりも職場やプログラマーを評価する方法を身につけた方が
圧倒的に効率よくクソを避けられるといういい見本だな
→勝手に関数作れないもん
→関数作ったらドキュメントが必要になるもん
→作ったドキュメント維持できないもん
コードを評価する方法よりも職場やプログラマーを評価する方法を身につけた方が
圧倒的に効率よくクソを避けられるといういい見本だな
891デフォルトの名無しさん
2021/03/09(火) 11:18:33.87ID:R+x4GEwc このスレで得られた教訓
クソプログラマーが「こういうコードはクソ」と言った場合、十中八九その認識のほうがクソ
クソプログラマーが「こういうコードはクソ」と言った場合、十中八九その認識のほうがクソ
892デフォルトの名無しさん
2021/03/09(火) 11:48:27.03ID:2IS/A2ze893デフォルトの名無しさん
2021/03/09(火) 13:02:45.11ID:DvrveGIe >>889
その理論でいくとコード修正するのも不可能では?
その理論でいくとコード修正するのも不可能では?
894デフォルトの名無しさん
2021/03/09(火) 15:30:47.03ID:MbPysK70 >>891
それはわかる
それはわかる
895デフォルトの名無しさん
2021/03/09(火) 17:44:05.23ID:sQfPg4KP 引き継ぎしてドキュメントを読む。
ソースをあまり読まずに修正する。
ドキュメントを直す。
システムが死ぬ。
ソースをあまり読まずに修正する。
ドキュメントを直す。
システムが死ぬ。
896デフォルトの名無しさん
2021/03/09(火) 17:51:26.17ID:JYZP+6rB897デフォルトの名無しさん
2021/03/09(火) 18:19:39.56ID:tZmYicyt >>888
コードがテストされるまで設計フェーズは終わらないので
その後のフィードバックで設計書の修正は当然
他のエンジニアリング分野で言う「製造」は
コンパイラとリンカーがやってしまうのであり
実装という実験によって設計の妥当性が証明されるまで
設計は終わらない
コードがテストされるまで設計フェーズは終わらないので
その後のフィードバックで設計書の修正は当然
他のエンジニアリング分野で言う「製造」は
コンパイラとリンカーがやってしまうのであり
実装という実験によって設計の妥当性が証明されるまで
設計は終わらない
898デフォルトの名無しさん
2021/03/09(火) 20:20:33.28ID:sQfPg4KP ロジックをドキュメント化するのは無駄。
コード読んで分からないものに手を入れてはいけない。
コード読んで分からないものに手を入れてはいけない。
899デフォルトの名無しさん
2021/03/09(火) 21:37:12.31ID:J60abFGc900デフォルトの名無しさん
2021/03/09(火) 22:03:20.61ID:qz7mFwyh 竹内関数は糞か否か。
901デフォルトの名無しさん
2021/03/10(水) 02:31:32.15ID:hjUELKdd どういう人が書いたのがわからんのが問題だと思う
バカが書いたとか間違ってるのが断定できればなんとかできるもん
バカが書いたとか間違ってるのが断定できればなんとかできるもん
902デフォルトの名無しさん
2021/03/10(水) 13:29:27.14ID:hr2yGgcj 竹内関数は、WEB+DB vol.121 のRuby 3 特集で、
平行・並列処理、Ractor のベンチマークで使っている
マルチコア用の並列処理は、まだ数年は掛かりそう
平行・並列処理、Ractor のベンチマークで使っている
マルチコア用の並列処理は、まだ数年は掛かりそう
903デフォルトの名無しさん
2021/03/10(水) 15:29:31.30ID:eQWG2ihY904デフォルトの名無しさん
2021/03/11(木) 15:58:20.83ID:2k6w0W90 まずは、使われない無駄なコードを減らして欲しい!
「無駄だらけのプログラムを効率化して、1万行→500行に。それを見た上司が激怒して『あいつは三流』と言いふらし始めました」(エンジニア・50代男性)
2021年1月26日 06:00
https://j-town.net/tokyo/column/allprefcolumn/317613.html?p=all
「無駄だらけのプログラムを効率化して、1万行→500行に。それを見た上司が激怒して『あいつは三流』と言いふらし始めました」(エンジニア・50代男性)
2021年1月26日 06:00
https://j-town.net/tokyo/column/allprefcolumn/317613.html?p=all
905デフォルトの名無しさん
2021/03/11(木) 16:00:27.63ID:2k6w0W90 とくぎ「パニパニハニー」を完全抹消コメント 1件
アイミョン
[KS108-054]
テーマ:キャラクター育成・強化2020/06/14 06:15
宝珠「パニパニハニーの技巧」とか、不要なオブジェクトは煩わしく誤動作の原因にもなります。
こうした旧バージョンのゴミは片づけて整理して、コマンド表示をわかりやすくしてほしいです。
https://i.imgur.com/IReXk4Q.png
アイミョン
[KS108-054]
テーマ:キャラクター育成・強化2020/06/14 06:15
宝珠「パニパニハニーの技巧」とか、不要なオブジェクトは煩わしく誤動作の原因にもなります。
こうした旧バージョンのゴミは片づけて整理して、コマンド表示をわかりやすくしてほしいです。
https://i.imgur.com/IReXk4Q.png
906デフォルトの名無しさん
2021/03/11(木) 16:31:29.74ID:4TSgT5Rn >>904
50代にもなってこんな所でしょうもない憂さ晴らししてるほうもたいがいやな
50代にもなってこんな所でしょうもない憂さ晴らししてるほうもたいがいやな
907デフォルトの名無しさん
2021/03/11(木) 16:59:27.28ID:UhH3pQhX >>904
条件分岐するたびに重複コードを書く初心者は必ずいる。サブルーチンの概念がないというよりは、変数の使い方がおかしいのが最大の理由だと思う。
条件分岐するたびに重複コードを書く初心者は必ずいる。サブルーチンの概念がないというよりは、変数の使い方がおかしいのが最大の理由だと思う。
908デフォルトの名無しさん
2021/03/11(木) 17:02:40.39ID:UhH3pQhX プログラムもドキュメントも常に作りかけかと思う物を作る50代を知っている。
909デフォルトの名無しさん
2021/03/11(木) 17:52:20.82ID:gBp5uuCV ひな形とかサブルーチンって言葉が古めかしいよな
910デフォルトの名無しさん
2021/03/11(木) 19:01:33.97ID:8a+EQRp9 サブルーチン=クソコードだよ
関数は原則として引数から戻り値を求めるものでテストが容易
もちろん副作用をもった関数もあるけど、わざわざ副作用と言ってるように
副作用は避けるべきものとして考えられてる
サブルーチンは戻り値がなく副作用がメイン
コードの責務とか考えなしに、似たようなコードがあったら
とりあえずサブルーチンにまとめちゃえってなる
その結果テストが容易ではなくなる
関数は原則として引数から戻り値を求めるものでテストが容易
もちろん副作用をもった関数もあるけど、わざわざ副作用と言ってるように
副作用は避けるべきものとして考えられてる
サブルーチンは戻り値がなく副作用がメイン
コードの責務とか考えなしに、似たようなコードがあったら
とりあえずサブルーチンにまとめちゃえってなる
その結果テストが容易ではなくなる
911デフォルトの名無しさん
2021/03/11(木) 19:19:47.26ID:ifNxw6Pa サブルーチンと関数を別キーワードで定義&コールするFortran流もありだと思うけどなあ
912デフォルトの名無しさん
2021/03/11(木) 20:17:42.11ID:eJfNLsOm913デフォルトの名無しさん
2021/03/11(木) 20:20:56.37ID:8a+EQRp9 クソプログラマーではないのでそれは当てはまらない
914デフォルトの名無しさん
2021/03/11(木) 20:37:19.04ID:dIdzHpoo クソプログラマーは自分がクソだという自覚ができない
自覚ができないからこそクソプログラマーとして生き続ける
自覚ができないからこそクソプログラマーとして生き続ける
915デフォルトの名無しさん
2021/03/11(木) 21:26:53.63ID:sZRHwddG >>910
サブルーチンに戻り値はないというのは勝手な思い込み
プログラミングにおける副作用という言葉は薬の副作用や副反応と違って一般的に望ましくないものという意味は全く無い
主張の中心となる用語をよく理解せず勝手な思い込みでオレオレ理論をふりかざすやつがクソプログラマーでなくなんなのだろうか?
自分の認識が間違ってるかもしれないとは考えないクソプログラマーの特徴がよく表れている
サブルーチンに戻り値はないというのは勝手な思い込み
プログラミングにおける副作用という言葉は薬の副作用や副反応と違って一般的に望ましくないものという意味は全く無い
主張の中心となる用語をよく理解せず勝手な思い込みでオレオレ理論をふりかざすやつがクソプログラマーでなくなんなのだろうか?
自分の認識が間違ってるかもしれないとは考えないクソプログラマーの特徴がよく表れている
916デフォルトの名無しさん
2021/03/11(木) 23:23:42.46ID:wuP7cLri 関数呼び出しは遅いから関数しか無いCは使えないという恐ろしいFortran使いが結構たりするけどな…
917デフォルトの名無しさん
2021/03/11(木) 23:38:43.29ID:wuP7cLri まあインライン化やマクロ駆使してオーバーヘッド削ったCよりは絶対読みやすいので、一理ないこともない
918デフォルトの名無しさん
2021/03/12(金) 00:52:41.16ID:IfpuCZI8 今時FORTRAN使いとかいるのか・・・
どこで使っているんだ?w
どこで使っているんだ?w
919デフォルトの名無しさん
2021/03/12(金) 03:40:10.66ID:pvW782MA 理学系とか今でもFORTRANらしい
920デフォルトの名無しさん
2021/03/12(金) 03:51:45.30ID:iCE7eqEI たぶんおじさんの想像するFORTRANとは随分違う言語だぞ
921デフォルトの名無しさん
2021/03/12(金) 08:06:40.57ID:6WY1VkSt >>918
母数がわからんけど、HPC分野だとまだまだFORTRAN優位
次世代スパコン「富岳」の重点課題で開発するアプリのうち,Fortranでないのは一つだけ.
https://qiita.com/implicit_none/items/ad4c556c043a91fa0dc4
母数がわからんけど、HPC分野だとまだまだFORTRAN優位
次世代スパコン「富岳」の重点課題で開発するアプリのうち,Fortranでないのは一つだけ.
https://qiita.com/implicit_none/items/ad4c556c043a91fa0dc4
922デフォルトの名無しさん
2021/03/12(金) 10:14:24.86ID:Nf3fOkm/ Fortran2018?
923デフォルトの名無しさん
2021/03/12(金) 11:45:41.06ID:zHGwFDvl サブルーチン・副作用は、状態を持つから、ややこしい。
Ruby 3 のマルチコア並列処理・Ractor でも問題になっている
状態を持つと、共有変数の排他処理が難しいから、
関数型のElixir みたいに、immutable にしないといけない
Ruby 3 のマルチコア並列処理・Ractor でも問題になっている
状態を持つと、共有変数の排他処理が難しいから、
関数型のElixir みたいに、immutable にしないといけない
924デフォルトの名無しさん
2021/03/12(金) 14:09:01.67ID:jKVaeyDL デッドコードは、見つけて、取り除く必要がある。デッドコードを残しておくと、プログラマの理解と行動を
妨げることがあり、コードが実行されて、重大な問題を引き起こすリスクもある。 デッドコードの削除は、
技術的な問題ではない。Kevlin Henney氏によると、それは考え方と文化の問題だ。
https://www.infoq.com/jp/news/2017/03/dead-code/
妨げることがあり、コードが実行されて、重大な問題を引き起こすリスクもある。 デッドコードの削除は、
技術的な問題ではない。Kevlin Henney氏によると、それは考え方と文化の問題だ。
https://www.infoq.com/jp/news/2017/03/dead-code/
925デフォルトの名無しさん
2021/03/12(金) 14:22:11.99ID:b9Kr93A5 仕様変更でなくてもよくなった箇所は、削除より、いったんコメントアウトで対処した方がいい。外国人はコードを変えて失敗する能天気だから、あいつらの言うことに従ってはいけない。
926デフォルトの名無しさん
2021/03/12(金) 14:26:53.48ID:C5Hfq1un >>925
VCS使えよ
VCS使えよ
927デフォルトの名無しさん
2021/03/12(金) 14:35:41.22ID:6WY1VkSt >>925
いつの時代の人だよw
いつの時代の人だよw
928デフォルトの名無しさん
2021/03/12(金) 16:44:55.70ID:b9Kr93A5 必ずそういうことを言い出すやつがいるが、経験不足だと思うよ。いちいち見比べる方が効率が悪い。
929デフォルトの名無しさん
2021/03/12(金) 16:48:44.73ID:b9Kr93A5 すぐに削除しない方がいいと書いてあるのに、早とちりさんが多いね。
930デフォルトの名無しさん
2021/03/12(金) 17:02:54.30ID:6WY1VkStレス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 【野球】野球の未来に危機感「マイナースポーツになる」 宮本慎也氏が開催…学童大会 [尺アジ★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 【訃報】声優・西村知道さん死去 「SLAM DUNK」安西先生役 9月に体調不良のため一時休業 [少考さん★]
- 三角形はカッコいい
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- みなみけ三姉妹誰が一番好き?
- 俺はヤンキーだから
- 【速報】高市早苗、起床 [779938112]
- ぬるぽ
