开发命令行工具的 12 个最佳实践

解锁网页源代码:在线查看与源文件提取工具全解析 本文全面解析了查看和提取网页源代码的多种实用方法。从浏览器自带的右键菜单、F12开发者工具等基础操作,到在线源代码获取工具和解除页面限制工具,详细介绍了如何应对静态与动态内容,并提供了处理复杂场景的进阶技巧与安全实践指南。 阅读详情

简评:设计良好的命令行应用是极富生产力的工具,本文介绍了开发命令行工具的 12 个最佳实践

CLI 是构建产品的绝佳方式,与 Web 应用不同的是它需要的时间更少,并且功能更强大。使用Web,你可以执行开发人员编写的任何操作,使用 CLI,你可以轻松地将多个工具混合在一起以执行更加高级的任务,而这需要更多的专业知识才能使用,但仍然适用于管理任务、高级用户任务或开发人员产品。

在 Heroku,我们提出了一种称为 「12-factor app」 的方法,这是一套旨在制作易于维护的优秀 Web 应用程序的原则。我们还构建了一个名为 oclif 的 CLI 框架,旨在遵循这些原则使用Node 构建出色的 CLI 应用。

本着这种精神,在构建下一个 CLI 时,请记住以下 12 个因素:

  1. 良好的帮助命令是必不可少的(Great help is essential)
  2. 倾向于使用选系代替参数 (Prefer flags to args)
  3. 明确当前的版本(一般是 --version/-V)(What version am I on?)
  4. 关注流处理(输入输出流和重定向)(Mind the streams)
  5. 处理错误(Handle things going wrong)
  6. 颜控(Be fancy!)
  7. 尽量提示(Prompt if you can)
  8. 使用表格(Use tables)
  9. 唯快不破(Be speedy)
  10. 鼓励开源贡献代码(Encourage contributions)
  11. 清晰的子命令(Be clear about subcommands)
  12. 遵循 XDG 规范(Follow XDG-spec)

原文:12 Factor CLI Apps

在Ubuntu 20.04上告别版本混乱:用qtchooser轻松管理Qt 5.12、Qt 6.2等多个版本 本文详细介绍了在Ubuntu 20.04上使用qtchooser工具管理多个Qt版本(如Qt 5.12、Qt 6.2等)的方法。通过配置和使用qtchooser,开发者可以轻松切换不同Qt版本,解决版本混乱问题,提高开发效率。文章涵盖了安装、配置文件结构、自定义版本添加、版本切换技巧及实战案例,是Qt开发者的实用指南。 阅读详情

相关推荐

鸿蒙HarmonyOS开发知识:命令行工具Command Line Tools

将解压后command-line-tools文件夹的bin目录配置到环境变量中。

weixin_55362248的博客 3326

从 0 到 1 开发一个 node 命令行工具

G2 5.0 推出了服务端渲染的能力,为了让开发者更快捷得使用这部分能力,最写了一个 node 命令行工具 g2-ssr-node:用于把 G2 的 spec 转换成 png、jpeg 或者 pdf 等。最后得到如下的图片 bar.png:那接下来就来看看如何从 0 到 1 实现 g2-ssr-node。

Cipher_Y的博客 1151

DataWorks PyODPS第三方包全攻略:从打包到加载的完整流程

本文详细介绍了在DataWorks的PyODPS节点中使用第三方Python包的完整流程,包括环境限制、打包工具pyodps-pack的使用、资源上传与加载实战,以及特殊场景处理技巧。通过本文,开发者可以掌握在MaxCompute受限环境中灵活使用自定义依赖的方法,提升数据处理效率。

dd012的博客 989

开发超爽的nodejs命令行程序

开发nodejs命令行程序以一般会到什么库?commander有了以下三板斧,基本上就可以写出一个很好命令行程序了吗?如果想要更爽些,则推荐使用MixedCli。是一个命令行应用开发框架,其主要是对commander/prompts/logsets的封装,提供了更加友好的命令行开发体验。

Fisher的专栏 1188

大模型和任务型对话系统如何结合

三种方法都是基于prompt1.prompt中定义大量可分类的domain标签,每种标签含有的样例。走对话系统nlu常规步骤,domain分类,意图分类,slot提取等。缺点:需要很复杂的prompt,写的未必完善。需要多次调用llm2.prompt中定义每种query下可以调用的functioncall。3.也是基于prompt,可以管理对话主题,实现更丰富的话题流转。面向某个具体领域,没有细分的domain类别。

qq_29837229的博客 2450

ETL基础概念及要求详解

ETL即Extract(抽取)Transform(转换)Load(装载)的过程,如下图,同时也包括数据清洗的部分,是数据从源端到目标端的一个数据处理的过程,是构建数据仓库的重要一环,但不局限于构建数据仓库其他BI(商业智能)的设计和开发数据分析平台也经常用到ETL。

qq_43605229的博客 8944

从零开发一个node命令行工具

【日常记录】【node】从零开发一个node命令行工具

呆呆狗 1501

汽车软件工程师必看:ASPICE开发流程全解析(附各阶段交付物清单)

本文全面解析了汽车行业广泛采用的ASPICE开发流程,详细介绍了从需求挖掘到系统架构设计、软件工程及测试验证各阶段的关键操作和交付物清单。针对汽车软件工程师,提供了实用的协作指南和工具推荐,帮助团队提升开发效率并降低项目风险,是掌握ASPICE标准的必备指南。

weixin_30733003的博客 642

十六、命令行工具 (CLI) 开发

本文详细介绍了使用Rust开发命令行工具的完整流程。从项目结构搭建(包含Cargo.toml配置、模块划分),到核心功能实现(命令行参数解析、错误处理、日志系统),再到高级功能扩展(进度条、配置文件支持)。重点展示了如何利用clap、tokio、anyhow等流行库构建功能完善的CLI工具,包括子命令支持、异步处理和用户友好的交互体验。文章提供了完整的代码示例和模块化设计方案,可作为开发Rust命令行应用的模板,特别适合需要日志记录、错误处理和异步操作的生产级应用开发。

a736015的专栏 1030

记录一下本地部署Dify的坑

1. 截止2025-3-4为止,请注意,不要直接拉Dify的1.0.0版本。请先试用0.15.3版本。1.0.0有一个bug需要解决。3. 请使用docker-ce 新版本,docker-engine等老版本可能会有部分容器启动脚本执行莫名报错。2. 注意,请使用docker-compose V2版本,或者V1较高版本,否则会导致解析官方yml模板错误。

哈利路亚的收藏夹 5346

【原创,解决CLodop安装后无法调用的问题】已经安装过CLodop,但是网页上仍然提示“clodop云打印服务(localhost本地)未安装启动,点击这里执行安装....”

在某些国内web网站中,需要安装一个名为“CLodop”的插件;但在实际使用过程中,即使安装了CLodop插件,网页试图调用它时还是会提示“clodop云打印服务(localhost本地)未安装启动,点击这里执行安装...”,且无法完成相关打印任务 本文属原创博客,分析了解决CLodop无法被调用的问题,并附上了原理和解决方法,本质上是和跨域请求以及CORS类安全组策略相关

link_in_csdn的博客 2万+

开发工具和常用命令

开发工具 uniapp:HBuilder X java:Intellij IDEA(spring boot、spring cloud) android:android studio 文本工具:Notepad++ 面板工具:phpstudy 服务器部署:xshell、xftp 服务器运维:宝塔面板 截图工具:Snipaste markdown:Typora nginx:服务器部署前端(多页面用alias) VS Code win + shift + i 打开vue-antd ctrl + shift

你滴风的博客 7990

2篇5章1节:实验流行病学的核心特征和设计原则

本文系统阐释实验流行病学的核心定义、四大核心特征、四大基本原则及主流设计类型,结合骨科、肿瘤科、儿科、精神科、内外妇儿及公共卫生等多学科临床实践案例,具象化解读人为干预、随机分组、平行对照、前瞻性设计的核心内涵与应用价值。同时,规范梳理对照、随机、盲法、重复四大研究基本原则,详细介绍临床试验、现场试验、社区试验三类主流研究设计的适配场景与应用差异。

MD Code 167

Command-Line Rust高级技巧:错误处理、文件I/O和正则表达式最佳实践

想要掌握Rust命令行开发的核心技能吗?Command-Line Rust项目为你提供了完美的学习路径!这个开源项目基于《Command-Line Rust》书籍,通过12个完整的命令行工具实现,帮助你深入理解Rust的错误处理机制、文件I/O操作和正则表达式应用。无论你是Rust新手还是想要提升命令行开发技能的开发者,这个项目都能提供实用的学习资源。 [![Rust命令行开发示例](https

gitblog_00317的博客 452

【Docker安装】Ubuntu 24.04.2 LTS系统下安装Docker环境——指定APT源安装方式

【Docker安装】Ubuntu 24.04.2 LTS系统下安装Docker环境——指定APT源安装方式

jks212454的博客 625

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Navicat密码查看工具:5分钟快速找回数据库连接密码的终极解决方案

你是否曾经因为忘记Navicat中保存的数据库密码而无法连接重要数据库?或者需要迁移数据库配置时发现密码被加密无法查看?Navicat密码查看工具正是为解决这些痛点而生的开源神器。这个基于Java开发的工具能够快速解密Navicat 11和12+版本中保存的加密密码,无论你是数据库管理员还是开发人员,都能在几分钟内找回丢失的访问权限。 ## 为什么你需要这个密码恢复工具? 在日常数据库管理工作

gitblog_00886的博客 184

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

JD-AutomatedTools项目使用指南与常见问题解析

JD-AutomatedTools项目使用指南与常见问题解析 项目概述 JD-AutomatedTools是一个自动化工具项目,旨在为用户提供便捷的自动化操作解决方案。该项目采用Python语言开发,具有跨平台特性,能够帮助用户简化重复性工作流程。 快速开始指南 直接运行方式(推荐新手) 对于不熟悉Python开发环境的用户,项目提供了可直接运行的程序文件: 前往项目发布页面下载最新发行版 解压...

gitblog_07114的博客 477

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Unix命令行工具最佳实践

输入:同时支持文件参数和标准输入输出:默认机器可解析,--human选项供人阅读错误:错误信息输出到 stderr,不影响正常输出退出码:成功返回0,失败返回非0进度:仅当输出到终端时才显示进度可组合:输出格式便于管道处理(每行一条记录)引用:正确处理空格和特殊字符Unix命令行工具的最佳实践,本质上是对人类认知局限的谦卑承认。将复杂操作拆解为管道链 → 承认人类无法一次性处理复杂问题使用→ 承认人类会犯错,需要机器辅助检查。

vortex5的博客 1162

每个Web开发者都该了解的12条命令行

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 原文出处:https://tutorialzine.com/2017/08/12-terminal-commands-every-web-developer-should-know 在开发者的弹药箱里,命令行是最具生产力的工具之一。掌握它们可以给你的工作流程带来非常积极的影响。因为,许多日常任务...

葡萄城技术团队博客 3360

12款最佳Linux命令行终端工具

本文中,介绍了12款最佳Linux命令行终端工具,可以用来替代debian系的Linux原生终端。如果你每天需要花大量的时间使用Linux命令行,而且正在寻找一些可替代系统自带的老旧且乏味的终端软件,不妨看看这篇文章,或许能给你带来一些帮助。 AD:2014WOT全球软件技术峰会北京站 课程视频发布 如果你跟我一样,整天要花大量的时间使用Linux命令行,而且正在寻找一些可替代系统自带的老

生死看淡,不服就干! 5472

Dagster CLI工具集:命令行界面开发与运维的最佳实践

在现代数据工程实践中,命令行界面(CLI)已成为开发者和运维人员不可或缺的工具。Dagster作为新一代数据编排平台,其CLI工具集提供了强大的项目管理和运维能力。本文将深入探讨Dagster CLI的设计理念、核心功能以及最佳实践,帮助您构建高效的数据管道开发工作流。 ## Dagster CLI架构概览 Dagster CLI基于模块化设计,采用Click框架构建,提供了丰富的命令组和子命...

gitblog_00916的博客 530

linux 命令行 常用软件,12款最佳Linux命令行终端工具

12款最佳Linux命令行终端工具如果你跟我一样,整天要花大量的时间使用Linux命令行,而且正在寻找一些可替代系统自带的老旧且乏味的终端软件,那你真是找对了文章。我这里搜集了一些非常有趣的终端软件,可以用来替代debian系的Linux原生终端。Tildatilda这是一款可配置的雷神之锤风格的终端工具,也就是说,当用户敲击配置好的热键(缺省是F1)时,这个终端会从屏幕的顶端滑出,就跟雷神之锤游...

weixin_35662493的博客 2373

Node 如何开发一个命令行工具

最近山月开发了一个从任意 URL 解析内容并生成 markdown 的小客户端工具: markdown-read。用以我个人公众号的内容获取及一些优质内容的整理收藏,欢迎 Star、下载及...

奇舞周刊 758
上一篇: 你所未知的人工智能应用领域
下一篇: 耗时 2 年,用 8.5 万块乐高积木最牛复刻 Apple Park
极光推送
博客等级 码龄14年 109粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值