このスレはクソコードとは何かを考えるスレです。
・親クラスが子クラスに依存する処理を持つコード
例...社員クラスを継承した正社員クラスと派遣社員クラスがあり、社員クラスが正社員クラスの知識を持つ状況
・staticにするべきではないモデルにまでstaticにする人
例...社員クラスのメソッドを全てstaticにしたり、社員クラスにシングルトンパターンに相応するものを適用する人
等、クソコードを見た時に「あっ、これクソコードだ」って認識する根拠を挙げていきましょう。
探検
クソコードとは何か
レス数が900を超えています。1000を超えると表示できなくなるよ。
2021/01/30(土) 17:33:05.78ID:BjNTZWUI
809デフォルトの名無しさん
2021/03/01(月) 06:52:02.27ID:6wDZP3ri >>805
おいお前話を広げろ、今のお前は他人のヘイトやってるだけのクソ野郎だからそうじゃないところを見せろ
おいお前話を広げろ、今のお前は他人のヘイトやってるだけのクソ野郎だからそうじゃないところを見せろ
810デフォルトの名無しさん
2021/03/01(月) 06:56:37.18ID:6wDZP3ri あ、間違ってたも
>>805は僕に同意してたわけね
でも僕は敏感な人間だから僕に言われてることだと思った、だけれども紛らわしい言い方した君が悪い、僕は絶対に悪くないからこの件は以後言及することを禁止します、以上
>>805は僕に同意してたわけね
でも僕は敏感な人間だから僕に言われてることだと思った、だけれども紛らわしい言い方した君が悪い、僕は絶対に悪くないからこの件は以後言及することを禁止します、以上
811デフォルトの名無しさん
2021/03/01(月) 07:06:26.34ID:6wDZP3ri 上に出てるパターン・ランゲージってアレクザンダーの都市計画理論だろ、プログラミングの本じゃない、そんなたとえ話のようなものでわかった気になるのは危ない
Twitterでも建築の本読んでオブジェクト指向がどうとか言ってる人いるけどポストモダンなソーカル野郎としか思えないんだよなあ、関係のないことを関係づけてそこに気づいた自分が賢いと思いこんでしまうクルクルパー、地頭の良い人が陥りやすい穴のように見える
Twitterでも建築の本読んでオブジェクト指向がどうとか言ってる人いるけどポストモダンなソーカル野郎としか思えないんだよなあ、関係のないことを関係づけてそこに気づいた自分が賢いと思いこんでしまうクルクルパー、地頭の良い人が陥りやすい穴のように見える
812デフォルトの名無しさん
2021/03/01(月) 08:09:59.68ID:Dkl+jirL 40年近く前の本だしFORTRAN, PL/1が題材だから今の言語に合わない箇所もあるけど名著だと思う
プログラム書法 第2版 / Brian W.カーニハン P.J.Plauger 著 木村 泉 訳 | 共立出版
https://www.kyoritsu-pub.co.jp/bookdetail/9784320020856
プログラム書法 第2版 / Brian W.カーニハン P.J.Plauger 著 木村 泉 訳 | 共立出版
https://www.kyoritsu-pub.co.jp/bookdetail/9784320020856
813デフォルトの名無しさん
2021/03/01(月) 08:21:42.09ID:VB40xofU プログラミング作法の方が良いと思うよ
814デフォルトの名無しさん
2021/03/01(月) 11:23:05.55ID:vk4XQtG7 中国行くと肛門PCR検査
816デフォルトの名無しさん
2021/03/01(月) 17:40:20.81ID:scPLhEmU817デフォルトの名無しさん
2021/03/01(月) 20:15:47.54ID:XEpCIBIH コードとはまた違うけど
javaのインターフェースとインプリメントはクソだなと思う
無駄にファイル数増えてクソうざい
javaのインターフェースとインプリメントはクソだなと思う
無駄にファイル数増えてクソうざい
818デフォルトの名無しさん
2021/03/01(月) 20:59:56.79ID:lUjHuGPy interfaceがクソってw
オブジェクト指向知らないのではw
オブジェクト指向知らないのではw
819デフォルトの名無しさん
2021/03/01(月) 21:16:55.91ID:4ocrwkuw これだからJava脳はw
言語周りで幼稚な愚痴垂れ流してるやつのJava率の高さったらない
言語周りで幼稚な愚痴垂れ流してるやつのJava率の高さったらない
820デフォルトの名無しさん
2021/03/01(月) 22:39:30.52ID:o/aEg2l/ >>811
GoFのデザインパターンも、ファウラーのリファクタリングも、エリックエバンスのDDDもみんなパターン・ランゲージ
それぞれのパターン・ランゲージに共通する要素は何なのか?
なぜパターンがソフトウェア開発に有用なのか?
この辺を学んで出直してくるといいんじゃね
GoFのデザインパターンも、ファウラーのリファクタリングも、エリックエバンスのDDDもみんなパターン・ランゲージ
それぞれのパターン・ランゲージに共通する要素は何なのか?
なぜパターンがソフトウェア開発に有用なのか?
この辺を学んで出直してくるといいんじゃね
821デフォルトの名無しさん
2021/03/01(月) 22:48:23.51ID:o/aEg2l/ クソコードと言うのは単なるBad Practiceの一種であってアンチパターンとは違うもの
アンチパターンの意味を理解せずにアンチパターンの研究とかまあ無理よね
アンチパターンの意味を理解せずにアンチパターンの研究とかまあ無理よね
822デフォルトの名無しさん
2021/03/01(月) 23:16:44.33ID:vk4XQtG7 >>818
abstractだけでいいって事では?
abstractだけでいいって事では?
823デフォルトの名無しさん
2021/03/01(月) 23:43:38.69ID:f1Pg/hcl C#やるとJavaのいろいろ足りてない部分はめちゃくちゃ実感する
824デフォルトの名無しさん
2021/03/02(火) 00:47:10.90ID:k1c4vJst >>820
君が何を学んだかを教えてよ
君が何を学んだかを教えてよ
825デフォルトの名無しさん
2021/03/02(火) 03:20:46.99ID:9w2EW+ai いちいち2chで教えなくていいから
826デフォルトの名無しさん
2021/03/02(火) 10:54:48.23ID:MXVQCo9F Anti-pattern
https://en.wikipedia.org/wiki/Anti-pattern
https://en.wikipedia.org/wiki/Anti-pattern
827デフォルトの名無しさん
2021/03/02(火) 11:43:32.18ID:sTNRmcJa >>818
そのインターフェース本当に必要?ってのが大半
他クラスとは何も関係無い孤立したクラスなのにインターフェース実装されてるの見たことある?
javaやってる感出すためだけにファイル数が2倍になるゴミ
そのインターフェース本当に必要?ってのが大半
他クラスとは何も関係無い孤立したクラスなのにインターフェース実装されてるの見たことある?
javaやってる感出すためだけにファイル数が2倍になるゴミ
828デフォルトの名無しさん
2021/03/02(火) 12:24:38.24ID:08kau52M 肛門コード
829デフォルトの名無しさん
2021/03/02(火) 12:31:08.45ID:MXVQCo9F >>827
ポリモーフィズム
Storage storage
storage = new USBMemory()
or
storage = new SDCard()
以下、storageを使って読み出し
storage.read()
これができなくなるとか論外
ポリモーフィズム
Storage storage
storage = new USBMemory()
or
storage = new SDCard()
以下、storageを使って読み出し
storage.read()
これができなくなるとか論外
830デフォルトの名無しさん
2021/03/02(火) 15:55:12.73ID:HE4Aq4BV 1メソッド1インタフェイスのペアで作れば解決するじゃないか!
interface Writer{
void write(Data data);
}
interface Reader{
Data read();
}
interface Eraser{
void erase();
}
abstract class Storage implements Writer, Reader, Eraser{
abstract void write(Data data);
abstract Data read();
abstract void erase();
}
interface Writer{
void write(Data data);
}
interface Reader{
Data read();
}
interface Eraser{
void erase();
}
abstract class Storage implements Writer, Reader, Eraser{
abstract void write(Data data);
abstract Data read();
abstract void erase();
}
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代を知っている。
レス数が900を超えています。1000を超えると表示できなくなるよ。
