Header Ads Widget

Ticker

6/recent/ticker-posts

Cómo hacer que su CLI sea más intuitiva


Las CLI son los héroes olvidados del desarrollo de software moderno. Si bien se pueden esperar GUI web e interfaces programáticas, las CLI pueden ser una interfaz poderosa en una API, proporcionando modos extensos y complejos de consumo, interacción y transformación.

Hoy, vamos a discutir por qué vale la pena el esfuerzo de hacer que su CLI sea intuitiva. Discutiremos algunas opciones fáciles de usar que pueden mejorar drásticamente la experiencia de consumo y algunas mejoras de usabilidad que resultan en una mayor comprensión y eficiencia.

Esta pieza se inspiró en la excelente charla que dio Noah Dietz en la Cumbre de API de Austin sobre CLI para API. Sin embargo, nuestro consejo a continuación será independiente de la plataforma y el idioma, y ​​se aplicará ampliamente a todas las CLI.

Mira a Noah Dietz presentar:

¿Por qué preocuparse por el consumo de CLI?

“Hoy en día, la interfaz web es realmente el único canal de consumo en el que la gente realmente se enfoca para un caso de uso humano. Cuando intentas consumir una API desde la línea de comandos, siento que tienes que empezar a asimilar con el Borg […] El canal de consumo de la línea de comandos puede convertirse en algo mucho más orientado a los humanos, y podemos tomar algunos pasos para ir allí."

Un gran primer paso para hacer que cualquier CLI sea más intuitivo es revisar la suposición sobre quién realmente los usa. Las CLI a menudo se consideran simplemente otra interfaz centrada en la máquina. En realidad, las CLI están en algún lugar entre las máquinas y las orientadas a los humanos y, como tales, podrían mejorarse enormemente si se piensa en el ser humano interactuando con ellas.

Además, las CLI son una puerta de entrada común para los nuevos desarrolladores. Las interfaces web y las GUI pueden ser las más visibles y las más utilizadas por el usuario diario, pero los usuarios avanzados y los desarrolladores a menudo requieren una CLI para funcionar en un nivel diferente. Solo hay algunas cosas que una GUI no puede hacer tan eficientemente como una CLI: imagine intentar pasar una llamada con quince indicadores y variables utilizando su GUI web favorita, y comprenderá de inmediato por qué pasarlo todo como una simple cadena puede ser más atractivo para un desarrollador.

Con esto en mente, ¿cómo mejoramos la experiencia CLI?

Lea también: El regreso de la CLI: CLI que utilizan las empresas relacionadas con API

Mejora de la experiencia CLI

Defaults

Los valores predeterminados a menudo no se consideran una función central de la experiencia del usuario. En cambio, generalmente se consideran una buena funcionalidad adicional. En realidad, un valor predeterminado puede informar a los usuarios, proporcionar una mejor experiencia de usuario a través de la contextualización y facilitar la curva de aprendizaje para los nuevos usuarios.

Una opción predeterminada presentada a un usuario puede servir para sugerir la función principal de la función en sí. Por ejemplo, si la configuración predeterminada es generar datos en un formato específico y un punto final de salida específico, un usuario podría inferir rápidamente el contexto. Ese tipo de conocimiento suele ser algo que solo se puede derivar de la documentación o la instrucción individual, sin embargo, un solo valor predeterminado podría decir mucho.

Además, el valor predeterminado puede servir para reducir el tiempo necesario para realizar funciones comunes. Si algo es predeterminado, esto significa que el proceso se usa de forma rutinaria y, por lo tanto, se usa de manera repetitiva. En tal caso, requerir que el usuario ingrese a esa función una y otra vez no tiene sentido. Un valor predeterminado podría aumentar la intuición de la CLI al tiempo que facilita el esfuerzo requerido para llevar a cabo las funciones básicas.

Relevante: generación automática de una CLI a partir de la especificación de OpenAPI

Adoptar definiciones estructuradas

“Podemos usar estructurado para representar intuitivamente la interfaz en la línea de comando. Cuando digo definiciones estructuradas, me refiero a una descripción de API, un esquema de API […] Utilice esa especificación para modelar la experiencia ".

Una práctica que puede ayudar a que cualquier CLI sea más intuitiva es la adopción de definiciones estructuradas. Al crear una CLI, estructurarla adecuadamente por forma y función, y luego permitir que esto se exprese al usuario final puede aumentar significativamente la capacidad del usuario para razonar, comprender y extender sus interacciones.

Puede lograr esto de varias maneras: la más fácil es simplemente adoptar esta práctica desarrollando con una CLI en mente. Si bien algunos se refieren a esto como "CLI primero", esto es, en realidad, otra rama de consideración del desarrollo y debe considerarse fundamental para la lógica empresarial general de la API en cuestión.

Otro método para hacer esto es adoptando esquemas y especificaciones que expliquen lo que hacen estas funciones, las organizan por forma y función, y luego mapean estas funciones de manera visible dentro de la CLI. Al adoptar esta metodología, el software puede beneficiarse de una mejor organización y, como tal, el usuario puede inferir funciones básicas.

Por ejemplo, si su esquema de API agrupa todas las funciones relacionadas con la transformación de medios en un grupo de funciones de transformación, el usuario necesariamente puede inferir que, si existe una función en ese grupo, está diseñada para ese caso de uso. Junto con los valores predeterminados, un usuario puede ver una función de un solo vistazo y comprender una cantidad increíble de contexto.

En un punto relacionado, los nombres deben ser concisos y, cuando sea posible, los alias deben ser accesibles. Si su esquema de API está formado correctamente, algo como "estado" debería reflejarse como tal; formar esta función en "-statusOfOrder" puede tener sentido desde un punto de vista teórico, pero para el usuario final, es opaco. Si es posible, podría ser mejor usar algo como “–s” o “-status”; esto no solo es más fácil de usar repetidamente, también es más fácil de entender en contexto.

Adopte prácticas y patrones comunes de CLI

La adopción de patrones CLI comunes puede contribuir en gran medida a mejorar la intuición de una CLI. Las CLI no son solo una faceta de la API, existen como una forma generalizada de interactuar con las máquinas y, en consecuencia, existen algunos métodos y prácticas comunes que, cuando faltan, sirven para empeorar la interacción.

El punto principal es estandarizar la producción. En la mayoría de los sistemas CLI, stdoutsirve como una ubicación de salida estándar y stderrsirve para errores estándar. Si las CLI no adoptan esto, los usuarios podrían sufrir problemas para ubicar los archivos de salida para su contenido y para interactuar con la API. En esencia, hacer que los usuarios persigan resultados y errores reduce la experiencia del usuario y genera una mayor complejidad.

Además, la adopción de patrones CLI comunes en términos de banderas puede resultar en ganancias significativas en la comprensión. Algo tan simple como usar el valor predeterminado -rpara recursivo, en lugar de algo como -recu, puede resultar en una función CLI que es fácilmente discernible, comprensible y utilizable. Las elecciones no estándar en este espacio solo pueden servir para crear un paradigma de participación menos fácil de entender.

Lea también: Comprender los poderes ocultos del rizo

Proporcionar documentación y ayuda en CLI

“Adopte la idea de una experiencia unificada en todos los medios de consumo. […] La documentación de ayuda, el uso de documentación y banderas y comandos, se genera para toda la línea de comando […] para que realmente obtenga la documentación que se representaría en otro lugar como información de uso ".

No importa cuán intuitivo crea que es su CLI, la realidad es que el usuario siempre encontrará algo difícil en algún momento. Esta es solo la naturaleza de una interfaz: si no desarrollaron la CLI, inevitablemente necesitarán algún tipo de aclaración. La forma en que su CLI proporciona esta ayuda y documentación puede ayudar a aclarar gran parte de esta inequidad.

No hagas que la gente busque información. En su lugar, proporcione esa información inmediatamente al usuario cuando lo solicite a través de la CLI. Utilizando -help-h, etc., para entregar la documentación en línea en la demanda puede resultar en el desarrollo del conocimiento inmediato, reduciendo la complejidad y facilitar la curva de aprendizaje. Además, esto puede ayudar a reducir la frecuencia de errores que surgen de comandos mal escritos.

Para ir un paso más allá, la CLI puede proporcionar corrección de errores cuando los errores tipográficos se envían accidentalmente. Al tener una CLI que sugiere automáticamente alternativas y comandos corregidos en línea, y permite al usuario invocar fácilmente estos comandos corregidos, el usuario puede navegar por la CLI y su funcionalidad sin poner tanto énfasis en eliminar errores ortográficos.

Conclusión

La realidad es que, si bien las CLI son quizás una de las mejores interfaces para una API, la razón principal por la que a menudo no se prefieren a las GUI y otras interfaces se reduce casi por completo a la falta de comprensión, educación, documentación y facilidad de uso.

Todo lo que se pueda hacer para aclarar estos puntos, entonces, solo puede conducir a una mayor adopción y, por lo tanto, a un mayor poder para el usuario. La forma en que uno mejora su CLI es muy importante; por lo tanto, la adopción de estándares, prácticas y métodos comunes dará como resultado mejores resultados.

¿Cuál cree que es la razón principal por la que las CLI no se utilizan con más frecuencia? ¿Es una preocupación por la usabilidad? ¿Es quizás una preocupación por la facilidad de uso? ¿Qué más se puede hacer para aliviar estos problemas? Háganos saber en los comentarios a continuación.

Publicar un comentario

0 Comentarios