Лучший дизайн для инструмента командной строки

Это простая задача, позвольте мне кратко ее описать!

Я должен кодировать инструмент командной строки, который принимает имя файла в качестве аргумента, файл
что я собираюсь прочитать состоит из строк, каждая строка должна быть команда чтобы выполнить, команда сопровождается соответствующими аргументами, чтобы применить это, чтобы прояснить:

FILE

sum; 1, 2, 3, 4

Output

10

Инструмент командной строки должен удовлетворять следующим требованиям:

1- Легко поддерживается, развитая (Больше команды может быть добавлено в будущем) и удобно.

2- Аргументы командной строки могут быть изменены, и могут быть добавлены новые.

3- Может жить как проект с открытым исходным кодом, организованное дерево исходного кода.

Я ожидаю, что разработчики будут иметь дело с исходным кодом и честно его понять.

Я новичок в этих вещах, я немного новичок в разработке шаблонов, поэтому я немного знаю, я хочу следовать передовым методам разработки этой программы, я действительно хочу использовать шаблоны проектирования, если это применимо, и сделать свой код лучше и Более чистые, поэтому, пожалуйста, посоветуйте и направьте меня для написания этого инструмента наилучшим образом, я не хочу писать грязный код, я хочу написать высококачественный код, который выполняет то, для чего он предназначен, и может быть легко разработан в дальнейшем.

Пожалуйста, советуйте и не стесняйтесь критиковать то, что я только что сказал.

И последнее, я буду использовать C ++!

Спасибо!

2

Решение

1- Boost.Program_options Ваш друг, когда дело доходит до разбора параметров командной строки.
2- Посмотрите на шаблон команд. Хотя это легче реализовать на языке, который имеет средства отражения, все еще возможно иметь карту «командных строк», сопоставленных с функцией. Пожалуйста, используйте для этого C ++ 11. то есть std :: function.
3- Нет стандартной структуры для проектов C ++. Лично я использую рекомендованную структуру Boost.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]