четверг, 17 июня 2010 г.

Куда приспособить, как опцию командной строки или все же в ini-файл?

Перед теми кто разрабатывает довольно серьезный проект приложения консольного типа, рано или поздно встает вопросы "А куда эту настройку приспобить? Может как аргумент командной строки? А может как параметр конфигурационного файла?"

Для того чтобы пояснить правило получения ответов на подобные вопросы, поясню вам, что все-таки является консольным приложением на практике?

Существует две категории пользователей:
1) Одни пользуются графическим интерфейсом и им удобней пользоваться мышью. Перемещать указатель, выбирать пункт меню на самом верху графического окна в приложении.
2) А есть другая категория людей, которые понимают, что они могут повысить скорость своей работы, если будут набирать команды, а не "возить" туда-сюда мышь по коврику и им куда-быстрее набрать команду плюс пару опций, чем задействовать GUI.

Именно в п.2. и следует искать ответ на вопрос: "а куда мне это?".

Есть множество настроечных параметров для работы приложения и делятся они на две категории:
1) Которые быстро и часто меняются
2) И такие которые наверное один раз задал и можно больше не касаться, по крайней мере до следующего билда.

К первым можно отнести "введите число для перевода его в двоичную", вот число как раз попадает под первую категорию, потому что уже через секунду может понадобиться новый результат. Ко втором можно отнести указание файлового пути к драйверу, с которым работает приложение. Думаю в случае, если разработчики и поменяют чтото в драйвере, то довольно часто оставляют тоже самое место в структуре папок своего продукта и вы можете положить туда же последний билд драйвера.

Также к первым можно отнести указание URL-а по которому нужно что-то скачать, указание файла который нужно как-то обработать, указать название резултирующего файла куда ложить результат и многие другие.

Пример из жизни, системная утиллита по исследованию внутренних объектов режима ядра у операционной системы. Для нее нужно написать драйвер, т.к. работая в пользовательском режиме вы врядли чего продуктивного получите, так вот драйвер редко меняет свое место расположение и поэтому его можно задать в ini-файле. Зато запрос на показание объекта, а какого, вот это уже быстро и часто меняющийся параметр к программе! Следовательно это лучше задать как опцию командной строки!

Правило:
Быстро и часто меняется ? "Да", значит в это кандидат в аргументы командной строки, если нет,то занести в качестве параметра конфигурационного файла.

Замечу, что, довольно часто приложения консольного типа применяют в командных сценариях, где гибко формируются новые параметры и задаются приложениям в качестве опций. Многие системные администраторы не видят свою жизнь без приложений консольного типа, т.к. их легко прописать в командном сценарии, а последний указать в задании для планировщика операционной системы, которое периодически выполняется.

Комментариев нет: