我是否可以假设每个功能强大的应用程序都会提供命令行/脚本输入?
即使在现在的软件中有很多很多花哨的小部件,但我仍然认为现在UI中的命令行输入模式仍然是必要的,因为命令行/脚本输入更直接和简洁。如果应用程序可以提供更多特定于领域的脚本语言,那将会更强大。
有什么书提供了一些理论吗?有效的用户界面?
你问的是关于这个理论的相关书籍。该理论是将表示逻辑与业务逻辑或关注点分离开来的理论之一。这有很多名字,比如模型/视图/控制器,模型/视图/演示器,还有很多其他的,关于这个主题有很多书。
如果你以这种方式设计一个应用程序,表示层(即用户界面)是一个可以被另一个取代的独立实体。因此,既可以有图形用户界面,也可以有文本用户界面。可以说,在一个完美的世界里,所有的应用程序都是这样工作的,有桌面UI、web UI、命令行UI等等。
然而,这一切都要付出巨大的代价。以这种方式设计应用程序很困难,而且由于应用程序和UI之间的松散耦合,可能会造成性能损失。进一步增加难度的是,向复杂的应用程序提供丰富的命令行界面本身就很困难。例如,你如何创建Adobe photoshop或Microsoft Excel的命令行输入?所以,虽然这在理论上是可能的,但从实际意义上讲,随着UI复杂性的增加,它变得越来越困难。然而,有许多应用程序能够实现这一点。例如,许多版本控制系统,如BitKeeper、AccuRev和其他版本控制系统都有命令行和图形界面。
所以,是的,大多数应用程序可以同时实现图形UI和命令行UI是可能的,而且确实有一些应用程序这样做,期望所有应用程序都将或甚至可以这样做是不合理的。