Perl::Critic::TooMuchCode 0.14 釋出

作者:   發佈於:   #perl #cpan

Perl::Critic::TooMuchCode 這個 Perl 模組是在約兩年前做的。主要是扮演類似 Linter 的角色,以靜態分析的方式找出在程式碼中沒有任何作用的部份。例如,輸入了 foo 函式,但之後卻沒有使用,那 foo 的輸入就算是沒有任何作用。

會做這種模組,主要是因為在同事間互相做 PR Review / Code Review 的時侯,大家實際上真的會去注意這種冗員的出現,並且將其逐一挑出來。或許這是有一點點像是在刻意找小毛病來挑,不過就結果而言,該專案的程式碼也的確是在一種「沒有什麼多餘的用字,讀起來很容易」的狀態。一定程度上這種枯橾的作業或許真的對專案的可讀性有所幫助吧。

既然大家會著眼在這種地方,或許就可以試著將其自動化。其實現在有很多程式語言的編譯器能針對一些無效用的程式碼發出警告,但 perl 開發環境中較缺這種工具。實際上做起來也有不少難處,有不少地方得搬出「經驗法則」出來用。就算如此,也很難做出完全無誤報的工具。

這個模組要配合 Perl::Critic 框架中使用,是其外掛套件。目前在社內是在 CI 中執行。如果有新出現的毛病,就以 PR Comment 的方式回報。運行兩年下來,或許真有替大家省下一些 Code Review 的時間吧。

最近沒花太多力氣在這個模組上,卻看到有一小批 PR 到來,看來是有一些人拿這個模組去檢查他們社內的程式碼後,找到一些瑕疪,然後還修好了。真是感謝。