请推荐书籍 - 描述 GUI 开发的原理与思想的书

2021-10-21 20:19:20 +08:00
 lawfun

学过 Android 、Flutter 、Web,发现有些共性,都是需要 先测量,布局再绘制。 而且 GUI 程序肯定也有异步处理,不然 耗时任务会卡住 GUI 。

后来想 GUI 开发也发展了很多年,从老早前的 windows 软件、QT 、J2ME 、诺基亚,很多语言都有自己的 GUI 开发库,比如 Python 有 Tkinter 、Kivy 、PySide 、wxPython 等等。

所以, 想请教下有没有 这样一本书,描述了 GUI 开发的共性、原理的,能让人能一通百通的。

3524 次点击
所在节点    程序员
23 条回复
thtznet
2021-10-22 14:41:34 +08:00
如果领域只是停留在 GUI 的设计、交互层面,那么这是 UX 的领域,这方面的书应该是有的,但更多的是设计领域,和计算机其实没太多关系。如果 GUI 的面需要向下扩展到数据的组织层面,那么这部分的开发并不是楼主说的有共性,这几年的前端可以时时再变,数据驱动原理每家都不一样,目前属于百花齐放阶段,还没有万剑归宗然后出一个集大成版,静待吧。
secondwtq
2021-10-23 01:46:32 +08:00
再推 Raph Levien 的 Towards a unified theory of reactive UI https://raphlinus.github.io/ui/druid/2019/11/22/reactive-ui.html
这老哥后来写了个后续,不过我暂时没太看得懂 https://raphlinus.github.io/rust/druid/2020/09/25/principled-reactive-ui.html

GUI 这种书难找的原因我猜是不存在一个绝对主流的 pattern 和主流场景,印象中你说的那些“通用”的书,如果是主要面向工程实践的,就必然会受到应用中主流 pattern 和主流场景的影响。受影响较小的“原理和思想”的书基本都是纯理论性的,典型的一个大类是讲算法的书(包括通用算法,密码学算法,图形学算法,视觉算法,AI 算法等 ...),我看了下我的书单,除此之外其他的满足条件的书难找( OS 、数据库和网络大部分书我认为是受到主流 pattern 影响很大的)。

比如你说的“深入浅出面向对象分析与设计”这个书,我大概查了下,感觉主要面向的还是“Java 外包开发”,对其他“非主流”场景不一定适用(就不谈他这个“面向对象”的定义问题了 ...)。实际上像 MVC 、MVVM 这些设计模式已经是一种“通用原理”,但是这些也远远不够“通用”到 cover 整个“主流” GUI 世界的程度,因为 GUI 就不存在“主流”。

GUI 只能在各路通用 pattern 中找出代表性的框架,再针对框架找代表性的书。比如传统 Retained mode GUI 比较典型的 Win32,以及在此基础上的 MFC 、VCL 。加入了更多设计模式的 Cocoa 和 WPF 。Immediate mode 的 Dear ImGui 。最新的是 Raph Levien 所谓“Reactive UI”即 React 、Elm 、Flutter 、SwiftUI 这一代(这个还有很多 open problem )。上面每一组都是完全不同的模式,最多只能做到你学了典型框架 VCL 就大概了解了传统 Retained mode GUI,就好像看了“深入浅出面向对象分析与设计”就大概了解了 Java 的面向对象设计。
luamer
2023-09-16 23:09:42 +08:00
看来只能从源码学了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/809631

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX