桌面软件开发的宏观视角

第108篇

极客时间《许式伟的架构课》课程笔记。

桌面软件开发的宏观视角_第1张图片
桌面程序架构体系

对于桌面程序,最核心的话题是交互。
下面重点讨论操作系统对交互范式的设计。

命令行交互

  • 交互设备:键盘+显示器
  • 输入方式:命令行或标准输入(stdin)
  • 输出:文本方式向屏幕输出,分为标准输出(stdout)和标准错误(stderr)
  • 输入输出可以被重定向,比如重定向写入到文件或者通过管道重定向另一个程序的输入
  • 缺陷:限制太大,无法满足常用需求,如编辑器


    桌面软件开发的宏观视角_第2张图片
    命令行交互程序的结构

字符界面

  • 交互设备:键盘+显示器
  • 输入方式:键盘按键事件(KeyDown 和 KeyUp)
  • 输出:可以修改屏幕任何位置显示的字符
  • 键盘功能分化:输入文本和输入命令
  • 缺陷:有很大局限,如游戏的需求场景无法满足
桌面软件开发的宏观视角_第3张图片
字符界面交互程序的结构

注: TDI 含义是字符设备接口(Text Device Interface),它指的是一组向屏幕绘制文本的方法集合。

图形界面

  • 交互设备:键盘+鼠标+显示器+音箱
  • 输出:从字符变成像素。鼠标的出现就因为屏幕精度太高,用键盘不自然
  • 主板上有内置喇叭,目前最大用途是提示重大错误发生
  • 出现多窗口Window(视图view),窗口是一个独立可复用的界面元素
  • 窗口系统接管桌面程序主逻辑,提供基于事件驱动的编程框架,业务代码由界面框架驱动
桌面软件开发的宏观视角_第4张图片
图形界面交互程序结构

注: GDI 含义是图形设备接口(Graphic Device Interface),它指的是一组向指定窗口(注意不是屏幕)绘制图形的方法集合。

移动时代

  • 手机成为最主流计算机
  • 交互设备:触摸屏+麦克风+内置扬声器
  • 鼠标交互被淘汰,多点触摸取代鼠标
  • 键盘+鼠标+显示器全部被融合在触摸屏上

智能交互

  • 麦克风让计算机增加了一个输入:语音
  • 语音3种典型用法:应用内录音作为媒体,或者识别为文本(语音搜索)、语音输入法输入文本、基于语音助手交互(如Siri)
  • 未来交互设备:触摸屏+摄像头+麦克风+内置扬声器
  • 语音交互发展成熟后,可重写框架,把语音和触摸屏结合,形成新的交互范式
桌面软件开发的宏观视角_第5张图片
智能交互程序结构

你可能感兴趣的:(桌面软件开发的宏观视角)