20 | 桌面开发的宏观视角
许式伟
该思维导图由 AI 生成,仅供参考
你好,我是七牛云许式伟。今天开始,我们进入第二章,谈谈桌面软件开发。
从架构的角度,无论你在什么样的终端设备(比如:PC、手机、手表、手机等等),也无论你在做 Native 应用,还是基于 Web 和小程序,我们都可以统一称之为桌面程序。
如前文所述,一个桌面程序完整的架构体系如下:
对于桌面程序,最核心的话题是交互。为了把关注点收敛到交互上,我们下面重点讨论操作系统对交互范式的设计。
从需求角度看,桌面程序的交互方式并不稳定,它的交互范式经历了很多次的迭代。
命令行交互
最早出现的交互范式是命令行交互程序。使用的交互设备为键盘 + 显示器。
输入被抽象为一段以回车(Enter 键)为结束的文本(通常是单行文本,要输入多行文本,需要在行末输入“ \ ”对回车进行转义)。
输入方式有二:一是命令行,二是标准输入(stdin)。输出也是文本,但输出目标可能是标准输出(stdout),也可能是标准错误(stderr)。
正常情况下,标准输出(stdout)和标准错误(stderr)都是向屏幕输出。这种情况下,肉眼并不能区分输出的内容是标准输出,还是标准错误。
命令行交互程序的输入输出可以被重定向。一个程序的输出,可以被重定向写入到文件(标准输出和标准错误可以输出到不同的文件以进行区分),也可以通过管道功能重定向为另一个程序的输入。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
桌面开发的宏观视角 本文从桌面软件开发的宏观视角出发,探讨了桌面程序的交互演进历程。文章首先介绍了命令行交互、字符界面和图形界面等不同交互范式的特点和局限性,随后讨论了移动时代和智能交互时代的发展趋势。作者指出,交互体验越来越自然,但从编程的角度来说,如果没有操作系统支持,实现难度也将越来越高。文章最后展望了未来交互的可能发展方向,认为智能交互很可能不会止步于语音,而是会涉及视频,并与触摸屏完美融合。总的来说,本文通过对交互演化历程的回顾,展示了交互范式的演进是非常剧烈的,同时也指出了桌面操作系统的演进方向主要是交互范式的迭代,在向着越来越自然、越来越智能的交互前进。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《许式伟的架构课》,新⼈⾸单¥68
《许式伟的架构课》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(23)
- 最新
- 精选
- 苟范儿这些桌面的交互都主要是针对计算机、手机两类终端与人交互的. 鼠标、键盘(触摸屏)对应到手,图形界面对应到眼睛,语音对应到耳朵,麦克风对应到嘴巴. 但实际上交互的形式应该不局限于人与终端,也可以是终端与物体,而且以后应该会更多。举一些交互例子,比如: 1、商品自助结算(图像识别、磁识别、一维码等),商品与结算机的交互。 2、NFC 刷公交卡,共享单车的开锁(扫码、蓝牙),终端与其它设备的交互。 3、汽车的方向盘交互(未来演化为自动驾驶交互),方位控制。 4、摇杆控制(无人机等设备),涉及了空间方位的控制。 个人觉得在万物互联的未来,传感器会变的更丰富,智能程度也增高,反而物与物之间、终端与物体之间的交互会更多,反而人不需要经常作为任务的发起点进行太多交互,更多的交互放在智能设备(不局限于手机、计算机)之间。
作者回复: 挺好的补充。想象一下这些场景下的交互框架应该怎样才比较合理。
2019-06-28260 - 有铭老师,我可不可以这么理解: 一切要和最终用户直接进行交互的,都是前端系统,也就是您说的桌面开发 一切不需要和最终用户直接交互的(中间有隔着一层或若干层)。都算后端系统
作者回复: 可以这么理解
2019-06-2815 - Geek_88604f在命令行和字符界面时代,应用和交互系统是混在一起的。但是到了图形界面和智能交互时代,应用和交互系统分离了。这是什么原因,许老师?
作者回复: 命令行程序没有提供编程框架,业务你自己串联。图形界面程序你的业务代码由窗口系统抽象的事件驱动编程框架所驱动。
2019-06-2812 - Being老师您怎么看VR和AR这类智能交互呢,它们应该也属于语音、视频以及各种传感器之间配合的输入输出吧,其实也就是一套独立的智能交互系统吧。 还有像之前您的课程说的,“智能”应该属于操作系统里的框架,然后对于应用层来说就是各种场景的应用扩展,所以关于交互的智能系统,是否也是操作系统的职责呢?
作者回复: 我觉得智能交互系统是操作系统提供是现实的。智能则不一定现实。
2019-06-286 - Charles比如iOS APP这个桌面程序(native),好像对应不上那张“桌面程序完整的架构体系”配图,把浏览器这一层去掉就OK了吗?
作者回复: 嗯
2019-06-2836 - 歌在云端请问一下标准输入是什么跟命令行有什么不同
作者回复: C语言里面的scanf就是标准输入
2019-06-285 - williamcai个人认为,交互变化的是方式,本质上还是输出和输入
作者回复: 最多只能做到架构不变,不能做到代码不变。我们求的是代码不变。
2019-07-014 - 杨洪林现在一些巨头推出的带有显示屏智能音箱是不是就是老师说的未来的交互模式的雏形?
作者回复: 嗯
2019-06-282 - 蓝云许老师,为什么这些操作界面各异的软件,都可以称作为“桌面软件”呢?桌面软件这个关键词的意义在于什么呢?谢谢。
作者回复: 对于服务器软件来说,这些软件往往是面向机器的,不需要屏幕,需要log系统以便分析系统异常的原因。对于桌面软件,是面向终端用户的,ui和交互很重要。
2020-07-131 - 王棕生“命令行交互”类似于 当年的 ucdos,“字符界面”类似于 当年求伯君的 wps,“图形界面”类似于现代的word。许老师,我可以这样理解吗?
作者回复: 是的
2020-05-251
收起评论