我們開發人員編寫的大部分應用程序需要在啓動時進行外部參數化。我們通過文件路徑,管道名稱,TCP/IP地址等。到目前爲止,我一直在使用命令行將這些傳遞給正在啓動的應用程序。我必須解析main
中的命令行,並將參數引導到需要的地方,這當然是好設計,但是很難爲大量參數維護。最近我決定使用環境變量機制。它們是全球性的,並且從任何地方都可以訪問,這從不太優雅從架構的角度來看,但是限制了代碼量。參數傳遞策略 - 環境變量與命令行
這些是我對這兩種策略的第一次(也可能是很淺的)印象,但我希望聽到更有經驗的開發人員的意見 - 使用環境變量和命令行參數傳遞參數的起伏是什麼到一個過程?我想考慮到以下事項:
- 設計質量(柔韌性/可維護性),
- 存儲器約束,
- 溶液可移植性。
備註:
廣告。 1.這是我感興趣的主要方面。
Ad。 2.這是有點實用的。我知道在Windows上有一些限制,這些限制目前是huge(對於命令行和環境塊都超過32kB)。我想這不是一個問題,因爲如果你需要的話,你應該使用一個文件來傳遞大量的參數。
Ad。 3.我對Unix幾乎一無所知,所以我不確定這兩種策略是否與Windows一樣可用。如果你願意,請詳細說明。
你會提供更多細節,如參數的實際數量?如果有分組給他們,或者他們都是隨機的?這是什麼語言? Java,C++等...我要求詳細程度的原因是,儘管用任何語言處理這個問題都可能是個問題,但可能有一個您不知道的語言實現特定解決方案。 –
只是提到* nix操作系統,他們沒有像「全局環境變量」,並且每個env var在fork時間從父進程繼承到子進程。所以,「全局」並不是一個用於env var over命令行的專業版,至少對於那些操作系統來說。 – shr
嗨,@ jamesDrinkard。我對一般方法感興趣。如果您想從由32位解釋器運行的Python腳本向使用C++編寫的64位應用程序傳遞20個不同的帶標籤的字符串/整數/實數參數,您將使用哪種方法? –