どうもこたにんです。
コード内のタイポは許されるのか否か
コーディングをしていると、タイポというものにたびたび遭遇します。
タイポ(typo)とは、印刷物の誤植を意味する英熟語 “typographical error” の俗な略語。転じて、キーボードのタイプミスなどで生じた英単語の綴り間違いや誤入力、誤記、日本語の誤変換などを指す。
業務でコーディングをしていると「タイポしてるぞ!」というのを目にして、それを直すシーンがままあります。
タイポそれ自体は仕方ないです、人間たるものミスはあります。
ただそのミスに対して「タイポなんて絶対ありえない(絶許」と厳しく取り締まることが正義なのかというとそれは一考の余地がありそうです。
一言に「タイポ」と言っても、タイポにも何種類か分類があります。
分類ごとに、絶許レベルや回避方法が異なると思いますので、ひとつずつ見てみましょう。
(以降で例示する英単語はあくまでも例なので、実際のコーディングで使われないかもしれません)
英単語のスペルミスしちゃったタイポ(絶許レベル★☆☆☆☆)
- engrish
- englishe
- english
こんな感じで、単純にスペルミスしちゃったパターン。
これは可愛いものです、タイポしていても元の意味がわかるので全然許されます。
業務で書くコードにおいては、もちろんスペルミスは防ぎたいところですが、もとの意味がわかる程度のタイポであれば指摘も修正も容易なので、簡単に許せちゃいますね。
元の単語がわからないタイポ(絶許レベル★★★☆☆)
- ocaty
- storieing
こんな感じで、なんかもう意図的としか言えないレベルでスペルミスしているパターン。
元の単語がわからないので、何を意味して書いているのかが全くわからないです。
もしかしたらこれはタイポではなく業界用語で、実は意味のある単語なのかもしれません。
というように、簡単に修正できず、ちょっと困ってしまいますので、許されレベルは3くらいです。
意味が変わってしまうタイポ(絶許レベル★★★★☆)
- cooperation
- corporation
のような、単語として似ているものを間違ってしまうようなパターン。
それぞれに意味があるので、タイポなのか意図的な使い分けなのかを区別しなければいけません。
これはタイポしたつもりが別単語になるパターンなので、修正するかどうか考えるのも大変です。
しかも正しいと思って放置しておいたらビジネスロジックが誤っていた、なんてこともあるかもしれません。
予約語や関数名のタイポ(絶許レベル★★★★★)
- serect
- filtor
- lengths
- functoin
のような、プログラミング言語において予約語だったり関数名として用意されているものをタイポしちゃっているパターン。
正直これはIDEで検知できるし静的解析ツールなどでも検出できるものですが、もしそこをすり抜けてしまうと、実行時エラーでしか気付けないです。
システムやサービスに影響を及ぼしてしまいますので、これは絶許です。
タイポはレベル分けして絶許
いろんなパターンのタイポがあり、それぞれ影響度合いや修正難度が異なります。
全部が全部許されないとして修正し続けるのはコストがかかります、ただしタイポはしないに越したことはないのでコストをかけてでも修正したいものでもあります。
今はツールなどでかなり防げるところではありますが、ドメインによってはタイポみたいな専門用語があったりもするので、やはり人の力で目検することもあるでしょう。
そんなときは、無闇矢鱈に絶許絶許ではなく、しっかりとタイポレベルを見定めで絶許していきましょう。