僅用於除錯或開發調整時的 perl **塊有時會很有用。這很好,但是這樣的**塊可能會對效能產生很大的影響, 尤其是在執行時才決定是否執行它。
curtis "ovid" poe 最近編寫了乙個可以幫助解決這個問題的模組:keyword::development。該模組利用keyword::******
和 perl 5.012 中引入的可插入關鍵字架構來建立了新的關鍵字:development
。它使用perl_keyword_development
環境變數的值來確定是否要執行一段**。
使用它不能更容易了:
use
keyword
::development
;
sub
doing_my_big_loop
}
在編譯時,development
塊內的**已經被優化掉了,根本就不存在。
你看到好處了麼?在沙盒中將perl_keyword_development
環境變數設定為true
,在生產環境設為false
,並且可以將有價值的除錯工具提交到你的**庫中,在你需要的時候隨時可用。
在缺乏高階配置管理的系統中,你也可以使用此模組來處理生產和開發或測試環境之間的設定差異:
sub
connect_to_my_database
my$db_handle
=dbi
->
connect
($dsn
,$user
,$pass
);
}
稍後對此**片段的增強使你能在其他地方,比如 yaml 或 ini 中讀取配置資訊,但我希望您能在此看到該工具。
我檢視了關鍵字keyword::development
的原始碼,花了大約半小時研究,「天哪,我為什麼沒有想到這個?」安裝keyword::******
後,curtis 給我們的模組就非常簡單了。這是我長期以來在自己的編碼實踐中所需要的乙個優雅解決方案。
原文發布時間為:2018-05-21
更好地領導乙個專案的訣竅
更好地領導乙個專案的訣竅 warren keuffel,自 sdmagazine,1999年9月 think think umlchina.譯 技術管理就像開車。當你做得正確時,沒有人注意,一旦某個環節出錯,問題會接踵而來。以下是我11 年來作為interviewing manager的team管理...
更好地領導乙個專案的訣竅
技術管理就像開車。當你做得正確時,沒有人注意,一旦某個環節出錯,問題會接踵而來。以下是我11年來作為interviewing manager的team管理體會,排名不分先後,你必須注意每一點。1.不要重複過去二三十年來別人犯過的錯誤 這句話來自steve mcconnell,ieee軟體編輯和軟體開...
更好地領導乙個專案的訣竅
技術管理就像開車。當你做得正確時,沒有人注意,一旦某個環節出錯,問題會接踵而來。以下是我11年來作為interviewing manager的team管理體會,排名不分先後,你必須注意每一點。1.不要重複過去二三十年來別人犯過的錯誤 這句話來自steve mcconnell,ieee軟體編輯和軟體開...