浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

逸脱の標準化、裏マニュアル、割れ窓理論とソースコードの品質検査の自動実行

 逸脱の標準化はチャレンジャー号爆発事故 – Wikipedia、裏マニュアルは東海村JCO臨界事故 – Wikipedia、あたりを端に発する、規則を守らないことが当然になっている様を指す言葉です。この手の話は大体安全マージンをとってある規則に従った手順を無視して、ぎりぎり異常の起きない(あるいは徐々に進行する異常)手順を実行してしまい、ちょっとしたアクシデントで致命的に壊れる、という結になります。
 割れ窓理論は次の様な悪しき行いでも放置され続けると増大し続ける、という理論です。

建物の窓が壊れているのを放置すると、誰も注意を払っていないという象徴になり、やがて他の窓もまもなく全て壊される

割れ窓理論 – Wikipedia

 上記二点から考えられるのは、ほんの少し危険な行為であっても即座直し続けなければとてもひどいことになる、ということです。 コーディングにおいてそういった危険行為を発見するための方法にLintやテストがあります。Lintとはソースコード検査プログラムのことであり、曖昧な処理、誤った意図で行われやすい記述、読み取り難い記述などを検出します。
 コーディングにおける危険行為を直し続けるにはLint、テストなどといったソースコードの品質検査を行い続ける必要があります。しかし手作業でこれを行い続けるのは現実的でありません。何度も同じ作業を行うことは退屈であり、コードを作ったり改造したりする時間の方をより多く取りたくなるものでソースコードの品質検査には多くの時間を割けません。上手く働く自動実行はこの時間と品質のトレードオフ問題を解決します。
 自動実行実現のための方針は、Lint、テストなどの作業を全てコードに起こし、gitにコミットする度の様なタイミングで自動実行させるようにする、というものです。仮に完成するコードが等しいものとした場合

検査用の仕組みの導入、作成にかかる時間 + 自動実行している間に手が止まる時間 < 繰り返し手作業で検査する時間

となる場合、お得です。最初は検査用コードを作るのに時間がかかりますが異なるプロジェクトであっても似たものを書くことが多い為、どんどん慣れて早くなります。またバグると致命的な部分、バグりやすい部分がわかってくるとテストの分量を調整できるようになり、検査の仕組みを余分に用意しにくくなります。
 今時のIDEにはgit hookや検査用ツールへのショートカットがありますので、小さな単一のツールから順々に備えていき、大きくしていくのがよいと思います。

  • この記事いいね! (0)