Большинство приложений, которые разработчики пишут, должны быть подвергнуты внешнему параметризации при запуске. Мы передаем пути к файлам, имена труб, адреса TCP/IP и т.д. До сих пор я использовал командную строку , чтобы передать их в запущенное приложение. Мне пришлось анализировать командную строку в main
и направлять аргументы туда, где они нужны, что, конечно, хороший дизайн, но его трудно поддерживать для большого количества аргументов. Недавно я решил использовать механизм переменных среды. Они глобальны и доступны из любого места, что менее элегантно с архитектурной точки зрения, но ограничивает количество кода.
Это мои первые (и, возможно, довольно мелкие) впечатления от обеих стратегий, но я хотел бы услышать мнения более опытных разработчиков - . Каковы взлеты и падения использования переменных окружения и аргументов командной строки для прохождения аргументы для процесса? Я хотел бы принять во внимание следующие вопросы:
- качество дизайна (гибкость/ремонтопригодность),
- ограничения памяти,
- переносимость решения.
Примечания:
Ad. 1. Это основной аспект, который меня интересует.
Ad. 2. Это немного прагматично. Я знаю некоторые ограничения на Windows, которые в настоящее время огромные (более 32 КБ для командной строки и блока среды). Я думаю, это не проблема, потому что вам нужно использовать файл, чтобы передать тонны аргументов, если вам нужно.
Ad. 3. Я почти ничего не знаю об Unix, поэтому я не уверен, что обе стратегии так же полезны, как и для Windows. Поработайте над этим, если хотите.