こんにちは。バフェットコード開発部のkosappiです。
唐突ですが、コンガとボンゴの区別がつく方はいらっしゃいますか?わかるよ〜!という方も、そうでない方も、ぜひブログをお読みください。(最後に正解があります!)
typosでtypoを見つけよう
typosとは何か
typosはタイポを見つけてくれます。本家では Source code spell checker
と書かれています。
人間が書いた成果物には、多かれ少なかれ必ずミスが含まれるものです。typosを使ってタイポを見つけて、大事なブランチにスペルミスがコミットされないようにしましょう。
typosのインストール
ひとまず macOS にインストールしましょう。
brew install typos-cli
なお、Github Actions では下記のように crate-ci/typos@VERSION
で実行できます。(便利!)
jobs: spelling: name: Spell Check with Typos runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@v4 - name: run typos uses: crate-ci/typos@v1.33.1
typosの使いかた
動作確認のために下記のような Ruby ファイルを用意しました。
def sample_method hash = { anouncement: 'My brother plays tennis very well.' , transfered: 'I have no money.' } return hash end
ここで typos を実行すると、下記のようにスペルミスを指摘してくれます。
$ typos . error: `anouncement` should be `announcement` --> ./typos_sample.rb:2:12 | 2 | hash = { anouncement: 'My brother plays tennis very well.' , | ^^^^^^^^^^^ | error: `transfered` should be `transferred` --> ./typos_sample.rb:3:12 | 3 | transfered: 'I have no money.' } | ^^^^^^^^^^ |
実行時に修正をするオプションもあります。この場合、特にエラーを出さずに修正します。
$ typos -w
他にもいろいろと便利なオプションがあります。
バフェットコードでの typos の運用
バフェットコードでは typos が各 Pull Request の Github Actions で実行されます。
また、typos に指摘されつつも様々な事情で修正できなかったスペルミスを下記のような感じで _typos.toml
に書いています。(こちらはサンプルなので単語は伏せています)これで普段の typos 実行時にはスペルミスを無視してくれるようになります。
[default] extend-ignore-identifiers-re = [ # TODO: あとで対応する "word1", "word2", "word3", # TODO: DB側の対応が必要 "word4", "word5", "word6", # TODO: 外部サービスの修正が必要 "word7", ]
隙を見つけてこういったTODOを消化しつつ、Github Actions では新しいスペルミスに気付くことができる、といった運用になっています。
最後に
いかがでしたか?
昔から保守してきたソースコードを一度typosに預けてみてはどうでしょう?きっと楽しいと思います。
なお、冒頭のクイズの正解ですが、大きいのがコンガ、小さいのがボンゴ、です。どちらもキューバ生まれなので、ややこしいですね!
宣伝
バフェットコードでは、便利なツールを開発環境に導入して、コードの品質を上げてくれるエンジニアを探しています!
一緒にナイスなサービスを作りましょう💪