このスレはクソコードとは何かを考えるスレです。
・親クラスが子クラスに依存する処理を持つコード
例...社員クラスを継承した正社員クラスと派遣社員クラスがあり、社員クラスが正社員クラスの知識を持つ状況
・staticにするべきではないモデルにまでstaticにする人
例...社員クラスのメソッドを全てstaticにしたり、社員クラスにシングルトンパターンに相応するものを適用する人
等、クソコードを見た時に「あっ、これクソコードだ」って認識する根拠を挙げていきましょう。
探検
クソコードとは何か
■ このスレッドは過去ログ倉庫に格納されています
2021/01/30(土) 17:33:05.78ID:BjNTZWUI
767デフォルトの名無しさん
2021/02/27(土) 10:28:16.32ID:OfxFNKjU >>765
いつ実行するかをあなたは話してますね、ふーんって思いました、なんでそんな話をしてくるんだろう
いつ実行するかをあなたは話してますね、ふーんって思いました、なんでそんな話をしてくるんだろう
768デフォルトの名無しさん
2021/02/27(土) 10:28:52.51ID:OfxFNKjU769デフォルトの名無しさん
2021/02/27(土) 10:30:34.90ID:ZW3ZqwOa770デフォルトの名無しさん
2021/02/27(土) 10:30:45.78ID:OfxFNKjU あれを知ってるかこれを知ってるか、そんなことも知らないのか、民主党の国会質疑みたいですね
771デフォルトの名無しさん
2021/02/27(土) 10:32:30.36ID:OfxFNKjU >>769
テストコードを書くとテストコードを実行することやテストコードをきれいに書くことが目的なってしまうからです、このスレの議論を見ればよくわかりますね
テストコードを書くとテストコードを実行することやテストコードをきれいに書くことが目的なってしまうからです、このスレの議論を見ればよくわかりますね
772デフォルトの名無しさん
2021/02/27(土) 10:32:39.93ID:ZW3ZqwOa はあ、論理的に議論できない人プログラマーにもいるんですね(皮肉)
773デフォルトの名無しさん
2021/02/27(土) 10:35:35.35ID:OfxFNKjU 言うに事欠いて僕の真似をするとは、良いでしょう、あなたがその言葉を発言することを許諾します
774デフォルトの名無しさん
2021/02/27(土) 10:36:03.25ID:OfxFNKjU 許しました、僕は心が広いので
775デフォルトの名無しさん
2021/02/27(土) 10:54:25.52ID:Yt5NHAzi NG推奨:テスト
776デフォルトの名無しさん
2021/02/27(土) 13:00:30.28ID:NhoBp4qK >>742
クソコーダーはクソスレ建てるのがお上手ですね!
クソコーダーはクソスレ建てるのがお上手ですね!
777デフォルトの名無しさん
2021/02/27(土) 14:21:58.44ID:o6FTnlQR まずこのスレがクソスレじゃん
どんなジャンルで悪いお手本をあげつらって技術磨くってのが成り立つんだよ
状況によって対応が細かく変わりうるプログラムってジャンルだと尚更ねーよ
どんなジャンルで悪いお手本をあげつらって技術磨くってのが成り立つんだよ
状況によって対応が細かく変わりうるプログラムってジャンルだと尚更ねーよ
778デフォルトの名無しさん
2021/02/27(土) 14:31:49.87ID:EOMk/snY >>777
は?アンチパターン知らないのなら
は?アンチパターン知らないのなら
779デフォルトの名無しさん
2021/02/27(土) 14:32:21.56ID:EOMk/snY は?アンチパターンも知らないのなら引っ込んでろ底辺プログラマー。
780デフォルトの名無しさん
2021/02/27(土) 14:41:04.16ID:OfxFNKjU アンパンチなら知ってるけど
781デフォルトの名無しさん
2021/02/27(土) 14:42:05.95ID:OfxFNKjU 僕はバイキンマンがおしゃれだと思うし好きですけど
782デフォルトの名無しさん
2021/02/27(土) 14:43:15.22ID:OfxFNKjU ドキンちゃん、メロンパンナちゃんは可愛いです
783デフォルトの名無しさん
2021/02/27(土) 14:45:08.51ID:OfxFNKjU 天どんマンとカバオくんは渋くて好きです
784デフォルトの名無しさん
2021/02/27(土) 14:46:27.65ID:OfxFNKjU 愛と勇気だけが友だちという歌詞も深いですよね、大人の心にも響きます
785デフォルトの名無しさん
2021/02/27(土) 14:50:27.61ID:Rkj+zBYu >>777
スレ主がコンテキストを理解しない底辺プログラマーだから許してあげてね
スレ主がコンテキストを理解しない底辺プログラマーだから許してあげてね
786デフォルトの名無しさん
2021/02/27(土) 15:25:16.36ID:srgcqAD7 コンテキスト?
Device Contextとか、Android Activityとかのコンテキスト?
Device Contextとか、Android Activityとかのコンテキスト?
787デフォルトの名無しさん
2021/02/27(土) 15:47:29.01ID:qhUfxMpi 多分コンテキストって言いたかっただけなんだろうと思う…
788デフォルトの名無しさん
2021/02/27(土) 16:37:52.70ID:OfxFNKjU >>786
文脈って意味ですよ
文脈って意味ですよ
789デフォルトの名無しさん
2021/02/27(土) 16:55:56.55ID:lzDnqtNz 俺は、あわしろ氏を信じる。
お前の言うことは信用しない。
お前の言うことは信用しない。
790デフォルトの名無しさん
2021/02/28(日) 03:55:51.43ID:BRDX8bQ+ 天ぷらだとうどんと蕎麦のどっちが好き?
791デフォルトの名無しさん
2021/02/28(日) 03:57:33.36ID:Gc6Q6B7T カレー
792デフォルトの名無しさん
2021/02/28(日) 03:59:46.09ID:BRDX8bQ+ >>791
天ぷら前提なんだが、レスがハエーから許す
天ぷら前提なんだが、レスがハエーから許す
793デフォルトの名無しさん
2021/02/28(日) 04:04:03.84ID:Gc6Q6B7T 天ぷらカレー
794デフォルトの名無しさん
2021/02/28(日) 04:07:35.88ID:BRDX8bQ+ >>793
うどんか蕎麦で
うどんか蕎麦で
795デフォルトの名無しさん
2021/02/28(日) 04:53:09.79ID:Gc6Q6B7T カレーどんぶり
796デフォルトの名無しさん
2021/02/28(日) 09:53:36.42ID:fiymphDk >>792
みなさんこれがクソコードです
みなさんこれがクソコードです
797デフォルトの名無しさん
2021/02/28(日) 17:33:35.64ID:JGZwcedL 最初は有意義になるかなと思ったのにクソスレになったな
798デフォルトの名無しさん
2021/02/28(日) 17:44:13.70ID:VO7rpKqD799デフォルトの名無しさん
2021/02/28(日) 22:04:12.82ID:AdiQic6X 5chに有意義なことを期待する時点で
800デフォルトの名無しさん
2021/02/28(日) 22:29:20.29ID:HY9f+UaN Qiitaでもクソコード云々言って炎上してる記事があったな
801デフォルトの名無しさん
2021/02/28(日) 23:14:06.43ID:797yScED >>800
試しにクソコードでQiitaを検索してみたがポエムばっかりで面白いのなかったな
↓これが視点としては面白かったけど処理分割のアプローチ間違ってるから新たなクソコードが出来そう
https://qiita.com/teradonburi/items/6483e51d5f9d47f5c22a
試しにクソコードでQiitaを検索してみたがポエムばっかりで面白いのなかったな
↓これが視点としては面白かったけど処理分割のアプローチ間違ってるから新たなクソコードが出来そう
https://qiita.com/teradonburi/items/6483e51d5f9d47f5c22a
802デフォルトの名無しさん
2021/02/28(日) 23:55:31.04ID:VPMHnl/e803デフォルトの名無しさん
2021/03/01(月) 00:40:02.48ID:p4pc8RdJ >>802
アンチパターンを集めたかったんなら
スレタイと1スレをそうなるよう書けって話だろ
アンチパターンとクソコードは全く別物なんだよ
コンテキストを理解してないと言われてる理由と合わせて最低限パターン・ランゲージくらいは学んでこい
ちなみに「いや」から書き始めるレスはクソレス・パターンだからな
アンチパターンを集めたかったんなら
スレタイと1スレをそうなるよう書けって話だろ
アンチパターンとクソコードは全く別物なんだよ
コンテキストを理解してないと言われてる理由と合わせて最低限パターン・ランゲージくらいは学んでこい
ちなみに「いや」から書き始めるレスはクソレス・パターンだからな
804デフォルトの名無しさん
2021/03/01(月) 02:16:03.17ID:6wDZP3ri >>803
君がコミュ障パターンなだけだろ
君がコミュ障パターンなだけだろ
805デフォルトの名無しさん
2021/03/01(月) 02:47:59.87ID:o92pxtgz806デフォルトの名無しさん
2021/03/01(月) 02:51:31.50ID:g6QBZhEL アンチパターンを取り上げてる本でオススメある?
SQLアンチパターンを読んで得るものが多かったので
SQLアンチパターンを読んで得るものが多かったので
807デフォルトの名無しさん
2021/03/01(月) 06:38:18.35ID:6wDZP3ri >>805
ほうクソの定義とは何かね
ほうクソの定義とは何かね
808デフォルトの名無しさん
2021/03/01(月) 06:39:15.47ID:6wDZP3ri マーチン・ファウラーのりファクタリングやろな
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とあまり関係ないな
あまりに基本過ぎて盲点だった
使ってる言葉や概念がそもそもおかしいのは
あまりに基本的な問題だが一番有りがちかもしれない
特に日本では戯言過ぎて英訳なんか不可能なぐらいの
曖昧模糊とした言葉を話す人が多いので…
コードを書くずっと前から間違ってることが多い
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★2 [七波羅探題★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪 [七波羅探題★]
- 高市内閣「支持」64%「不支持」19% NHK世論調査 [少考さん★]
- 【訃報】声優・西村知道さん死去 「SLAM DUNK」安西先生役 9月に体調不良のため一時休業 [少考さん★]
- 高市首相「多様なコメの増産を進める」 方針転換への懸念払拭狙いか ★2 [どどん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 【STARDOM】スターダムワールド Part.36
- 【NJPW】新日本プロレスワールド part.2425
- 【STARDOM】スターダムワールド Part.37
- ハム専 現役ドラフト
- とらせんIP ★4
- 巨専】
- ルーナ(・o・🍬)とルーナイトでたこ🐙焼きパーティするのら🍬!🏡
- 中国「レーダー照射は自業自得。訓練海域に無断でノコノコ侵入してんじゃねーよ間抜け自衛隊😁」 高市早苗また負ける… [271912485]
- 中国「公海のこの区域で訓練するから入ってこないでね」自衛隊「知るかボケ侵入して偵察じゃ!」これジャップが悪いよね [817148728]
- スカイマーク「セール抑止要求」国交省認めず。JAL、ANA航空券セールを静観へ [943688309]
- 【悲報】🇯🇵日本の高校生、🇮🇩インドネシアで集団万引き [481941988]
- おさかなさんあつまれえ
