|
150 | 150 |
|
151 | 151 | --- |
152 | 152 |
|
153 | | -# 1 Command Line Experience |
| 153 | +# 1 Опыт работы с командной строкой |
154 | 154 |
|
155 | | -Этот раздел посвящен лучшим практикам создания красивых и особо удобных для пользователей CLI-приложениям на Node.js. |
| 155 | +Этот раздел посвящен лучшим практикам создания красивых и удобных Node.js приложений командной строки для пользователей. |
156 | 156 |
|
157 | 157 | В этом разделе: |
158 | 158 |
|
159 | 159 | - 1.1 [Соблюдение POSIX аргументов](#11-respect-posix-args) |
160 | | -- 1.2 [Создание эмпатичных CLI](#12-build-empathic-clis) |
| 160 | +- 1.2 [Создание отзывчивых CLI](#12-build-empathic-clis) |
161 | 161 | - 1.3 [Сохранение данных о состоянии](#13-stateful-data) |
162 | 162 | - 1.4 [Обеспечение красочного опыта](#14-provide-a-colorful-experience) |
163 | 163 | - 1.5 [Продвинутые взаимодействия](#15-rich-interactions) |
|
167 | 167 |
|
168 | 168 | <br/> |
169 | 169 |
|
170 | | -### 1.1 <0>Соблюдение POSIX аргументов</0> |
| 170 | +### 1.1 Соблюдение POSIX аргументов</0> |
171 | 171 |
|
172 | | -✅ **Делай:** Используй [POSIX-совместимый](https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html) синтаксис командных аргументов, который широко признан в качестве стандарта для инструментов командной строки. |
| 172 | +✅ **Делай:** Используй [POSIX-совместимый](https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html) синтаксис аргументов командной строки, который широко признан в качестве стандарта. |
173 | 173 |
|
174 | | -❌ **Otherwise:** Пользователи могут разочароваться, если синтаксис для аргументов, опций или команд в CLI отличается от фактического Unix стандарта, к которому они привыкли. |
| 174 | +❌ **Иначе:** Пользователи могут разочароваться, если синтаксис для аргументов, опций или команд в CLI отличается от фактического Unix стандарта, к которому они привыкли. |
175 | 175 |
|
176 | 176 | ℹ️ **Детали** |
177 | 177 |
|
178 | 178 | Unix-like operating systems popularized the use of the command line and tools such as `awk`, `sed`. Подобные утилиты эффективно стандартизировали поведение параметров (флагов) командной строки, опций-аргументов и других операндов. |
179 | 179 |
|
180 | 180 | Несколько примеров ожидаемого поведения: |
181 | 181 |
|
182 | | -- option-arguments or options can be notated in help or examples as square brackets (`[]`) to indicate they are optional, or with angle brackets (`<>`) to indicate they are required. |
183 | | -- allow short-form single letter arguments as aliases for long-form arguments (see reference from the [GNU Coding Standards](https://www.gnu.org/prep/standards/html_node/Command_002dLine-Interfaces.html)). |
184 | | -- options specified using the short form singular `-` may contain one alphanumeric character. |
185 | | -- specifying multiple options with no values may be grouped, such as `myCli -abc` being equivalent to `myCli -a -b -c`. |
| 182 | +- параметры-аргументы или опции могут быть указаны в справке или примерах в качестве квадратных скобок (`[]`), чтобы указать, что они необязательны, или в угловых скобках (`<>`), чтобы указать, что они обязательны. |
| 183 | +- резрешите использовать короткие аргументы, состоящие из одной буквы, в качестве псевдонимов для длинных аргументов (см. ссылку на [Стандарты кодирования GNU](https://www.gnu.org/prep/standards/html_node/Command_002dLine-Interfaces.html)) |
| 184 | +- |
| 185 | +- указание нескольких параметров без значений может быть сгруппировано, например, `myCli -abc` эквивалентно `myCli -a -b -c`. |
186 | 186 |
|
187 | | -Command line power-users will expect your command line application to have similar conventions as other Unix apps. |
| 187 | +Опытные пользователи командной строки ожидают, что ваше CLI-приложение будет иметь те же соглашения, что и другие приложения Unix. |
188 | 188 |
|
189 | 189 | 📦 **Рекомендованные библиотеки** |
190 | 190 |
|
191 | | -Reference to Open Source Node.js packages: |
| 191 | +Ссылки на Open Source Node.js библиотеки: |
192 | 192 |
|
193 | 193 | - [commander](https://github.com/tj/commander.js#readme) |
194 | 194 | - [yargs](https://github.com/yargs/yargs) |
195 | 195 |
|
196 | | -### 1.2 Build empathic CLIs |
197 | | - |
198 | | -✅ **Do:** Put workflows in place that assist the user to interact with the CLI successfully, when otherwise such interactions would result in errors and frustration. |
| 196 | +### 1.2 Создание отзывчивых CLI |
199 | 197 |
|
200 | | -❌ **Otherwise:** Failing to provide actionable assistance in supporting the user will result in frustration due to the lack of capability to operate the CLI. |
201 | | - |
202 | | -ℹ️ **Details** |
| 198 | +✅ **Делай:** Внедрите рабочие процессы, которые помогают пользователю успешно взаимодействовать с интерфейсом командной строки, в противном случае такие взаимодействия приведут к ошибкам и разочарованию. |
203 | 199 |
|
204 | | -A command line interface for your program is no different than a web user interface in the sense of doing as much as you can as the program author to ensure that it is being used successfully. |
| 200 | +❌ **Иначе:** Неспособность оказать действенную помощь в поддержке пользователя приведет к разочарованию из-за отсутствия возможности управлять интерфейсом командной строки. |
205 | 201 |
|
206 | 202 | Optimize for successful interactions by building empathic CLIs that support the user. As an example, let's explore the case of the `curl` program that expects a URL as its primary data input, and the user failing to provide it. Such failure will lead to reading through a (hopefully) descriptive error messages or reviewing a `curl --help` output. However, an empathic CLI would have presented an interactive prompt to capture input from the user, resulting in a successful interaction. |
207 | 203 |
|
|
0 commit comments