0
作爲一名Python工程師,學習寫DRY風格的代碼;不是因爲它是一個流行詞,但它使您的代碼更清晰,更易於閱讀。清漆變量和DRY代碼
任何忍受閱讀前同事代碼的人都能理解。
隨着清漆,沒有變量分配,所以如何甚至可以嘗試編寫DRY風格規則?
考慮以下幾點:
我有後端實例的集羣有十vhosts
運行的Apache。有一個前端實例需要根據vhost
重新編寫。
我堅持這一點:
if (req.url ~ "^/amp/") {
# vhost's AMP code == xyz
if (req.http.host = "host1.com") {
set req.url = regsub(req.url, "/amp/", "/nps/$host1-brand-code/");
}
if (req.http.host = "host2.com") {
set req.url = regsub(req.url, "/amp/", "/nps/$host2-brand-code/");
}
...
}
什麼鐓這裏是regsub
"/nps/$host1-brand-code/"
如果出版商決定下月更改爲/new-nps-url/$host1-brand-code
重複。我將被迫更新許多if語句,只是一個集羣,而且我們有很多集羣!
更換使用
req.http.BRAND_CODE
的你看着[清漆模塊(https://github.com/varnish/varnish-modules)?看起來他們有'vmod-var',它可以讓你設置一個你想要的變量。他們有一些[測試](https://github.com/varnish/varnish-modules/tree/master/src/tests/var)用法,[test02.vtc](https://github.com/varnish /varnish-modules/blob/master/src/tests/var/test02.vtc)可能會對你特別感興趣。 –@CoryShay這是一個很好的解決方案,非常感謝您的鏈接!我必須小心處理,因爲清漆是通過廚師在這些集羣上安裝/更新的,並且引入一個新的'so'需要注意。 –