目前我製作了一些加載到Redis的LUA腳本來執行一些命令。一些函數對於所有腳本都是常見的,比如解析東西或數據轉換,我一直在腳本之間進行復制/粘貼,而不是簡單地重用它們。無法制作「要求」,因爲Redis無法知道在哪裏加載文件。如何重用將被加載到Redis的LUA腳本上的代碼?
對於我添加的每個腳本,維護噩夢變得更大!
DRY主體如何應用於這種情況? 我想到的唯一方法是T4代碼生成器。
我可以做一個「LUA」文件與此代碼:
#import "DataTransformer.lua"
T4會嘗試讀取每個文件與.lua擴展,並查找標籤#進口。對於每個#import標記將找到相應的文件並用實際代碼替換該行。這樣T4會自動複製/粘貼。
「DataTransformer」中的代碼應該分配給名爲「DataTransformer」的對象,並且導入DataTransformer的代碼可以使用對象DataTransformer。{function}來使用它。
這是否合理或者是否有更簡單的方法來實現這一點?
我認爲OP不擔心許多複製腳本的開銷,但擔心這些腳本的管理。說,如果我修復了一個錯誤,我必須在包含重複代碼的所有腳本中修復它。 –
表現也是一個問題。所以看起來預處理是正確的解決方案。如果我使用T4生成器,每當我修復腳本上的錯誤時,我就可以將它傳播給所有消費者:) –