Pull to refresh

Comments 9

А вот когда то мы на голом C парзили все что угодно без фабрик и абстракций за один проход буфера. И не жужжали)

Я работал в ООП парадигме, а C - язык процедурный)

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

Ну, к слову сказать, я не так много сишных программ видел, где парсинг аргументов имел хоть сколько-нибудь адекватный и структурированный вид, а не каскад ifов, whileов и прочих CF конструкций, которые можно было сходу понимать. Так что может зря не жужжали.

System.CommandLine не плох, только он всё никак из бэты не выйдет :(
Из-за этого мэйнтенеры любят поломать существующее API.

А как вы работаете с аргументами командной строки?

обычно, со стандартным массивом Main(string[] args), если речь про C#. в других языках так же. очень важный момент в консольном приложении - грамотно создать структуру параметров избавляющую от необходимости проверять все действия пользователя. тогда вся программа выполняется за один цикл.

Есть еще моя либа, которая следует синтаксису getOpt и поддерживает "под-команды".
Но там задел под маленькие утилиты т.к. команды реализуется через методы, а не через классы команд.

Сам очень люблю CLI. У меня сейчас профиль PowerShell вместе со всеми самодельными модулями уже больше 1000 строк. И, по-моему если сейчас писать какие-то консольные утилиты под .NET, то больше имеет смысл ориентироваться на PowerShell, а не делать standalone приложение. Все есть мысли с этим разобраться, но до сих пор какого-то конкретного повода нет, пока что возможностей самого PowerShell всегда хватало.

Sign up to leave a comment.

Articles