命令行应用设计:默认行为与外部配置指南
1. 输入处理与错误处理
在开发命令行应用时,首先要处理输入。对于任务名称(task_names),代码会检查其是否为空。若为空,则将标准输入流的每一行赋值给它。由于这些字符串包含换行符,我们可以结合 Ruby 的 map 和 chomp 方法去除换行符。 map 用于映射数组元素, chomp 用于去除字符串末尾的换行符。
同时,良好的错误处理也很重要。在基于 GLI 的应用中,我们可以安全地抛出异常,应用会以非零状态退出,并向用户显示异常信息,而不会显示讨厌的回溯信息。
2. 决定默认行为
默认行为是指应用在没有选项时的行为。例如, db_backup.rb 的默认行为是压缩数据库备份。选择最佳默认行为很大程度上取决于应用的功能,但许多命令行应用有两个常见行为:修改系统和产生输出。
2.1 防止默认的破坏性操作
在 UNIX 系统中, rm 是一个具有破坏性的命令,用于删除文件。但当仅在命令行输入 rm 时,不会有任何不良影响,它会显示使用说明,且默认是非破坏性的。我们的应用也应像 rm 一样,默认防止对用户数据的破坏性操作,但也要允许这种操作的存在。
判断一个操作是否具有破坏性,可以将其视为应用正常操作之外的任何不可逆操作。例如,使用 todo new 添加新任务不是破坏性操作,因为
超级会员免费看
订阅专栏 解锁全文
2527

被折叠的 条评论
为什么被折叠?



