我知道的一個是Perl::Critic在Perl中應用編碼標準有沒有好的自動化框架?
而我的谷歌搜索導致迄今爲止多次嘗試沒有結果。 ?:-(
有沒有人有任何這裏建議
任何資源配置的Perl ::評論家按我們的編碼標準和代碼庫運行它,將不勝感激
我知道的一個是Perl::Critic在Perl中應用編碼標準有沒有好的自動化框架?
而我的谷歌搜索導致迄今爲止多次嘗試沒有結果。 ?:-(
有沒有人有任何這裏建議
任何資源配置的Perl ::評論家按我們的編碼標準和代碼庫運行它,將不勝感激
在設置檔案方面,你有沒有試過perlcritic --profile-proto
?這將發出標準化所有安裝的策略及其所有選項,並以perlcriticrc格式描述這兩個策略,包括它們的默認值。保存並編輯,以匹配你想要的。每當您升級Perl :: Critic時,您可能需要再次運行此命令並使用當前的perlcriticrc進行比較,以便您可以看到現有策略的任何更改並選取新策略。
在定期運行perceritic方面,建立一個Test::Perl::Critic測試以及其餘的測試。這對新代碼很有用。
對於您現有的代碼,請改爲使用Test::Perl::Critic::Progressive。 T :: P :: C :: Progressive會在您第一次運行時取得成功,但會節省違規次數;此後,如果任何計數增加,T :: P :: C :: Progressive將會投訴。有一點需要注意的是當你恢復源代碼管理系統的變化時。 (你正在使用一個,是不是?)說我檢查一個更改並運行測試,我的更改減少了P :: C違規的數量。後來,事實證明我的改變很糟糕,所以我回到了舊的代碼。由於計數減少,T :: P :: C :: Progressive測試將失敗。此時最簡單的方法是刪除歷史文件(默認位置t/.perlcritic-history)並重新運行。它應該重現您的舊計數,您可以編寫新的東西再次將它們記下來。
Perl :: Critic有許多策略隨附它,但還有一些附加的策略分發。看看Task::Perl::Critic和 Task::Perl::Critic::IncludingOptionalDependencies。
你不需要有一個perlcriticrc處理你的所有代碼。爲要測試的每組文件創建單獨的perlcriticrc文件,然後單獨指向每個文件。舉個例子,看看作者對P :: C本身的測試http://perlcritic.tigris.org/source/browse/perlcritic/trunk/Perl-Critic/xt/author/。當作者測試運行時,有一個測試運行在P :: C的所有代碼之上,第二個測試僅對策略應用附加規則,第三個測試批評P :: C的測試。
我個人認爲每個人都應該在「嚴酷」的嚴酷程度上運行,但是要拋棄他們不同意的政策。 Perl :: Critic不完全符合自我;即使是P :: C開發人員也不同意康威所說的一切。查看Perl :: Critic本身使用的perlcriticrc文件,並在Perl :: Critic代碼中搜索「## no critic」的實例;目前我算143。
(是的,我的Perl的::評論家開發者之一。)
對於大多數文體標準,有perltidy。 perlcritic可以很容易地配置使用.perlcritic file。我個人在第一級使用它,但我禁用了一些策略。
除了'自動化框架',我強烈推薦Damian Conway的Perl最佳實踐。我不同意他所建議的100%,但大部分時間他都在砰砰作響。
一個很好的組合與Eclipse的EPIC - 擊中CTRL-SHIFT-C(或您的首選配置的快捷方式),並且您的代碼用警告指示器標記,無論哪裏perlritic已發現什麼抱怨。比記得在簽入前運行它好得多。正常情況下,它會接收您的.perlcriticrc,以便您可以自定義規則。我們保持版本控制中的.perlcriticrc,以便每個人都獲得相同的標準。
除了化妝品的最佳實踐,我總是覺得有用就在我的單元測試套件運行傑韋利::教授檢查測試覆蓋率。
以上提到的Devel::Prof可能確實意味着Devel::Cover(以獲得測試套件的代碼覆蓋率)。
你是什麼意思的「正在運行」? – svrist 2008-09-09 10:17:16