Fish是一个智能且用户友好的命令行shell,适用于macOS,Linux和其他家族。fish包含语法突出显示、根据你键入字符自动提示autosuggest-as-type和花式选项卡完成等功能,无需配置。

Banq注:其中autosuggest-as-type是最棒的,因为Linux下键入命令有时很难准确,除非经常使用的网络人员,所以,只能搜索引擎搜索,比较消磨时间,其实命令行方式只要有自动提示,肯定强于Windows的图形化方式,过去Linux一直在桌面东施效颦,模仿Windows的图形界面,其实努力方向错了,坚守命令行方式,并向人类友好方向开拓,比如搞个autosuggest-as-type不比你花老鼻子力气做啥图形界面省心啊,界面你做得过windows,做得过苹果吗?

fish设计有三个高水平的目标:

  1. 可以在其他shell语言中完成的所有操作都应该可以在fish中完成,尽管fish可能会依赖外部命令。
  2. fish是用户友好的,但不能以牺牲表现力为代价。通过精心设计,实现强大和易用性之间的主要权衡。
  3. 在不违反上述目标的情况下,fish应遵循Posix语法。

正交法则

shell语言应该有一小组正交特征。任何情况下两个功能相关但不相同,其中一个应该被删除,另一个应该变得强大和通用,足以处理任何一个功能的所有常见用例。

理由:

相关功能使语言更大,这使得学习更难。它还会增加源代码的大小,使程序更难维护和更新

响应法则

shell应该始终尝试对用户保持响应,即使面对争用或无响应的文件系统。只有在响应用户启动的操作(例如运行命令)时才阻止。

理由:糟糕的性能会增加面向用户的复杂性,因为它会训练用户识别和处理缓慢的用例。这也令人非常沮丧。

可配置性是万恶之源

程序中的每个配置选项都是程序过于愚蠢的地方,无法自行确定用户真正想要的内容,应该被认为是程序和实现它的程序员都失败了。

理由:不同的配置选项是维护的噩梦,因为特定配置组合引起的潜在错误数量很快就会成为一个问题。配置选项通常意味着对重新实现代码时更改的代码的假设,从而导致向后兼容性问题。但大多数情况下,应该避免使用配置选项,因为它们根本不应该存在,因为程序应该足够聪明,以便做到最好,或者至少足够接近它。

用户关注的法则

在设计程序时,首先应该考虑如何制作一个直观而强大的程序。只有在设计用户界面后才应考虑实施问题。

理由:

此设计规则与其他设计规则不同,因为它描述了应该如何设计新功能,而不是功能应该是什么。关注可以做什么以及容易做什么的问题在于暴露了太多的实现。这意味着用户必须对底层系统有很多了解才能猜出shell是如何工作的,这也意味着语言通常会相当低级。

可发现性定律

应该设计一个程序,使其功能尽可能简单,以便为用户发现。

理由:可以发现其功能的程序可以在较短的时间内将新用户转变为专家,因为用户只需使用它即可成为该程序的专家。

图形程序相对于基于命令行的程序的主要好处是可发现性。在图形程序中,只需查看用户界面并猜测不同的按钮,菜单和其他小部件的功能,即可发现所有常见功能。在命令行程序中发现功能的传统方法是通过手册页。这需要用户开始使用不同的程序,然后他们记住新信息,直到他们下次使用相同的程序。

写在最后

最新文章

  1. 用c#开发微信(5)自定义菜单设置工具 (在线创建)
  2. Spring Security3中的-authentication-manager标签详解
  3. 4.3.5 使用Http:// (Https://)协议连接到ActiveMQ 2015年9月28日
  4. Xamarin.ios——First APP
  5. 安装rpm包
  6. AC日记——回文子串 openjudge 1.7 34
  7. Surf特征提取分析
  8. 【POJ】2299 Ultra-QuickSort(逆序对)
  9. 夺命雷公狗---Thinkphp----1之目录介绍
  10. 项目设计&重构&性能优化
  11. GPG error [...] NO_PUBKEY [...]
  12. URI和URL的区别 【转】
  13. 第三次作业-结对编程(wordcount)
  14. 关于confluence上传文件附件预览查看时出现乱码的问题解决办法
  15. [OSX] 使用 MacPorts 安装 Python 和 pip 指南
  16. requests库的get请求,带有cookies
  17. CSS兼容IE Firefox问题与解决方法
  18. 一个MMORPG的常规技能系统
  19. 【MongoDB安装】MongoDB在centos linux平台安装
  20. 爬虫框架Scrapy之案例一

热门文章

  1. Sencha Toucha 2.1 文件上传
  2. PatentTips - Substitute virtualized-memory page tables
  3. [bzoj1935][Shoi2007]Tree 园丁的烦恼 _树状数组
  4. 用于改善质量、稳定性和多样性的可增长式GAN
  5. Codeforces Round #332 (Div. 2) B. Spongebob and Joke 模拟
  6. 查看及改动Oracle编码格式方法
  7. Git Stash方法
  8. 深入理解android view 生命周期
  9. CF 86D 莫队(卡常数)
  10. java的list类