エンジニアやってきた中で、以下のコードを超えるコードは見た事がない
— ひろし190cm@フルリモSEでCX-8乗り (@hiro_progra0524) June 5, 2021
int num = 8
// 不安なのでもう一回
num = 8
入れ直したところで全く意味ないやつですねw
— ∠にの@PG (@nino_pg) June 5, 2021
『動くからヨシ』みたいなコメントもあったりしませんか?
私が衝撃的で未だにネタにするのは
if(true){
}
です。
シンプルですが最初見た時は衝撃的でした(°д°) テスト用に通したのをそのまま忘れてたのか・・・
if(true){}
— ひろし190cm@フルリモSEでCX-8乗り (@hiro_progra0524) June 6, 2021
はめちゃくちゃですね!!
if要らんやんという!!
JavaScriptで変数定義してる時に、一回だと反応しなくて2回入れるとうまくいくということがありました。
— たきのー (@takinou0) June 5, 2021
テスト時のコードですが、こんな感じにしちゃってましたね。。。
理由としては、JavaScriptが参照してるライブラリがあって、それが答え返すのに時間がかかってたからのようです。処理中にスリープを1秒くらい挟んだら変数定義が安定するようになりました。
— たきのー (@takinou0) June 5, 2021
これはファームウェアや組込み装置でトラブった経験のある人ですね。num=8が実際に確定するまでのタイミングが特定できないのか、関数がコールされたときにまだnumの準備ができていなくて8が確定されないケースが稀にあるとかかもしれないです。
— Hiroshi Matsumura (@hmatsumu) June 5, 2021
これタイミング依存の問題が発生したのだと思いますが、装置が変わると異なる結果になる可能性が怖いです。実際のデバッグでこの手のタイミング調整は何度も指摘してやめさせたことがあります。心配なら期待する値が帰ってくるまで読み直すようにと。
— Hiroshi Matsumura (@hmatsumu) June 5, 2021
//入れるとなぜか動く
— だみぽ (@damipoppo) June 5, 2021
うん、不安になりますよね。
— だいち@嫁と息子が大好きエンジニア (@da_i_chi_dev) June 5, 2021
わかります。不安になりますよ。
でも、、
直前に書いとるやないかーいww
//これを消すとなぜか動かない
— キシリ (@ki_4_ri) June 5, 2021
見た事あります。
— 社長(仮) (@shyachyooooo) June 5, 2021
//ここでチェックしないと何故かエラーが出る。
とか^ ^
私は以下のコードみたことありますよ!
— きっしー (@honobono1212k) June 6, 2021
if(true == true){}
else{}
trueとtrueを比較して一致したからtrueを返却して
trueの方に処理が行くという…
// 心配なので念のため
— hrk (@GtgbSg) June 5, 2021
num = int(num)
コメント
指差し確認みたいなもんでしょ
コメントのつけ方が面白いだけ
コードとしては無駄なことをしてるだけでそこまでおかしいことはない
なんならデバドラとかだと変数に書き込んでもキャッシュに保存にされて変数に反映されないとかあるからコメントの意味も分からなくもない
まあその場合は同じ変数に二度書きこむのではなく変数を参照するタイミングでキャッシュクリアするけど
これを理解できずにネタにしてる時点でエンジニアとして察してしまう
ちゃんと正規のコンパイラを使って、かつこの部分のオプティマイズをしないように設定していますか?
エンジニア歴が浅いだけやろ…
そう言えば、前の処理が、時々、本の少し遅れるので、
// 不安なのでもう一回
num = 8 //変数に書き込んでもキャッシュに保存にされて変数に反映されないとかあるから //
の代用に以下を書いた事がある。
sleep(1)
どれもこれもなんとかく理由がわかるからなぁ
君ら古い話題に今更反応するの好きやな
↓
アセンブラならこんな心配無用
なんでタイミングの話に?
全然違いますよ。
別の処理でスタックエリアを壊してるんですよ。
一行入れたらうまく行く、デバッグ用printfを消したら動作しなくなった等は、ほとんどの場合、メモリ破壊をどこかの処理でやっている事が原因。
forやwhileで回している数が確保したテーブルの数を超える場合が無いか、テーブルデータの先頭ポインタを関数に渡している処理内で、確保したメモリエリア以上のデータを書き込んでいないかなどを確認しましょう。
スクリプトとかインタープリターな言語だと記憶装置がビジーな場合は処理落ちしたりするんだよ
バッチで動いてる昔のサーバーとか改修すると無意味なソースに意味が有ったりする
おまじないやで
ちゃんとやっときや
true == true
はtrueに適当なもん代入できちゃう魔境出身者だな
undefinedを信じる者は足下すくわれるとか
実はグローバル変数とローカル変数の区別がつけられてないだけとかw
次に引き継いだやつも不安だから付け足すかもな
ちょと仕事慣れてきて勘違いしてる痛い発現。
何様だよって。
うちにもいたわ。Kとかいう勘違い高卒君。
周りがチヤホヤしすぎると、こうなっちゃうんだよ。
経験則、と言うと信用できる気がするが、
シャーマニズム、と言うと不安になる。
int num
num=8 #8の理由
みたいに書くな
数値指定するならなんでその数値なのかコメント残したい