はてなキーワード: デバッグとは
ちょっと前に
っていう増田で皆が盛り上がってたよね。
これなにもおかしくないでしょ?
「出産というリスキーな行為に対して正しくリスクを感じることが出来ない生物が滅びやすかった」
これってつまりは
「アクセルしかない車は滅んだ。ブレーキがないと運転手が死ぬから」
ってだけの話でしかないんだけど?
なんでこんなことを理解するのに「うーんうーん。難しいなあ」「皆さんどう思いますか」「やはり、バグだと思いますね」って議論してるん?
アホなん?
「もしもこの機能がなかったらどうなっていたかについて、ちゃんとシミュレートしてみる」だけでいいんだけど?
なんなん?
現実に存在しないものに対してのシミュレーターは最初の1動作までしか動かせないん?
つうか1動作分の処理でも「出産を軽んじたことで母体が死亡」は想定できない?
let a={
//宣言をする為の処理
};
のようにスコープを分けられるから、デバッグの時とかに「変数を宣言する為に使った変数」とかが残り続けることがない。
PHPだと可読性の為に変数の処理を段階的に分けようとすると、それがメソッド内に残り続けてデバッグをしようとしたときに非常に読みづらいしバグの原因になる。
・スコープを限定することができなくてデバッグの時に訳が分からんくなる。
・メソッドを分けて切り分ければよいのか?でもこれをするとパフォーマンスが低下するしな。
・型の情報がほぼ無いから知識を引き出す為の取っ掛かりがつかめない。
・Github Copilotに頼り切りになってる。それが無かった時はフレームワークの機能を丸暗記してたのか?
・RustやTypeScriptではVSCode上に表示されるドキュメントの情報を読みながらコードを書いていたので、それができないのは本当につらい。
これ作った。
YouTubeベストコメントTOP 5 [2023.05.11] #shorts
https://www.youtube.com/shorts/p1MTCvbwwdE
デイリーでYoutubeのおもしろコメントをランキング形式で紹介する動画。
インプットとなるデータはこないだ作ったYouTubeのコメントを収集してランキング形式で表示するサイトから引っ張ってきてる。
その際の日記:ChatGPT使ってずっと作ってみたかったWebサイト作った
動画つくるところは全部pythonで書いてて、そいつにランキングの順位の数字を5つ入力するとそれをもとに動画を作ってくれる仕組み。
こないだ作ったサイトがあんまり望んだ結果にならなかったため、もう少し面白いもの作れないか考えた。
サイトに表示されるコメントのうち秀逸なコメントを主観でピックアップしてまとめたらそこそこ面白くなるのではないかと考えた。
人が集まる場所でそのまとめを公開しようと思い動画化してyoutubeにアップロードすることにした。
ChatGPTに以下を教えてもらった
Niji journeyに以下を作ってもらった
ChatGPTは相変わらず自分が全然知らない領域の案内役として重宝した。最初にやりたいことの実現手段をいくつか提示してもらって、次に自分が決めた実現手段の骨格となるサンプルコードを提示してもらってそれを動かし、コードを自分で肉付けしつつエラーが出たらデバッグも手伝ってもらうという使い方をした。たまに間違ったことを言ってくるのでそのときにググったり公式リファレンスを見たりした。でも最初からググって調べるよりサクサクと事が運ぶし、なによりChatGPTに「こんなん作りたいんだけど?」と聞くとスッと正解に近いものを提示してくれるので最初の動き出しの心理的障壁がだいぶ減ってありがたかった。
AIイラスト生成サービスとしてNiji journeyは今回初めて使ってみたけど人物、動物、背景、小物の秀逸なイラストが出力できるので使い道がかなり幅広いと思った。今回スマホを持ったかわいい女の子の画像をたくさんかつ似た絵柄で欲しかったので以下の戦略で画像出力した。
これで似た絵柄でかついい感じにバリエーションの異なる画像が得られた。
封筒で来たけど、電子でも回答できるよって書いてたのであたぼうよ!!と思ったのでQRコードを読み込んでページを開く
15分くらいで終わるアンケートと書いてたので、ボリュームはそれなりだった
が、ページがわけられているわけではなく、スクロールで一番下に行くまで回答がずらーーーっと並んでいる
いつ途中でデータ飛ぶか気が気ではなかった
項目が多いのは仕方ないにしても、1に回答したら次は問3、と書かれているところでスクロールするのが手間なんだよ!
察してくれ!
極めつけは1と回答した方にだけお聞きしますの項目、1と回答しなくても「必須回答です」と表示が出て無理やり回答させられる
(画面上は「回答次第で選択肢が変わります」と記述があったが、機能してなかった)
(スマホだったからブラウザによってはjsあたりが動かなかったのだと予想する)
その他があれば「回答してないのに必須と言われたので回答しました」と記述し、その他がなければ仕方ないので適当な項目を選択した
虚偽の回答を強要させるシステムになってんの、気付いてくんないかなあ?
まちづくりに貢献するためにアンケートに協力お願いします〜とかどの口がと思うわ
と言うわけで、封筒も同封されていたけれど意地と怒りで電子アンケートを送信しましたとさ
電子アンケートの選択肢を増やすならちゃんとして欲しい、デバッグを特にちゃんとしてほしい
市民の声もクソもないよ
まあ母数からして参考になるような数だとも思ってないけど
まあ、バグを見つけ出すこともデバッグ工程の中の一過程ではあるけどな。まずは見つけないことにはバグは取り除けないわけだしな。(もちろん見つけただけでデバッグ終了とはならんけどw)
これはそう。っていうか、経験あったら、バグ見た瞬間に仮説が幾つか立つ(立たないときもある)
仮説が立ったらそれを検証するだけでよいし、コード見たらわかることも多い
まあ、うちのプロジェクトはユーザーからの適当な報告で、再現試験を担当してくださってるテストチームでも何をどうしたらどうなるのかがわからないような報告が結構あったので言語化できないような作業を終わらせてお茶を濁すことも必要だったりしたが
・デバッグが早い人は仮説を持っている。
そのとおり。てか当たりがつかなかったら何も始められない。
そういうバグの時は遠い遠い外堀から埋めていくしかない絶望系のバグ対応を覚悟する
結果が出たときに何をするかわかってるというより、次のフェーズへ移行するために可能性を閉じてく感覚
そういう系のバグはだいたい厄介(とったメモのほとんどは意味をなさない。が、メモがあるのとないのでは大違いなのは同意)
よくわからん
事実と(仮説、予想)を分ける?
(事実と仮説)、予想を分ける?
仮説や予想の捉え方が違うんだと思う。
すべての仮説を潰すなんてことはできないのは承知の介なので、あり得そうな仮説を潰す作業を行う。
そも仮説に自信がなかったら、(ここは言語化難しいが)潰しつつ、他の可能性への拡張になるような検証を混ぜたりもしてた
確かにデバッグ下手な人は、「私はこれが原因と決めました。だからこういう調査をしてみましたが結果が出ませんでした。(この原因をもっと深堀したいので)アプローチを変えてみます!」
みたいなこと言う人が多かった。”自分で決めた原因”に固執しちゃうというか、それを潰して他の可能性へ調査を移すって概念がなさそうな
逆にマストなので、はあ💢 ? って思うんだけど実際に使えない(使わない)やつ多かったなぁ
成功体験というか、自分がツールAが得意だったらツールBは使わない(覚えない)とか
使えるツールは環境に寄るからLinuxとかは全然知らないけど、「このバグだったら(原因はおそらくこうだから……っていうと甘やかしすぎだからそこはぼかして)このツールでこういうログとか……」って言っても、いや、別ツールでこういう方向で調べますって言われたり。
逆にバグ取りうまい人は、(原因が想像ついてるので)ワンチャンこういうツールあったらいいよねって、存在確認したり、環境が許せば自作したりしてた。
あと、根本的なことだと、ショートカットとか覚えないとかそういうところ
これは反論したい
早い人ほど、絞り込みがうまい(はず)
パラメータに重みをつけて、最有力候補と次点を一気にかけたり、最有力候補とおそらく無罪とを同時に変更してみたり
バグの内容によって、(最短ではないにしろ)効率を考えて変更する
検証用のバージョンを作るのに8時間とかかかるんだぜ、20年以上前とかだけど。
一作業一仮説とかでお客さんが待ってくれるのうらやましい。まあ、最近はそんな馬鹿みたいに時間がかかることは減ったから、一作業一仮説でもいいしわかりやすいんだろうけど。
何にも整理できずに、一気に複数個所を変える馬鹿が多いのは同意
そんなことはない。が、熱しやすく冷めやすいという意味では同意
核心に迫ってってる状況で熱くなれないやつなんか、デバッグが上手くなるわけない。
n=1なんで、なんの説得力もないですが、
”気にしい”が多かったですね。多分人の顔色うかがって生きてきた人がデバッグ上手い。もしくは、ゴーイングマイウェイの天才。
両極端。どっちも変人
・ゴールデンとかにもCM流れるような製品の開発プロジェクトで
・開発部隊(コーディングするような人が50人とか100人とかぐらいの規模)の
・(各プロジェクトにフェイクも含め1~3人ぐらい存在する)こいつに聞いたら間違いない、こいつに聞いてわからなかったら仕方がないっていう人の次くらいのポジションに居た