「たった1行のコードを直すのに何日かかってるんだ!」について

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が入っていればコーディング中に検出できる。

「たった1行のコードを直すのに何日かかってるんだ!」は正論?
問題の箇所がコーディング中に表示される

linterとは

lintとは、コンピュータプログラムなどのソースコードを読み込んで内容を分析し、問題点を指摘してくれる静的解析ツール。また、そのようなツールで解析を行うこと。ツールを指す場合は “linter” (リンター)と呼ぶこともある。

https://e-words.jp/w/lint.html

JavaScriptの場合はESLintが使用されることが多い。

linterで検出されるコードは問題外

1行のソースコードを直すのに何日もかかるのはあくまでlinterなどで問題を検出できないコードの場合であって、linterで検出されるコードは問題外なので注意が必要。

スキルの低い人だとESLintなどのlinterを入れていない人が多く、それが原因でエラーやバグを発生させているケースが多い。