X



【IT】本当にあった怖いプログラム(クソコード事例集)
■ このスレッドは過去ログ倉庫に格納されています
0001ノチラ ★
垢版 |
2018/04/27(金) 21:01:14.39ID:CAP_USER
命名規則に関連するクソコード
クラス名、メソッド名、変数名などのネーミングを誤るとクソコード認定されてしまいます。会社やプロジェクトごとに多少のルールの違いはあるにせよ、どこに行っても漏れなくクソコード認定されてしまうネーミングパターンのご紹介です。

ネーミングが「記号+番号」
クラス名や変数名はわかりやすい名称にしましょう。ネーミングを見て内容を推測できるようになっていることが重要です。「記号+番号」ではそれを見るだけでは何のプログラムであるかを推測することは不可能です。

ネーミングに日本語、英語、ローマ字が混在
プロジェクトによってクラス名や変数名のネーミングルールは異なりますので、何がダメだというわけではありませんが、自由すぎるネーミングを行うのはやめましょう。きちんとプロジェクトでルールを統一することは重要です。

またにクラス名や変数名に日本語を使用することは言語仕様上可能とはなっておりますが、アルファベットを使うことが慣習となっていることと、日本語だとIDEの補完機能がうまく機能しないことがあって非効率化の原因となりますので、避けた方が無難です。

ネーミングにスペルミスがある
ネーミングでスペルミスがあると、後でソースコードから文字列で該当箇所を検索する時に検索にヒットせず、改修漏れの原因にもなります。正しいスペルと間違ったスペルが混在していたりするともう最悪です。スペルミスのないように気をつけましょう。

ネーミングに個人名が使われている
ネーミングはプログラムの中身がわかるような名前にするという観点からも、プログラムの中に自分の名前にすることは適切ではないのでやめましょう。

またソースコードレビューの時に思いがけず恥ずかしい思いをすることになるかもしれません。私は新人の時に「yonemura.sh」という名前で自分用に作ったシェルが他社に買い取られることになってしまい、他の会社のエンジニア20名くらいの前で「よねむらシェルとは・・・」と説明会で大きな声で読み上げるはめになって大変恥ずかしい思いをしたことがあります。

個人で使うプログラムでもプログラムの中身を表した無難なネーミングにしておくことを強くお勧めします。

ネーミングに番号やアルファベットの連番が使われている
クラスや変数のネーミングに、1からの連番やaからの連番を使うと、クラスや変数の中身を推測することが不可能になってしまうのでやめましょう。こういうことをすると後でそのプログラムをメンテナンスする人に、一々プログラムの処理を細かく解析することを強いることとなり、「このクソコード書いたやつまじで氏ね」と言われてしまいますのでやめましょう。

可読性に関連するクソコード
プログラムは後でメンテナンスするためにも、読みやすく書くことが非常に重要です。処理の内容だけ見ると読みやすくても読みにくくても実行される内容は同じかもしれませんが、読みやすいソースコードは改修の工数を下げますし、バグが混入するリスクも下げてくれます。

ネストが異様に深い
ソースコードの中にネストが何重にもなっている箇所があると可読性を下げてしまいます。ネストを何重まで許可するかはプロジェクトによって異なりますが、個人的には3重か4重くらいまでにおさまるようにコーディングするよう心がけていました。

これとセットで「1行の文字数は80文字まで」みたいなコーディング規約があるとさらにカオスな感じになってきます。ネストが10階層+1行80文字までとか、考えただけでも嫌になりますね。

インデントがずれている
今どきエディタが良い感じにインデントしてくれるのに、まさかインデントがずれているソースコードなんて存在しないと信じたいところですが、昔作られたソースコードだとそういう化石みたいなクソコードにお目にかかることはあるようですね。

カッコの閉じ位置のインデントがズレていたりすると、著しく可読性を下げますし、コードの解析を誤るリスクも増えてしまいます。こういうことをすると漏れなくクソコード認定されてしまうでしょう。

1つのメソッドが異様に長い
たまに1つのメソッドが異様に長いソースコードにお目にかかることがあります。私の個人的な感想だと某国にオフショア開発に出されてウミガメのように日本に帰ってきたソースコードにそういうメソッド分割の概念が消失してしまったかのようなソースコードが多いように思います。

1つのメソッドの長さが数千行にも及ぶような男前なソースコードにバグが混入してしまい、解析及び改修をしなければならなくなった時には絶望するしかありませんね。
以下ソース
https://axia.co.jp/2018-04-27
0101名刺は切らしておりまして
垢版 |
2018/04/28(土) 00:40:27.18ID:Hgf6ZlsB
状態と振る舞いが全カイチンになっていて、外のクラスから破壊的操作が呼び出し可能なクラスを知識不足で作成する人、分かっているのに事無かれ追随で作成する人。
0103名刺は切らしておりまして
垢版 |
2018/04/28(土) 01:01:28.52ID:hGs4G+GM
AからZの1文字の変数名しか使えなかったあのころが懐かしい
0104名刺は切らしておりまして
垢版 |
2018/04/28(土) 01:03:41.11ID:eqLHgnvo
C#で戻り値を使わず全部refで処理してる
理解に苦しむ
0105名刺は切らしておりまして
垢版 |
2018/04/28(土) 01:10:44.20ID:AkMHGfyn
>>104
cでポインター慣れしてる人の書きがちなコード
若しくはリソース少ない中での最適化コード(リソース少ないとこでC#はそもそも使わんか)
0106名刺は切らしておりまして
垢版 |
2018/04/28(土) 01:20:26.20ID:d4VMKQQ3
while((*ptr=*ptr=='^'?' ':*++ptr)!='\0');
さて何が起こるでしょう
0107名刺は切らしておりまして
垢版 |
2018/04/28(土) 01:29:08.84ID:nk+vEPTZ
DRY(Dont Repeat Yet)ってRailsの概念のひとつで、
個人的にはこんなの当たり前にやるもんだと思ってたけど
モノシリックなプログラムが好きな人間がいるな。

あれなんなの?

あと、MVCフレームワークで、コントローラが異様に長いプログラムって
結構巷にあふれている気がする
0108名刺は切らしておりまして
垢版 |
2018/04/28(土) 01:38:55.11ID:zAnO1Wu8
C言語だが…

その1
20個グローバル変数に代入しまくりの4000行の関数。
ただし、そのグローバル変数は他関数から全く参照されない。
呼び出し元で戻り値を参照してるが、その値は常に0。
完全に冗長なゴミ。

その2
実装意図がわからない、謎の値補正関数。
その処理を通ると使用と微妙に異なる値を出力する。
50行程度だがロジックの意図がわからない。
コメントを信じるなら、実装者は他部署の管理職。
試しにコメントアウトしたところ過去製品で原因不明といわれていた4個の不具合が解消。
ゴミというか悪性腫瘍。
0109名刺は切らしておりまして
垢版 |
2018/04/28(土) 01:39:54.29ID:BNNvk1iq
物知りックじゃなくて
モノリシック
0111名刺は切らしておりまして
垢版 |
2018/04/28(土) 01:42:23.51ID:ksqex9PZ
大抵オブジェクト指向設計を正しく理解できていない上に、
何か1つ, 2つの言語しか習得していない(習得する気がない)人だと、
品質の低いコードを書く、というより品質が低いということを理解していない
0112名刺は切らしておりまして
垢版 |
2018/04/28(土) 01:52:18.54ID:PUwWFmmT
C言語の開発者が「create」ってスペルミスしたのがそのまま使われてる
0113名刺は切らしておりまして
垢版 |
2018/04/28(土) 01:53:37.21ID:nk+vEPTZ
あと、BASIC回顧するのもいいし、C/C++の低レベルプログラミングが好きなのもいいけど
いい加減現代プログラミングは関数型言語とオブジェクト指向の理解は必須だということ理解してください。

この二つプログラミングパラダイムは1980年に出てきた概念で
最初と今とで違う部分もあるけど、だいたい変わっていなくて
これを理解している人は50代でも最新の言語にもついていけるのだが・・・

そこらへん勉強していなくてCOBOL一本やりとかいう人間が最悪
0114名刺は切らしておりまして
垢版 |
2018/04/28(土) 01:55:00.86ID:nejpxY1Z
ソフトウェア開発には規律と統制が必要だ。
決められたルールを全員で守る必要がある。
プロジェクトに一人でも頭の悪い奴や無責任なやつがいたら破綻する。
だから大半のプロジェクトはグダグダなのだ。

ソフトウェア開発に天才はいらない。それはむしろ有害。
必要なのは一握りのそれなりに優秀なやつらと、大勢の真面目な歯車。
天才は地味な仕事を真面目にコツコツやれないだろうからね。
0115名刺は切らしておりまして
垢版 |
2018/04/28(土) 01:58:05.02ID:pU2xq79H
// おまじない。消すな
0116名刺は切らしておりまして
垢版 |
2018/04/28(土) 02:05:11.38ID:pyzINtbi
俺なんぞ処理時間制限対策の為に
割り込みルーチン内でスタック戻して割り込みフラグ戻して
メインルーチンに飛ばすソフトを書いたよ
大体5.1MHz動作の4bitマシンにCRC計算なんぞさせんなよと思ったよ
0118名刺は切らしておりまして
垢版 |
2018/04/28(土) 02:11:31.84ID:LSjs9KYj
>>88 >ネーミングが「記号+番号」
防で出会った。完全に一対一で対応するフローチャートがある。

>>100
変数名の文字数が少ない方が早いとかもあった気がする

>>108
>20個グローバル変数に代入しまくりの4000行の関数。
>ただし、そのグローバル変数は他関数から全く参照されない。
デバッグ用じゃね?常に同じメモリ領域を監視すりゃいいわけだし。ロジアナでバス監視も出来る。
>呼び出し元で戻り値を参照してるが、その値は常に0。
正常は0、エラーは負。正常終了しか実装してないから0返してるんだろ。
0119名刺は切らしておりまして
垢版 |
2018/04/28(土) 02:13:11.58ID:wIq/CFeK
>>107
流石に最近はそういうのは見ない気が理由は主に2つですね。
1つは多くのMVCフレームワークではMの部分に自由度を持たせてありまして、
作るものや利用するライブラリに合わせて自分たちで設計してねとなっているからでしょうね(;^_^A・・・
そういう状況でMの責務が分かってない人たちが作るとロジックをあれこれCに実装しちゃうわけです。
Mを実装しなくてもプログラム自体は動きますからね。Cからデータアクセスとか余裕な感じで(;^_^A・・・
後からその機能をAPI化しようとしても難しくなったり。

2つめは1とも関連するのですが新規開発時にスモールスタートの低予算でとにかく動くものを作らねばならなかったとかです(;^_^A
予算的にCIなど考慮したことのないプログラマーしか呼べない状況で開発されたとかです。
チャチャっと最低限の設計だけでもすれば良いものを元受けがスキル不足でその作業が必要な意味を理解できなかったり。
0120名刺は切らしておりまして
垢版 |
2018/04/28(土) 02:14:20.31ID:LSjs9KYj
>ネーミングに個人名が使われている
一番使われている個人名は後藤、異論は認めない。
0121名刺は切らしておりまして
垢版 |
2018/04/28(土) 02:21:11.21ID:g86duJeF
typescriptが流行る前のjavascriptはひどかったなぁ
他人が書いたコードを修正・改造するのが苦痛でしかなかった
0122名刺は切らしておりまして
垢版 |
2018/04/28(土) 02:41:39.99ID:5UXGW+rV
>>66
副作用のあるgetter がグローバル変数を触るとこうなる

// a と b は別のインスタンスとする
// どちらも count プロパティをもっている
x = a.count
y = b.count



y = b.count
x = a.count

で、x,y の値が変わる可能性が生じることになる。挙動が全く予測できない。
0123名刺は切らしておりまして
垢版 |
2018/04/28(土) 02:46:38.04ID:9GSs03FX
>>122
それは普通にわかる
0124名刺は切らしておりまして
垢版 |
2018/04/28(土) 02:57:29.00ID:NYPyA2x/
>>115
組み込みでI/Oポート設定とかがハード設計者しかわけわかんないときにはたまにある
そして私もハード設計者だ、スマヌ(だって低予算なんだもん、むりくり入れないとはいらないんだよ!)
0125名刺は切らしておりまして
垢版 |
2018/04/28(土) 03:07:35.94ID:7xqZZ3EZ
>>107
Don't Repeat Yourself
でしょ
たぶんしってるけどふと間違ったのだと思うけど
0126名刺は切らしておりまして
垢版 |
2018/04/28(土) 03:15:26.61ID:7xqZZ3EZ
>>81
確かにそうだな
俺もキャッシュでよくやる
っていうかキャッシュ以外はまずやらんかな

でもGetterでグローバル変数ってのが余りにも突拍子ないからようわからんです
色々説明してる人もいるけど、そんな変態コード
0127名刺は切らしておりまして
垢版 |
2018/04/28(土) 03:19:29.21ID:7xqZZ3EZ
>>82
それもrouteの読み方はルートじゃなくてラウトってオチ
0128名刺は切らしておりまして
垢版 |
2018/04/28(土) 03:22:32.92ID:YJn5Adyr
昔々べーしっくんとかいう雑誌だったかで、1行256文字に詰め込むプログラムってのが
あったな
0129名刺は切らしておりまして
垢版 |
2018/04/28(土) 03:29:02.69ID:8BHy3XuF
【朗報】”この銘柄”が3日後に爆上げ↑です。

しばらく下落トレンドでジリ貧だった仮想通貨の市場が遂に上昇方向に来ましたね。

このタイミングでビックニュースです。どの通貨銘柄がいつ爆上げするのか?全部教えてくれる厳選情報配信サービスが今だけ無料にてリリースされています。https://tknk.io/7EHM

北米やアメリカの大口投資家や機関投資家、ファンドとのコネクションを有し海外の凄腕専属アナリストが在中する仮想通貨分析機関が行なっている

有料情報配信サービスなのですが
(しかも3000USD/月額で結構高額)

日本グランドオープンを記念して今だけ何と
「月額3000USD→0円」
という形で受けることができます。
https://tknk.io/7EHM

サービスを運営しているのは「THE DAWN」という組織。海外の仮想通貨市場においては知る人ぞ知る優良情報配信機関です。(厳選された情報だけ届きます)ちなみにですが・・・

今現在リアルタイムで「とある銘柄に関する情報」がアナウンスされています。非常に希少価値が高く
資産激増に繋がる情報ですが緊急度が高いので希望される方はお早めに下記よりどうぞ。
https://tknk.io/7EHM

【爆上げコイン配信システム ACT-S】も完全無料プレゼントキャンペーン中!!https://tknk.io/IdHB
※今なら仮想通貨投資で失敗しやすい落とし穴のチェックリストもプレゼント!

【仮想通貨自動収集ソフトも今だけ無料!】
https://tknk.io/l3iQ
0130名刺は切らしておりまして
垢版 |
2018/04/28(土) 03:49:53.20ID:3YGUGeL5
>>38
一緒に働きたくないのはA
コードを直す方の身にもなってくれ
0131名刺は切らしておりまして
垢版 |
2018/04/28(土) 04:08:46.21ID:rNrYlU53
クライアントとしては、安くて、ちゃんと動いて、納期守ってくれれば

コードが汚かろうが、そんなことはどうでもいいんだよ
0132名刺は切らしておりまして
垢版 |
2018/04/28(土) 04:09:55.91ID:RscB4/P3
int num, val;

switch(num){
LOOP1:
if(val){
case 1:
break;
case 2:
break;
}else{
case 3:
LOOP2:
break;
}
default:
goto LOOP1;
break;
}
0133名刺は切らしておりまして
垢版 |
2018/04/28(土) 04:20:24.43ID:VyMbTErz
>>131
一般的なプログラムは書いたらお終いではなく、デバッグしたり、
数年後に変更したりしますので・・・。
0135名刺は切らしておりまして
垢版 |
2018/04/28(土) 04:50:44.63ID:FIBVnmd7
xxx_flagという名前のパラメタなのに取りうる値が 1 or 2 or 3
0136名刺は切らしておりまして
垢版 |
2018/04/28(土) 05:03:20.58ID:B/C71iR5
昔のコード見ることで歴史感やプログラマーの感覚を知ることも大事だろ思う
必ずしもスレで言ってることだ正しいとは思えなくなる事もある

ネーミングはプログラマーのセンスだしあだ名みたいなネーミングでアメリカのコード見てカッコイイなと思ったこともある
プログラム構造も限りある各種リソース内で有効利用するべく例外的にわかりにくくなることもある

自分の経験からだとメンテしやすいからとかいって全体や詳細機能を疎かにしたまま
修正することで発生するバグの発覚や特定の難しさが困難になることもあげておきたい
0137名刺は切らしておりまして
垢版 |
2018/04/28(土) 05:29:22.96ID:NOCDRPDd
なんかよくわからんがそれっぽく動いているから良し!
0138名刺は切らしておりまして
垢版 |
2018/04/28(土) 06:43:15.71ID:n/ISlhhu
オープンソースの仮想通貨もコードを見ると開発の能力がわかる
新興のパンプだけの通貨は本当にクソコード
0140名刺は切らしておりまして
垢版 |
2018/04/28(土) 07:12:53.56ID:7xqZZ3EZ
>>135
だったらどうすればいいのっと
0141名刺は切らしておりまして
垢版 |
2018/04/28(土) 07:16:35.11ID:7xqZZ3EZ
>>38
Aとは絶対に働きたくない、どこにでもいるタダのバカ
Bのような人は滅多にいないから、話を聞くだけでもためになる
注意を聞き入れてコードを直すかどうかは、Bの立場による
Bがただのメンバーなのかリーダーなのか・・・
0142名刺は切らしておりまして
垢版 |
2018/04/28(土) 07:18:34.00ID:7xqZZ3EZ
>>108
その4つはなおったが他に不具合を発生させたかもね
0143名刺は切らしておりまして
垢版 |
2018/04/28(土) 07:25:31.62ID:F/M6a4gm
>>1
経験上インデントに文句言うエンジニアはスキルが低い。

関数名が記号+数字で統一されているプロジェクトに配属された奴が言うには
最初はアホかと思ったけどドキュメントが完璧に整備されているし命名規則が決まっているので数字を聞けばどのサブシステムなのかすぐにわかるので効率がとても良かった。
0144名刺は切らしておりまして
垢版 |
2018/04/28(土) 07:30:14.59ID:P1JxCIIt
C#で、文字列中の{0}や{1}にパラメタ文字列を埋め込める便利な"自作"関数を重宝してる会社
さすが、丸○PC請負会社のクオリティーや〜wって思った
0147名刺は切らしておりまして
垢版 |
2018/04/28(土) 07:57:09.96ID:mkrCgmc5
>>38
A嫌い。Bはカチーンとくるけど、クソコード書かないなら受け入れろ。
0148名刺は切らしておりまして
垢版 |
2018/04/28(土) 08:00:16.96ID:M3m0rrQ9
客から1ヶ月で動作させるのに1万ステップ書かないと動かないコード作ってくれって言われた時は、設計とか検討をすっ飛ばして、とにかく動く奴作ったな。
途中、見積りで1万越えそうなんで残業させて下さい。
1万越えるなら設計しろ!と言われたら、設計だけして逃げますよ?って脅したなぁ。
一番面倒だったのが、変数名を意味の通る英単語で並べる作業。
お陰で英語力が目茶苦茶着いたな
0149名刺は切らしておりまして
垢版 |
2018/04/28(土) 08:09:05.16ID:mkrCgmc5
>>143
インデント大事。一目で何書いてあるか読み取れる。
インデントメチャクチャが好きなお前は
ソース読むのに時間がかかり、さらにお前が作ったバグを誰かが修正しただけ。
なのに勘違いしてる愚鈍なお前。
インデントメチャクチャなのはバグの温床になる。
0150名刺は切らしておりまして
垢版 |
2018/04/28(土) 08:09:32.10ID:XitEDRWG
>>135
1bitのフラグが2つ入ってるんだろう
0151名刺は切らしておりまして
垢版 |
2018/04/28(土) 08:15:04.86ID:0jc2x/XL
画面に通知もしないし、ログも吐かない。
単に例外の握り潰しを意図して記述されたtry-catch。
全てのメソッドでそれやって客に納品したとか平気でのたまう人に会ったことがあるなー
0152名刺は切らしておりまして
垢版 |
2018/04/28(土) 08:19:31.85ID:gfDS5zVu
>>87

昔、VB6のシステムで、DAOだかRDOの制限のSQLのクエリの文字数の制限(32,767バイト)をオーバーさせた
奴を知っている。どうやったらそんな長いクエリができるのかと。
0153名刺は切らしておりまして
垢版 |
2018/04/28(土) 08:30:54.11ID:0jc2x/XL
ネクタイしめて、プログラミングを製造と呼ぶところは大概ヒドイ。
クソコード以前にクソアーキテクチャと、隠しきれず随所から滲み出ているプログラミングへの見下しから物事ははじまっている。
0154名刺は切らしておりまして
垢版 |
2018/04/28(土) 08:32:44.74ID:T9zE6Yzf
>>1

ざっと目を通したが(組織内で)統一されたコーディングスタンダードがないのが原因
決まったコーディングスタンダードを破りまくる人間なんて和洋を問わず見たことも聞いたこともない
スタンダードがおかしいと疑義を呈するのは構わないし適度に組織を活発にするぐらいで、決定権者に経験値があれば
揉めることはありえない

コードについては適度に最適化されていれば気にはなることはないだろう
最適化されたコードは遠回りな事もするが、理屈は通ってるので問題になりえない

本来見るべきでない外部に対して意図的にコードを汚くする連中はごくたまにいるらしいので、
なぜ汚いかの本当の理由を察するのも必要

良く聞く議論は、コメント量がソースコードの8~9割以上を超える場合、ページスクロールの量が多くなるだけでなく
コメントとソースコードが混ざることが前提とする傾向があり、コメントがないと読めないソースコードが量産される

https://blog.codinghorror.com/coding-without-comments/
0157名刺は切らしておりまして
垢版 |
2018/04/28(土) 08:58:16.68ID:By/e1nF+
>またにクラス名や
ほんとだ、クソコードだ
0158名刺は切らしておりまして
垢版 |
2018/04/28(土) 09:20:33.55ID:oJmUJY5h
仕方ないかも知れないけど、プロジェクトごとにコーディングルールが違うのはつらいわ
{
0160名刺は切らしておりまして
垢版 |
2018/04/28(土) 09:23:07.96ID:Y0eKt38i
・丸々どっかの知らないシステムのソースコードが入ってて、そのクラスを拡張して使っている。
・丸々どっかの知らないシステムのソースコードが入ってて、その一部の関数を使っている。

昔、中国に外注出した時は、だいたいこれ。1ファイル数千行とかざら。
0161名刺は切らしておりまして
垢版 |
2018/04/28(土) 09:24:02.69ID:XuVNkchh
一般論として言えるのは、「自分は人間」って事を忘れているヤツがコーディングするとクソコードが量産される。
自分は人間だからヒューマンエラーを起すし半年後の自分がこのコード見て瞬時に理解できるかを考慮すると
クソコードは生まれない。

クソコードを書くヤツって大概自分自身が低脳であることに気がついていない。
まあ低脳って気が付くヤツは低脳じゃないんだけどなw
0162名刺は切らしておりまして
垢版 |
2018/04/28(土) 09:25:45.45ID:AblSpaz8
どんなにコードがクソだろうが、きちんと動いてるものに勝るものは無い
0163名刺は切らしておりまして
垢版 |
2018/04/28(土) 09:27:07.85ID:XuVNkchh
今使ってる外注のソースコードみたら関数名が

****01,****02,****03,****04・・・・ってなってたorz

コメントの書き方とかもMISRA風だったから、たぶん社内規約なんだろうけど
そういう所とは今後付き合えないな・・・
0164名刺は切らしておりまして
垢版 |
2018/04/28(土) 09:29:46.80ID:XuVNkchh
>>162
今現在動くのは当たり前
世の中で、最初にリリースしたまま何も修正されないソフトなんて殆ど無いよ?
だから改造したときに、どれくらい安全に改造できるかが大事

お前もソフト屋ならクソとミソの区別はしろよなw
(ソフト屋じゃなかったらごめん)
0165名刺は切らしておりまして
垢版 |
2018/04/28(土) 09:30:31.43ID:r+Aq4lze
SQL一発で済むものをわざわざカーソル作って繰り返し処理してるの見て
最初、なにしてんだろこれ?って理解できなかった。
0166名刺は切らしておりまして
垢版 |
2018/04/28(土) 09:33:25.44ID:XuVNkchh
>>151
ウチに出入りして業者のソースコードもそんな感じ
確実にtry/catchの悪用だよ

try/catchで例外もみ消すと、自分の想定していた以外のことが起こっても
プログラムが何も騒がないからわからないんだよね。
で市場に出してから不具合連発なんだけど理由がわからないという惨事になる。
0167名刺は切らしておりまして
垢版 |
2018/04/28(土) 09:34:16.30ID:Y0eKt38i
# なぜかこのif文があると動作する、削除禁止
if ( hoge == 0 ) {}


とかいうソースコードもたまに見た気がする。
でも、昔は実際に意味不明なエラーに意味不明な対策があったりした。
0168名刺は切らしておりまして
垢版 |
2018/04/28(土) 09:36:40.48ID:XuVNkchh
>>167
それね
たぶんコンパイラのバグを回避するためのモノだと思う
1行無駄な処理を入れるとコンパイル時に適正な最適化をしてくれるようになったりするよ
0169名刺は切らしておりまして
垢版 |
2018/04/28(土) 09:40:49.77ID:XuVNkchh
>>38
自分がソフトでメシを食っていくつもりならBを受入れろ
昔俺の職場にもAタイプとBタイプが居たがリーマンショックの折、Aは全員技術職から外されたよ
0170名刺は切らしておりまして
垢版 |
2018/04/28(土) 09:45:33.92ID:Y0eKt38i
>>168
まじか、なにその無理ゲー(汗
0171名刺は切らしておりまして
垢版 |
2018/04/28(土) 09:52:12.03ID:3I51DRoh
>>95
mikan、ringo、bananaを使っているやつはこの前見たよ
0173名刺は切らしておりまして
垢版 |
2018/04/28(土) 10:00:30.68ID:Q6M370F1
ITとかよく分かんないけど
やってきた成果物みたらそんなに苦労してるの
本当に阿保ばかりなんじゃないか?
Iモードとかゲームとかそんな大騒ぎするもんじゃないだろ。特許の検索とかはまだ分かるけど
電子カルテとか銀行システムとか1回発明したらそれで済む様にしろよ。自分らの業界で自作自演してるだけやん。人材じゃなくてコストと言われても当然だと思う。
0174名刺は切らしておりまして
垢版 |
2018/04/28(土) 10:02:49.96ID:Hv7h7aI1
変数名が、ayanami0、ayanami1、、、、、
0175名刺は切らしておりまして
垢版 |
2018/04/28(土) 10:03:56.08ID:G7wbdwEL
変数名が上司の悪口とか聞いたことあるけど
0177名刺は切らしておりまして
垢版 |
2018/04/28(土) 10:09:44.14ID:2c68c9UC
>>167
SJISのソースだとコンパイラによっては//コメントの末尾に0x5Cが含まれるマルチバイト文字があると次の行もコメント扱いされる
なのでコメント扱いされても困らない無駄な1行を入れたと思われる
0178名刺は切らしておりまして
垢版 |
2018/04/28(土) 10:12:55.25ID:nuVpnMKl
スペルミスというか、英語のはずがローマ字になってるやつ
0179名刺は切らしておりまして
垢版 |
2018/04/28(土) 10:16:13.79ID:D9svBvK7
うちの会社クラス名の規約が業務コードや処理コードを書けってなってる…
三項演算子も見づらいから禁止
頭固いおっさんが作ったんだろうけどアホすぎる
0180名刺は切らしておりまして
垢版 |
2018/04/28(土) 10:23:14.95ID:64tWrxnd
>>155
どうせ副作用があるんだろwww
慣れてない言語で踏みやすい地雷
0181名刺は切らしておりまして
垢版 |
2018/04/28(土) 10:27:58.29ID:wCd2CBOD
>>172
おえええええええ
昔の職場を思い出した
バージョン管理使っていてもこれ書くルールがあるからな意味分からん
0182名刺は切らしておりまして
垢版 |
2018/04/28(土) 10:32:07.44ID:wCd2CBOD
>>38
どう見てもAだろ
このスレ見てる時点でAいらない子じゃん
Bなんかそれこそここ見る連中と変わらんのだから
0183名刺は切らしておりまして
垢版 |
2018/04/28(土) 10:36:43.61ID:GmUR9BoC
>>165
そういうのあるよね
SQLで一発で済むのをプログラムで二次元配列に入れてひたすらループして集計してるってのがあったわ
0185名刺は切らしておりまして
垢版 |
2018/04/28(土) 10:42:31.11ID:XuVNkchh
>>184
それはまともに動かないからクソコード以前の問題
ここで言われてるクスコードってのは見た目では動くのが前提だろw
0187名刺は切らしておりまして
垢版 |
2018/04/28(土) 10:53:07.10ID:D/nfCkM6
>>185
クスコード可愛い( ´∀`)クスッ
0188名刺は切らしておりまして
垢版 |
2018/04/28(土) 10:59:49.95ID:XuVNkchh
>>187
昔書いたコードを改造しようと見たら未来の俺に対して謝罪しているコメントなんかがあって
クスっとくることあるw

「この処理には・・・略・・・結局何が言いたいというと設計に失敗しました。ごめんなさい」

なんて書いてあった時は笑ったけどねw
0189名刺は切らしておりまして
垢版 |
2018/04/28(土) 11:07:01.13ID:+iXu+5nc
>>77
1行幾らの時代には有用だった
0191名刺は切らしておりまして
垢版 |
2018/04/28(土) 11:11:55.26ID:HtuH0Ciw
ただ動くだけのプログラムなんて猿でも書けるからな。
他人も理解できるように設計できるかが人間様と猿の違い。
0192名刺は切らしておりまして
垢版 |
2018/04/28(土) 11:33:12.03ID:jrpJ5QOR
普通にfor使えばいいのにmapで回したり
やたら三項演算子使ったりするコード
0193名刺は切らしておりまして
垢版 |
2018/04/28(土) 11:34:48.35ID:+iXu+5nc
>>167
いや、金融系のプロジェクトで
とあるメーカーのシステムが
同じ状況だった
メーカー側の問題だったので
公にしないでコーディングしたが
取得したメモリ領域を一度0xffで
埋めてから使うという裏技が出来た
その関数名は『keep_clean』だ
0194名刺は切らしておりまして
垢版 |
2018/04/28(土) 11:37:45.70ID:ZQyoOy2+
変数のスコープとか変数の名前はよくあるけどな

JVMから外部コマンド呼んだりするキチガイは死んで欲しい
0195名刺は切らしておりまして
垢版 |
2018/04/28(土) 11:42:30.44ID:H0tOtl5l
>>38
A君とB君をペアでやらせる
0196名刺は切らしておりまして
垢版 |
2018/04/28(土) 11:45:13.25ID:+iXu+5nc
>>184
動的allocateを無限ループで自滅
悲しい思い出…
0197名刺は切らしておりまして
垢版 |
2018/04/28(土) 11:48:18.45ID:XuVNkchh
>>195
ウチはそれをやったけど、結局Aの方がブチ切れただけで何らAの改善はなかったよ
そしてリーマンショックで整理統合されてAは営業に回されてた。
Bの言い方も悪かったんだが、客観的にみてBのいう事は正しいので、それを受入れる度量と
指摘された問題点を問題として理解できる脳みそがなかったって事でリストラされたよ
0199名刺は切らしておりまして
垢版 |
2018/04/28(土) 12:07:30.58ID:PUwWFmmT
>>196
forkをループして死んだことがあるわ
0200名刺は切らしておりまして
垢版 |
2018/04/28(土) 12:12:00.86ID:+iXu+5nc
>>199
コールが重なると
えらいことになるからなw
100も入ればタヒぬ
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況