クソコードとは何かat TECH
クソコードとは何か - 暇つぶし2ch907:デフォルトの名無しさん
21/03/09 18:19:39.56 tZmYicyt.net
>>888
コードがテストされるまで設計フェーズは終わらないので
その後のフィードバックで設計書の修正は当然
他のエンジニアリング分野で言う「製造」は
コンパイラとリンカーがやってしまうのであり
実装という実験によって設計の妥当性が証明されるまで
設計は終わらない

908:デフォルトの名無しさん
21/03/09 20:20:33.28 sQfPg4KP.net
ロジックをドキュメント化するのは無駄。
コード読んで分からないものに手を入れてはいけない。

909:デフォルトの名無しさん
21/03/09 21:37:12.31 J60abFGc.net
>>891
このスレを見返してみると「こういうコードはクソ」というレスが15~16あった
その中で「確かにそれはクソだな」と思ったのは1つだけ
それ以外は・・・

910:デフォルトの名無しさん
21/03/09 22:03:20.61 qz7mFwyh.net
竹内関数は糞か否か。

911:デフォルトの名無しさん
21/03/10 02:31:32.15 hjUELKdd.net
どういう人が書いたのがわからんのが問題だと思う
バカが書いたとか間違ってるのが断定できればなんとかできるもん

912:デフォルトの名無しさん
21/03/10 13:29:27.14 hr2yGgcj.net
竹内関数は、WEB+DB vol.121 のRuby 3 特集で、
平行・並列処理、Ractor のベンチマークで使っている
マルチコア用の並列処理は、まだ数年は掛かりそう

913:デフォルトの名無しさん
21/03/10 15:29:31.30 eQWG2ihY.net
>>900
竹内関数は関数の仕様を定義したものなので
コードではなく仕様がクソかどうかという話になる
それはクソコードかどうかという話とは少し種類が違う

914:デフォルトの名無しさん
21/03/11 15:58:20.83 2k6w0W90.net
まずは、使われない無駄なコードを減らして欲しい!
「無駄だらけのプログラムを効率化して、1万行→500行に。それを見た上司が激怒して『あいつは三流』と言いふらし始めました」(エンジニア・50代男性)
2021年1月26日 06:00
URLリンク(j-town.net)

915:デフォルトの名無しさん
21/03/11 16:00:27.63 2k6w0W90.net
とくぎ「パニパニハニー」を完全抹消コメント 1件
アイミョン
[KS108-054]
テーマ:キャラクター育成・強化2020/06/14 06:15
宝珠「パニパニハニーの技巧」とか、不要なオブジェクトは煩わしく誤動作の原因にもなります。
こうした旧バージョンのゴミは片づけて整理して、コマンド表示をわかりやすくしてほしいです。
URLリンク(i.imgur.com)

916:デフォルトの名無しさん
21/03/11 16:31:29.74 4TSgT5Rn.net
>>904
50代にもなってこんな所でしょうもない憂さ晴らししてるほうもたいがいやな

917:デフォルトの名無しさん
21/03/11 16:59:27.28 UhH3pQhX.net
>>904
条件分岐するたびに重複コードを書く初心者は必ずいる。サブルーチンの概念がないというよりは、変数の使い方がおかしいのが最大の理由だと思う。

918:デフォルトの名無しさん
21/03/11 17:02:40.39 UhH3pQhX.net
プログラムもドキュメントも常に作りかけかと思う物を作る50代を知っている。

919:デフォルトの名無しさん
21/03/11 17:52:20.82 gBp5uuCV.net
ひな形とかサブルーチンって言葉が古めかしいよな

920:デフォルトの名無しさん
21/03/11 19:01:33.97 8a+EQRp9.net
サブルーチン=クソコードだよ
関数は原則として引数から戻り値を求めるものでテストが容易
もちろん副作用をもった関数もあるけど、わざわざ副作用と言ってるように
副作用は避けるべきものとして考えられてる
サブルーチンは戻り値がなく副作用がメイン
コードの責務とか考えなしに、似たようなコードがあったら
とりあえずサブルーチンにまとめちゃえってなる
その結果テストが容易ではなくなる

921:デフォルトの名無しさん
21/03/11 19:19:47.26 ifNxw6Pa.net
サブルーチンと関数を別キーワードで定義&コールするFortran流もありだと思うけどなあ

922:デフォルトの名無しさん
21/03/11 20:17:42.11 eJfNLsOm.net
>>910
クソプログラマーが「こういうコードはクソ」と言った場合、十中八九その認識のほうがクソ
サンプルが追加されたな

923:デフォルトの名無しさん
21/03/11 20:20:56.37 8a+EQRp9.net
クソプログラマーではないのでそれは当てはまらない

924:デフォルトの名無しさん
21/03/11 20:37:19.04 dIdzHpoo.net
クソプログラマーは自分がクソだという自覚ができない
自覚ができないからこそクソプログラマーとして生き続ける

925:デフォルトの名無しさん
21/03/11 21:26:53.63 sZRHwddG.net
>>910
サブルーチンに戻り値はないというのは勝手な思い込み
プログラミングにおける副作用という言葉は薬の副作用や副反応と違って一般的に望ましくないものという意味は全く無い
主張の中心となる用語をよく理解せず勝手な思い込みでオレオレ理論をふりかざすやつがクソプログラマーでなくなんなのだろうか?
自分の認識が間違ってるかもしれないとは考えないクソプログラマーの特徴がよく表れている

926:デフォルトの名無しさん
21/03/11 23:23:42.46 wuP7cLri.net
関数呼び出しは遅いから関数しか無いCは使えないという恐ろしいFortran使いが結構たりするけどな…

927:デフォルトの名無しさん
21/03/11 23:38:43.29 wuP7cLri.net
まあインライン化やマクロ駆使してオーバーヘッド削ったCよりは絶対読みやすいので、一理ないこともない

928:デフォルトの名無しさん
21/03/12 00:52:41.16 IfpuCZI8.net
今時FORTRAN使いとかいるのか・・・
どこで使っているんだ?w

929:デフォルトの名無しさん
21/03/12 03:40:10.66 pvW782MA.net
理学系とか今でもFORTRANらしい

930:デフォルトの名無しさん
21/03/12 03:51:45.30 iCE7eqEI.net
たぶんおじさんの想像するFORTRANとは随分違う言語だぞ

931:デフォルトの名無しさん
21/03/12 08:06:40.57 6WY1VkSt.net
>>918
母数がわからんけど、HPC分野だとまだまだFORTRAN優位
次世代スパコン「富岳」の重点課題で開発するアプリのうち,Fortranでないのは一つだけ.
URLリンク(qiita.com)

932:デフォルトの名無しさん
21/03/12 10:14:24.86 Nf3fOkm/.net
Fortran2018?

933:デフォルトの名無しさん
21/03/12 11:45:41.06 zHGwFDvl.net
サブルーチン・副作用は、状態を持つから、ややこしい。
Ruby 3 のマルチコア並列処理・Ractor でも問題になっている
状態を持つと、共有変数の排他処理が難しいから、
関数型のElixir みたいに、immutable にしないといけない

934:デフォルトの名無しさん
21/03/12 14:09:01.67 jKVaeyDL.net
デッドコードは、見つけて、取り除く必要がある。デッドコードを残しておくと、プログラマの理解と行動を
妨げることがあり、コードが実行されて、重大な問題を引き起こすリスクもある。 デッドコードの削除は、
技術的な問題ではない。Kevlin Henney氏によると、それは考え方と文化の問題だ。
URLリンク(www.infoq.com)

935:デフォルトの名無しさん
21/03/12 14:22:11.99 b9Kr93A5.net
仕様変更でなくてもよくなった箇所は、削除より、いったんコメントアウトで対処した方がいい。外国人はコードを変えて失敗する能天気だから、あいつらの言うことに従ってはいけない。

936:デフォルトの名無しさん
21/03/12 14:26:53.48 C5Hfq1un.net
>>925
VCS使えよ

937:デフォルトの名無しさん
21/03/12 14:35:41.22 6WY1VkSt.net
>>925
いつの時代の人だよw

938:デフォルトの名無しさん
21/03/12 16:44:55.70 b9Kr93A5.net
必ずそういうことを言い出すやつがいるが、経験不足だと思うよ。いちいち見比べる方が効率が悪い。

939:デフォルトの名無しさん
21/03/12 16:48:44.73 b9Kr93A5.net
すぐに削除しない方がいいと書いてあるのに、早とちりさんが多いね。

940:デフォルトの名無しさん
21/03/12 17:02:54.30 6WY1VkSt.net
>>928
> いちいち見比べる方が効率が悪い。
差分ツールも知らない爺乙

941:デフォルトの名無しさん
21/03/12 17:19:15.11 7Crflr6r.net
見比べている自分の光景を想像しろ

942:デフォルトの名無しさん
21/03/12 17:34:39.00 7Crflr6r.net
削除するなとは言ってない。ガンガン削除してもいいが、残ったコード内でこう作った意図がわからなくなるくらいなら、システムの作り直しの時点で変えるべきた。
元のデッドコードの話自体は初心者の話だし、コードの書き換えに躊躇がなく、バグだらけにするのは外国人に多いわけで、有名な製品をアップデートするとおかしくなる最大の理由。

943:デフォルトの名無しさん
21/03/12 17:41:07.46 EKGXILxS.net
外国人のフリして逃げる

944:デフォルトの名無しさん
21/03/12 18:44:33.92 Jts8n3aI.net
クソコードとは俺が書いたコード

945:デフォルトの名無しさん
21/03/12 18:52:31.32 0g8W4jPs.net
またまたご謙遜を。

946:デフォルトの名無しさん
21/03/12 19:22:54.23 7Crflr6r.net
オープンソースはかなりの確率でクソコード

947:デフォルトの名無しさん
21/03/12 19:44:02.10 HsBsGhC6.net
YAGNI (You Ain’t Gonna Need It) 直訳は「そんなモン要らんって!」
YAGNIの原則は「機能は実際に必要となるまでは追加しないのがよい」とすること。後で使うだろうという
予測の元に作っても、実際に使われるのはほんの一部。ソフトウェア実装において「予期しない変更」は常
についてまわり、できるだけ設計をシンプルにするべき。現実の問題に集中して余計なモノを足さない。
それがヤーグニ。
URLリンク(www.jabba.cloud)

948:デフォルトの名無しさん
21/03/12 19:56:22.98 b9Kr93A5.net
業務システムにはあてはまらない。

949:デフォルトの名無しさん
21/03/12 19:58:56.77 b9Kr93A5.net
>>937
仕様変更を想定しないといけないとわかっていながら、そのときの仕様で最適化するのは、その方が周囲から理解をえやすいから。

950:デフォルトの名無しさん
21/03/12 20:31:43.28 47v6/wL7.net
おまえヤベェわ
さすがクソプログラマースレ

951:デフォルトの名無しさん
21/03/12 21:37:32.87 b9Kr93A5.net
外国人の言うことをありがたがっているようでは話にならない。

952:デフォルトの名無しさん
21/03/12 21:37:59.65 HsBsGhC6.net
>クソコードとは何か
スマホ アプリの6割未利用!不要なアプリの大量保有はバッテリー消耗の一因。不要アプリは定期的に削除を。
URLリンク(prtimes.jp)
Androidスマホのキャリアアプリが1GB以上データ通信!?削除・無効化できるアプリ一覧
URLリンク(sp1.jp)

953:デフォルトの名無しさん
21/03/13 09:00:19.17 rQmPEF49.net
詫びソースコードコメント 1件
アイミョン
[KS108-054]
テーマ:冒険者の広場・DQXショップ2020/02/17 16:22
今月になってから急にシステム障害が多発しており、運営としては説明責任を果たすべきと考えます。
URLリンク(hiroba.dqx.jp)
不具合を出した個所とその修正箇所の両方を「詫びソースコード」として開示するのです。
ソースコードも企業の重要な著作物ですが、だからこそ開示して詫びることが大切です。
それと同時にシステムの不具合がなぜ多発しているのかを、プレイヤーも一緒に考えるのです。
バンダイナムコゲームスの『ドラゴンボールZ ドッカンバトル』を見習うべきです。

URLリンク(i.imgur.com)

954:デフォルトの名無しさん
21/03/13 09:18:08.62 tBGlpruK.net
キチガイだなw

955:デフォルトの名無しさん
21/03/13 10:00:15.70 7EYMzEJd.net
スタッフの大人の対応w

956:デフォルトの名無しさん
21/03/14 09:42:47.84 BsjTGNRz.net
ここに書かれた罵詈雑言と不要な議論の文字列
これがまさにクソコードだ

957:デフォルトの名無しさん
21/03/14 10:12:49.00 nT6f8vWc.net
>>921
2008以降になるとまともな和書殆ど無いよな、Amazonで見たら★2でわろた
英語なら20冊くらい引っかかって高評価だけど学術系出版社だから¥10000~
俺もコンパイラマニュアルしか読んでないわ

958:デフォルトの名無しさん
21/03/14 10:29:30.32 u05Cu7nI.net
クソコードの例
変数を取り違えて値を設定し、途中で本来の値を設定し直すコードが存在する。

959:デフォルトの名無しさん
21/03/14 11:56:43.59 NVyYwYtr.net
>>948
デッドコードの一種だね
値を取り違えて設定してることや
本来の値を設定し直してることが分かるようなら
たいしたクソではなさそう

960:デフォルトの名無しさん
21/03/14 12:25:06.62 mqW1umpN.net
フォートラン並みの配列演算記述ができるJuliaやPython/scipyが出てきたから、ガチる人以外はそっちに流れたんだろ
Matlabもフォートラン並みに高級だけどかなり高いし、プラットフォームが限られる
特にJuliaはCじゃなくフォートランの慣習に合わせてるし移行の敷居が低い

961:デフォルトの名無しさん
21/03/14 13:50:22.02 IL1Rx7pe.net
Matlab, R → Python → Julia
Matlab, Rは、もうダメ。
MIT は、Julia へ行ってる

962:デフォルトの名無しさん
21/03/14 19:53:13.79 u05Cu7nI.net
>>949
10万行のコードを解析してわかったことだけどね。

963:デフォルトの名無しさん
21/03/14 21:04:29.30 FTgLqn2Y.net
>>11
constくそワロタ

964:デフォルトの名無しさん
21/03/14 22:59:16.59 SWD4O/qm.net
>>952
それがほんとなら根本の問題は別の所にあるよね
根本原因を究明できて再発防止策がとれたなら役に立ったクソコードということになる

965:デフォルトの名無しさん
21/03/15 07:24:19.90 AgY39MSU.net
>>953
なぜconstがダメなの?

966:デフォルトの名無しさん
21/03/15 08:19:07.60 unBa9C5h.net
覗いただけだけどテストコード不要論を唱えるプログラマがこの世に存在するとはな..
プログラマつっても世の中には色んな奴いるんだな

967:デフォルトの名無しさん
21/03/15 09:06:01.57 wTgsCYbG.net
>>955
JS知らないやつだからほっといてあげて

968:デフォルトの名無しさん
21/03/15 09:50:06.58 d7wExFeq.net
>>956
いやいらんでしょ
そのテストコードのテストはしなくてレビューでとか言ってる奴いたけど(笑)
結局それが正しいとはなぜ言えるのか?

969:デフォルトの名無しさん
21/03/15 10:14:52.08 hBbAwZTG.net
テストコードがかなりのプログラムだとしらないやつがいるから仕方ない。

970:デフォルトの名無しさん
21/03/15 10:27:24.28 0wiZhmNk.net
>>958
正しいと言える必要なんてないからね
テストの基本

971:デフォルトの名無しさん
21/03/15 10:39:05.01 unBa9C5h.net
そもそもテストって想定どうりの動きをしてくれるかを確かめる為に書くんでしょ
テストコードなんて書く必要ないと思うならそれでいいし、テストなんて手動でいいと思ってる現場と規模感ならそれでいいんじゃない?

972:デフォルトの名無しさん
21/03/15 10:52:20.05 unBa9C5h.net
あとテストコードのテストって何?
テストコードを走らせて想定通りに動けば完了だよ
コードレビューはするでしょう
テストコードのテストコードを書けよという意味で言ったの?

973:デフォルトの名無しさん
21/03/15 11:44:06.79 bRJV5TtK.net
>>958
>>255に論理的に反論してみ

974:デフォルトの名無しさん
21/03/15 13:03:04.99 QmxS+DUu.net
>>961
テストは手動でいい・・・現場の方針でしかない
自動テストしないと再テストに時間がかかる・・・事実

再テストに時間がかかるがテストは手動でやる・・・アホな現場の方針でしかない
というだけだよ

975:デフォルトの名無しさん
21/03/15 13:32:11.56 d7wExFeq.net
>>963
その程度のことデバッグすれば分かるやん
テストコードを書くだけ無駄

976:デフォルトの名無しさん
21/03/15 13:37:22.63 QmxS+DUu.net
>>965
一回のデバッグの時間はどれくらいですか?

977:デフォルトの名無しさん
21/03/15 13:50:21.56 QmxS+DUu.net
もう降参かな?テストをしないでデバッグだけしてると
時間が膨大にかかるからねw
なによりテストしてないってことだから
エンバグしたことがわからない

978:デフォルトの名無しさん
21/03/15 13:52:10.06 bRJV5TtK.net
>>965
例えば千項目毎回テストするの?
そんな項目数がないような小規模案件ならなくてもいいかもねw
まさかリグレッションテストは不要だっていう主張なのかな?

979:デフォルトの名無しさん
21/03/15 13:58:05.35 QmxS+DUu.net
>>968
落ち着け。>>964はデバッグすると言ってる
テストしないでデバッグだけするんだ
テストはしないからテスト時間は0なのだ
やつはテストしないで製品をリリースしてるんだよ!
そしてバグが見つかったときに製品をリコールしてるんだよ
やつは組み込み系開発者だからな

980:デフォルトの名無しさん
21/03/15 14:47:18.91 uytQvjo+.net
世の中いろんな人がいるんだねえ

981:デフォルトの名無しさん
21/03/15 16:09:37.60 C+0mdEfW.net
テストコード組むのが上手いヤツはクラッカーに向いてる

982:デフォルトの名無しさん
21/03/15 19:12:39.86 m9WM8q4q.net
テストは甘えと、あわしろ氏が言ってたけどな。
間違えなければテストする必要が無い。

983:デフォルトの名無しさん
21/03/15 19:26:48.17 QmxS+DUu.net
間違えなければテストする必要が無い。
そしてテストしなければ間違えたことがわからないのだ
「バグは見つかりませんでした!」

984:デフォルトの名無しさん
21/03/15 19:32:28.24 m9WM8q4q.net
テストするってことは間違える前提で書いてるんだろ?
甘えすぎだわ。

985:デフォルトの名無しさん
21/03/15 19:35:41.62 QmxS+DUu.net
マジそれ
事故る前提で車を乗ってるやつが多すぎ

986:デフォルトの名無しさん
21/03/15 20:08:51.50 +SM2oHa/.net
自動テストは適当で良い、どうせバグはない

987:デフォルトの名無しさん
21/03/15 20:10:26.44 +SM2oHa/.net
それよりも手動の総合テストを頑張ったが良い、自動テストはコーダの自己満でしかない、ユーザと向き合ってないコミュ症の底辺がやること

988:デフォルトの名無しさん
21/03/15 20:11:36.50 +SM2oHa/.net
俺たちはシステムをデザインしてるんだという大局感が大事

989:デフォルトの名無しさん
21/03/15 20:12:57.03 QmxS+DUu.net
>>977
手動の総合テストにどれだけ時間がかかりますか?
まだこの質問に答えてもらってませんよ?

990:デフォルトの名無しさん
21/03/15 20:13:22.23 +SM2oHa/.net
ロケット打ち上げて爆発させるのがシステム開発�


991:フイテレーションなんだよ



992:デフォルトの名無しさん
21/03/15 20:14:03.52 +SM2oHa/.net
>>979
スコープとかものによるんじゃないかな

993:デフォルトの名無しさん
21/03/15 20:15:04.67 +SM2oHa/.net
底辺コーダはスコープと聞いて変数しか思い浮かばんだろwww

994:デフォルトの名無しさん
21/03/15 20:16:13.61 QmxS+DUu.net
>>981
スコープによるなら
○○の場合は、これぐらいとか
答えられるだろw
お前の実際の話をすればいいんだよ
手動テストしてないのか?

995:デフォルトの名無しさん
21/03/15 20:17:04.89 +SM2oHa/.net
>>983
〇〇には何を入れればいいの?おん?

996:デフォルトの名無しさん
21/03/15 20:18:08.93 QmxS+DUu.net
>>984
自分でスコープによるといっただろ
何も思いついてないのにスコープって言ったんか?

997:デフォルトの名無しさん
21/03/15 20:19:31.02 +SM2oHa/.net
>>985
スコープがなんなのかわかってないようだねwww

998:デフォルトの名無しさん
21/03/15 20:20:15.36 +SM2oHa/.net
スコープをまず説明してみwwwきちんと説明できたらなぜ○○に入れられないか自ずとわかるから

999:デフォルトの名無しさん
21/03/15 20:20:30.62 +SM2oHa/.net
ほれほれはよせいよw

1000:デフォルトの名無しさん
21/03/15 20:20:41.38 QmxS+DUu.net
981 名前:デフォルトの名無しさん[sage] 投稿日:2021/03/15(月) 20:14:03.52 ID:+SM2oHa/ [5/8]
>>979
スコープとかものによるんじゃないかな
↑「じゃあ○○(スコープ)の場合はこれぐらいと言ってください。」
986 返信:デフォルトの名無しさん[] 投稿日:2021/03/15(月) 20:19:31.02 ID:+SM2oHa/ [8/8]
>>985
スコープがなんなのかわかってないようだねwww
↑「わかってるお前が言ってください。」

1001:デフォルトの名無しさん
21/03/15 20:20:52.69 +SM2oHa/.net
スコープの説明責任はあなたにありまぁす!

1002:デフォルトの名無しさん
21/03/15 20:21:23.01 +SM2oHa/.net
>>989
あ、やっぱわかってないのな

1003:デフォルトの名無しさん
21/03/15 20:21:23.96 QmxS+DUu.net
>>990
お前がスコープが何なのかわかってないのがはっきりしたなw

1004:デフォルトの名無しさん
21/03/15 20:22:28.66 yk6Lta+7.net
答えられないならもうスコープについては答えなくていいよ
お前の実際の話をすればいいんだよ
実際の手動テストにどれくらいかかってるのか言え 
スコープはどれでもいい

1005:デフォルトの名無しさん
21/03/15 20:22:52.58 +SM2oHa/.net
>>992
〇〇を言ってくださいと君は言ったわけだがスコープの定義によりそのようなことはできないと述べたよ
なぜできないかはスコープの定義から自明なんだけど、君はスコープを何だと思ってるのかな?おん?

1006:デフォルトの名無しさん
21/03/15 20:23:33.49 sDtoJkVU.net
あと逃げるなよ?
実際の手動テストにどれくらいかかってるのか  
いうだけなんだから簡単だろ  

1007:デフォルトの名無しさん
21/03/15 20:24:23.98 +SM2oHa/.net
>>993
君は答えなくてはいけないよ、スコープとはなにか!!(一喝)

1008:デフォルトの名無しさん
21/03/15 20:24:28.31 sDtoJkVU.net
>>994
もうすでにスコープの話は不要と言いました。
実際の手動テストにどれくらい時間がかかってるんですか? 

1009:デフォルトの名無しさん
21/03/15 20:24:50.46 sDtoJkVU.net
どうして実際の手動テストにどれくらい時間がかかってるか言えないんですか?
膨大な時間がかかってるからですよね

1010:デフォルトの名無しさん
21/03/15 20:25:12.18 sDtoJkVU.net
手動テストは時間がかかることが証明された
反論あるならどーぞ(笑)

1011:デフォルトの名無しさん
21/03/15 20:25:24.05 sDtoJkVU.net
まあどうせ逃げるんやろな

1012:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 44日 2時間 52分 19秒

1013:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch