1行修正する際の作業時間について
最近エンジニアが1行のソースコードを直すのに何日もかかったとして、何でたった1行直すのに何日もかかってるんだ!とキレる人に関してのツイートが話題になっていた。
詳細はTogetterにまとめられている。
「たった1行のコードを直すのに何日かかってるんだ!」←これは砂漠に落ちた針1本を拾うようなものだという話 - Togetter
これを見ると「プログラムはたった1行のコードを直すのに何日もかかるのか」とプログラムに詳しくない人だと思う人もいそうだが、1行のコードでもすぐに直せるケースもあるので一概には言えない。
例えば以下のようなJavaScriptのコードが数万行のコード内にあるとする。
// ランダムで1から6を表示
var n = Math.floor(Math.random() * 6 + 1)
if (n = 1) {
console.log(`${n}: 1が出ました`)
} else {
console.log(`${n}: 1以外が出ました`)
}
このコードは if (n = 1) の部分が間違っているので「1が出ました」しか表示されない。
正しくは if (n === 1) なのだが、このような簡単な間違いはエディタにlinterが入っていればコーディング中に検出できる。
linterとは
lintとは、コンピュータプログラムなどのソースコードを読み込んで内容を分析し、問題点を指摘してくれる静的解析ツール。また、そのようなツールで解析を行うこと。ツールを指す場合は “linter” (リンター)と呼ぶこともある。
https://e-words.jp/w/lint.html
JavaScriptの場合はESLintが使用されることが多い。
linterで検出されるコードは問題外
1行のソースコードを直すのに何日もかかるのはあくまでlinterなどで問題を検出できないコードの場合であって、linterで検出されるコードは問題外なので注意が必要。
スキルの低い人だとESLintなどのlinterを入れていない人が多く、それが原因でエラーやバグを発生させているケースが多い。