アカウント名:
パスワード:
>まあ他人のクソコード見るのはあまり嫌いじゃ無い。自分の作った動かないコードは心が折れる。たしかに「見てるだけ」なら嫌じゃない。
しかし正しく動かない他人のクソコードを、正しく動かすことが自分の責任にされた場合、その作業は精神を激しく精神を消耗し、最後には作った奴を殺したくなる。
私も嫌いじゃない。特に実績のある現行システムを他言語に移植するとかで好きに作りなおして良い場合は楽しかったりする。
・画面ごとに異なる項目の入れ物変数をsharedで定義・case分岐してsharedの中身を書き換えるメソッドが存在・そのメソッドの行数が1万行以上・ちなみにオブジェクト指向言語
数が多いだけならまだまし。見たことある最低のソースコードは、Cで書かれていて、グローバル変数とあちこちの関数内のローカル変数が、同じ変数名で多様されてて、めちゃくちゃでした。
その最低のプログラムをまともに動くように直すという最低の仕事だったので、精神を激しく消耗しましたよ。
そりゃ、見るだけならいいけど、修正となると大変です。C言語でグローバル変数1個。int M[100];配列1個だけだ!しかもM[0]がなにとか決まってなくて、その時々によってかわる!まだ、グロバール変数100個の方がまし。(あっ、global_1,global_2で100個とかはなしね)
どっちかというとコーディングや技術的なことよりも、考え方でおどろいたことが、以下いずれも緊急の処置ではないチェックコードが合わないので、チェック直前に正解を代入する。(チェックになってない。原因を考えない)エラーがでるので、エラー出力や処理をとる。(正常にはうごいてない。エラー原因を考えない)データ記録エリアの後ろの方は、「当分つかわない」のでワークとして使用。(使う予定のエリアなのになぜそう考えたのかわからない。時限爆弾的に当然データ破壊。)※もっとあるけど、わざとバグいれて仕事ながびかせようとしてるんではないかと疑ったぐらい。でも本人は、なんとも思ってないことが
3000行のPHPで、コメントはもちろん、インデントが全く無いソースの改造を依頼されたときはかなりげんなりしました。1日目は置換スクリプト書いてインデントを入れ、ブロック構造を把握するところから・・・。if(...){if(...);if(...){else if(...); if(...){}}}なんて延々と続くコードを一目で理解しろなんて絶対無理
# しかもインデント整理したら、gotoがわらわらと・・・
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生unstable -- あるハッカー
3000行のPHP 1000行の関数 50個のグローバル変数 (スコア:1)
Re:3000行のPHP 1000行の関数 50個のグローバル変数 (スコア:3, すばらしい洞察)
>まあ他人のクソコード見るのはあまり嫌いじゃ無い。自分の作った動かないコードは心が折れる。
たしかに「見てるだけ」なら嫌じゃない。
しかし正しく動かない他人のクソコードを、
正しく動かすことが自分の責任にされた場合、
その作業は精神を激しく精神を消耗し、
最後には作った奴を殺したくなる。
Re:3000行のPHP 1000行の関数 50個のグローバル変数 (スコア:1)
私も嫌いじゃない。
特に実績のある現行システムを他言語に移植するとかで好きに作りなおして良い場合は楽しかったりする。
Re:3000行のPHP 1000行の関数 50個のグローバル変数 (スコア:1)
・画面ごとに異なる項目の入れ物変数をsharedで定義
・case分岐してsharedの中身を書き換えるメソッドが存在
・そのメソッドの行数が1万行以上
・ちなみにオブジェクト指向言語
Re: (スコア:0)
数が多いだけならまだまし。
見たことある最低のソースコードは、Cで書かれていて、グローバル変数とあちこちの関数内のローカル変数が、同じ変数名で多様されてて、めちゃくちゃでした。
その最低のプログラムをまともに動くように直すという最低の仕事だったので、精神を激しく消耗しましたよ。
Re: (スコア:0)
そりゃ、見るだけならいいけど、修正となると大変です。
C言語でグローバル変数1個。int M[100];配列1個だけだ!
しかもM[0]がなにとか決まってなくて、その時々によってかわる!
まだ、グロバール変数100個の方がまし。(あっ、global_1,global_2で100個とかはなしね)
どっちかというとコーディングや技術的なことよりも、考え方でおどろいたことが、
以下いずれも緊急の処置ではない
チェックコードが合わないので、チェック直前に正解を代入する。(チェックになってない。原因を考えない)
エラーがでるので、エラー出力や処理をとる。(正常にはうごいてない。エラー原因を考えない)
データ記録エリアの後ろの方は、「当分つかわない」のでワークとして使用。(使う予定のエリアなのになぜそう考えたのかわからない。時限爆弾的に当然データ破壊。)
※もっとあるけど、わざとバグいれて仕事ながびかせようとしてるんではないかと疑ったぐらい。でも本人は、なんとも思ってないことが
Re: (スコア:0)
3000行のPHPで、コメントはもちろん、インデントが全く無いソースの改造を依頼されたときはかなりげんなりしました。
1日目は置換スクリプト書いてインデントを入れ、ブロック構造を把握するところから・・・。
if(...){
if(...);
if(...){
else if(...); if(...){
}}}
なんて延々と続くコードを一目で理解しろなんて絶対無理
# しかもインデント整理したら、gotoがわらわらと・・・