Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

typoで罰金20分、workflowがコケるのを防ぎたい

Google WorkflowのYAMLファイル中でファイル名の箇所をtypoしてコケさせてしまった。時間がかかるワークフローなので20分無駄にしてしまい、実質罰金20分になってしまった。再実行でまた20分取られるので実質40分かかってる。

20分無駄にするのは辛すぎるので、どうすればいいのか考える。

スペルチェッカを入れる

ファイル名はだいたい英語で書くことになるので、そこでスペルチェッカを入れたらなんとかなるという発想。Emacsだとflyspellといった拡張があるので、これを使うとリアルタイムにスペルチェックの結果を表示できる。

qiita.com

とはいえスペルチェッカがうまく動くのは文章主体のコードを書いているときで、YAMLとかでうまくいくのか?という気持ちもある。VSCodeではだいたいうまくいってそうなので、そういうもんだと思うしかない。

入力補完を使う

ファイル名はだいたい入力補完の対象にすることができる。これを利用してtypoを回避しようという算段。

とはいえそれはファイルが実際に存在している場合の話で、今回みたいに「こういうファイルをCloud Storageにアップしたくて・・・」みたいなときにはだいたい無力。ソースコード内に登場する固有名詞をうまく検出してくれる場合もあるけれど、ファイルの外で呼び出したいときは無力。

爆速で動かす

そもそも爆速で動けば20分もかからない。すると罰金も減る。とはいえ実際のコードを爆速にするのは大変なので、モック的なやつをローカルで動かせると便利そう。しかしモックを本番に差し替える過程でtypoしてしまう(一敗)

よくあるtypoだけ検出する

だいたいやらかすtypoというのは決まりきっているので、そのパターンだけハイライトすればいいという作戦。

  • calender
  • imput
  • mision

などなど。

(global-hi-lock-mode 1)
;; よくやるスペルミスを警告する
(custom-set-faces '(misspelling ((t (:box (:line-width 2 :color "grey75" :style released-button) :underline (:color "green" :style wave)))) t))
(defun highlight-misspelling-sequences ()
  "Highlight misspelling sequences."
  (interactive)
  (highlight-regexp "calender" 'misspelling)
  (highlight-regexp "imput" 'misspelling)
  (highlight-regexp "[mM]ision" 'misspelling)
  (highlight-regexp "irpt" 'misspelling)
  )
(add-hook 'buffer-list-update-hook 'highlight-misspelling-sequences)

Action

  • よくあるtypo検出くんに項目を追加した
  • スペルチェッカを入れてみる
★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?