Интерфејси командне линије (ЦЛИ) су и даље популарни чак и када су у питању графички кориснички интерфејси (ГУИ) и њихове интерактивне визуелне компоненте. ЦЛИ су и даље у употреби због своје једноставности, лакоће, брзине и мање ресурса потребних за постављање ЦЛИ апликације.
Већина ЦЛИ апликација ради на терминалу или командној линији оперативног система, повећавајући флексибилност без потребе за толико ресурса као ГУИ.
Можете да направите ЦЛИ са популарним језицима од Питхон-а до Ц++, Руст и Го. Већина језика обезбеђује пакете за прављење ЦЛИ апликација без спољних зависности.
Иди и апликације командне линије
Један од предвиђених случајева употребе програмског језика Го је изградња интерактивних ЦЛИ-ова са перформансама. Током година, Го је постао популаран на терену.
Го покреће популарне ЦЛИ апликације као што су Доцкер ЦЛИ, Хуго, ГитХуб ЦЛИ и још много тога. Го је један од преферираних језика за прављење ЦЛИ апликација, с обзиром на његову првокласну подршку за њих поред његових перформанси.
Постоји застава пакет за рашчлањивање командне линије, али му недостаје много функционалности које ће вам требати да направите модерне апликације командне линије. Такође, развој ЦЛИ апликација са застава пакет може бити сложен како се величина ваше апликације повећава и ви уграђујете више функција.
Го екосистем има много реномираних пакета за прављење ЦЛИ-ова, са функцијама које вам помажу да смањите време развоја.
Пакет Кобра
Кобра је један од најпопуларнијих пакета за изградњу ЦЛИ-а у Го екосистему и шире. Цобра је пакет за креирање интерактивних, модерних ЦЛИ апликација у било ком окружењу.
Цобра пружа једноставан интерфејс за прављење ЦЛИ-ова индустријског стандарда слично Го алатима и Гиту. Цобра покреће многе ЦЛИ апликације са којима сте комуницирали, укључујући Доцкер, Кубернетес, Твитцх, Хуго и мноштво других.
Цобра је алатка која се базира на подкомандама која је лака за употребу. Подржава заставице усаглашене са ПОСИКС, угнежђене подкоманде и глобалне, локалне и каскадне заставице.
Цобра такође подржава интелигентне предлоге, аутоматско генерисање помоћи, препознавање заставице и псеудониме команди. Омогућава аутоматско довршавање љуске на Басх, Поверсхелл, Фисх и Зсх и интеграцију са випер пакет за апликације са 12 фактора.
Покрените ову команду у терминалу вашег радног директоријума да бисте инсталирали најновију верзију пакета Цобра и његове зависности.
иди гет -у гитхуб.цом/спф13/цобра@латест
Цобра пружа ЦЛИ апликацију за бржи и лакши развој. Цобра—цли пакет генерише шаблонски код који можете да конфигуришете да додајете нове команде вашој апликацији без проблема.
Покрените ову команду у терминалу вашег радног директоријума да бисте инсталирали најновију верзију Цобра-цли пакета.
иди инсталирај гитхуб.цом/спф13/цобра-цли@латест
Мораћете да поставите своју ГОПАТХ променљиву у радни директоријум да бисте користили Цобра генератор (Цобра-цли) и друге Го алате командне линије.
Након успешне инсталације, можете иницијализовати Цобра апликацију у свом пројекту помоћу у томе команда.
цобра-цли инит
Након иницијализације апликације Цобра, можете користити додати поткоманда са кобра-цли команду за креирање и додавање нове команде вашој Цобра апликацији.
цобра-цли додај нову команду
Команда креира нову датотеку са кодом који вам је потребан за команду. Можете уређивати датотеку на основу ваше операције.
Ево једноставне функције руковања командом за команду генерисану командом Цобра-цли.
увоз (
"фмт"
"гитхуб.цом/спф13/цобра"
"Пријава"
"стрцонв"
)// команда генерисана кобром
// невЦмд представља нову команду
вар невЦмд = &кобра. команда {
Користите: "невЦмд",
Кратко: "Опис новог Цмд-а који наведете",
дуго: „Дужи опис који обухвата више редова и вероватно садржи примере
и коришћење ваше команде. На пример:
Цобра је ЦЛИ библиотека за Иди који омогућава апликације.
Ова апликација је алат за генерисање потребних датотека
да брзо креирате апликацију Цобра.`,Трцати: фунц(цмд * кобра. Команда, аргс []низ) {
аколен(аргс) < 1 {
Пријава. Фатално („Нема додатних аргумената“)
}
аргументи := аргс[0]
фмт. Принтлн (аргументи)
}
}фунцу томе() {
роотЦмд. АддЦомманд (невЦмд)// Овде ћете дефинисати своје заставице и подешавања конфигурације.
// Цобра подржава трајне заставице које ће радити за ову команду
// и све подкоманде, нпр.:
// невЦмд. ПерсистентФлагс().Стринг("фоо", "", "Помоћ за фоо")
// Цобра подржава локалне заставице које ће се покренути само када је ова команда
// се позива директно, нпр.:
// невЦмд. Флагс().БоолП("тоггле", "т", фалсе, "порука помоћи за пребацивање")
}
Додатним аргументима можете приступити помоћу аргс аргумент функције. Функција изнад користи ако изјаву да провери да ли постоји додатни аргумент са терминала и штампа аргумент.
ЦЛИ пакет
Цли пакет је минималистички пакет са темом експресивности за прављење брзих, дистрибутивних ЦЛИ апликација у Го.
Цли пакет подржава аргументе командне линије, заставице и подкоманде са категоријама. Има функционалност да задовољи кратке опције, Басх довршетак, генерисана помоћ и верзија.
Цли пакет је интероперабилан са Го-овим уграђеним застава и контекст пакете и можете користити већину функција у застава пакет са Цли.
Покрените ове команде у терминалу вашег радног директоријума да додате Грапхкл-го пакет и његове зависности у свој пројекат.
иди набавите гитхуб.цом/урфаве/цли
Ево како можете да додате команду својој ЦЛИ апликацији помоћу Цли пакета.
пакет главни
увоз (
"фмт"
"Пријава"
"ос""гитхуб.цом/урфаве/цли/в2"
)фунцглавни() {
апп := &цли. Апликација {
Име: "Нова",
Употреба: "направити а Нова команду са Цли пакет",
Поступак: фунц(*кли. Контекст)грешка {
фмт. Принтлн("Ево а Нова команда")
повратакнула
},
}
ако ерр := апп. Трчи (ос. Аргс); ерр != нула {
Пријава. Фатално (грешка)
}
}
У главни функција, тхе апликација променљива је инстанца Цли апликације и апликације поступак поље је функција руковаоца апликације. Ево, Нова команда би одштампала текст из функције или вратила грешку ако има грешака из апликације.
Цли пакет је користан за мање пројекте без много сложености или функција.
Го-Арг пакет
Го-арг пакет је пакет заснован на структури за рашчлањивање ЦЛИ аргумената у Го. Са Го-арг пакетом, можете декларисати структуре за ЦЛИ аргументе и радити на аргументима као на регуларним Го структурама података. Го-арг пакет пружа потребне аргументе, позиционе аргументе, променљиве окружења, низове употребе, подразумеване вредности и многе друге карактеристике.
Пакет подржава основне типове као што су цео број, покретни зарез, стринг и логички. Такође подржава сложеније типове као што су УРЛ адресе, временска трајања, адресе е-поште, МАЦ адресе, показивачи, пресеци, мапе и било који тип.
Можете користити добити команду за додавање пакета Го-арг у зависности вашег пакета.
иди преузми гитхуб.цом/алекфлинт/иди-арг
Го-арг пакет је једноставан и интуитиван за употребу. Ево како можете прихватити аргументе из командне линије и одштампати их на конзоли командне линије.
фунцглавни() {
вар аргс струцт {
Фоо низ
Бар боол
}
арг. Мора се рашчланити (&аргс)
фмт. Принтлн (аргс. Фоо, аргс. бар)
}
Тхе аргс струцт је инстанца структуре за ЦЛИ апликацију. Тхе МустПарсе метода анализира аргументе из командне линије у инстанцу структуре.
Можете лако покренути програм са трцати команду и наведите аргументе иза имена датотеке.
иди рун маин.иди --фоо=здраво --бар
Такође можете користити градити команду за изградњу ваше апликације у извршну датотеку пре покретања извршне датотеке и навођења аргумената.
иди изградити главну.иди
./маин --фоо=хелло --бар
Постоје значајне разлике између ГУИ-а и ЦЛИ-ова које ћете морати да узмете у обзир
Током развоја, ако морате да бирате између изградње ЦЛИ или ГУИ за своје кориснике, мораћете да узмете у обзир многе факторе да бисте направили избор.
Коришћење ЦЛИ-а преко ГУИ-ја резултира бржим програмима, једноставном аутоматизацијом и мањим коришћењем ресурса. Ако било која од ових предности није пресудна за вашу апликацију, можда би вам било боље да користите ГУИ јер су популарнији код обичних корисника.