请推荐书籍 - 描述 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 条回复
zjsxwc
2021-10-21 20:43:26 +08:00
从 jquery 到 backbone 到 vue 到 react ?
AoEiuV020
2021-10-21 20:44:46 +08:00
但凡口碑好点的书都会有这种"一通百通"的内容,
但书要讲解经验总得有案例有 demo,就必须针对某个具体的平台具体的语言具体的框架,
不可能干巴巴讲解的,这简直是假设读者已经懂了以上所有具体 gui 正在上升哲学层面,卖不了几本的,
shawnsh
2021-10-21 20:55:58 +08:00
确实没有这种书,因为好的资深前端都转后台开发了🐶。我之前也在找这种书籍,不过没有。如果有指导思想的话,学习起来会很快。期待大神写个这样的书
agagega
2021-10-21 21:00:01 +08:00
确实没遇到这种书。不过可以学点底层图形学的知识,可以更好理解上层 API 的设计逻辑
makelove
2021-10-21 21:05:34 +08:00
现在的 Web 那套模式才是 GUI 开发发展的最佳模式,以前那套传统桌面 GUI 开发模式有点落后了,开发效率不行,代码还乱
learnshare
2021-10-21 21:20:12 +08:00
数学 -> 计算机图形学 -> 2D/3D 图形渲染
MakHoCheung
2021-10-21 21:28:38 +08:00
@makelove Web 的那套模式是什么模式,jsx 还是 mvvm 呢,现在的 MAUI 、Compose for desktop 和 SwiftUI 又如何
Bromine0x23
2021-10-21 21:55:58 +08:00
找到本《用户界面设计》
Mutoo
2021-10-21 22:05:57 +08:00
分享一下自己前些年的系列笔记:浅析事件驱动的 GUI 原理,共三篇
https://blog.mutoo.im/2017/08/understanding-event-driven-gui/
DoctorCat
2021-10-21 22:12:43 +08:00
从相对简单的 native gui 框架入门书看吧,例如 Tkinter GUI Application Development Blueprints,其实原理都大同小异。深入的渲染,例如使用 dx 技术除外
lawfun
2021-10-21 22:21:55 +08:00
@makelove 看到 最佳 还想 辩论几句,后来一想“最”字也是个语气助词吧。
Flutter 的模式 也很优秀。
现在 Flutter React 小程序 都是 数据驱动的方式去 修改展示数据,Android 中虽然也有,但是很多实践中都不用。
lawfun
2021-10-21 22:28:59 +08:00
@learnshare
数学中的几何比较常用,有时做动画需要套些简单的数学公式。
矩阵在 图形变换时有用。
渲染属于比较深的知识了,OpenGl 看了几天没看懂,相机中加滤镜可能需要,一般 APP 估计用不太多。
dandycheung
2021-10-22 00:48:28 +08:00
简而言之,GUI 就是树状矩形的层次化管理,理解起来并不难。它之所以复杂,古早时期是因为对象数量可能较多,导致要进行大量内存组织利用的优化工作;晚近时期则是由于半透明和及时更新导致的多层内容组合重绘问题。色位宽、面积大,导致像素数据量巨大,数据的运算和传输上 CPU 要重度依赖 GPU 的接口和规范。事件(含用户输入)模型又跟系统的进程线程调度勾连。这些相关的各个方面都了解后就没那么困惑了。
binux
2021-10-22 01:06:00 +08:00
GUI 开发不是重度依赖操作系统给你提供的接口和库吗,怎么实现,最佳实现是什么已经给你定好了,你还能有思想?
holulu
2021-10-22 07:37:59 +08:00
一直在找 GUI 最佳实践类的书,但没找到。感觉方向不太对,最近在找游戏 UI 的书。
encro
2021-10-22 09:08:15 +08:00
gui 思想:从最开始手动操作界面,到 mvc,到数据绑定(mvvm)。
encro
2021-10-22 09:10:05 +08:00
@holulu

当前最佳实践应该就是数据绑定:在 MVC 的基础上,将数据和界面再分离出来------只需要操作数据,界面自动变化。
ychost
2021-10-22 09:52:32 +08:00
WPF 那套模式蛮优秀的,后面的前端框架多多少少用到了里面的一些 DataBinding 等思想
2i2Re2PLMaDnghL
2021-10-22 09:57:08 +08:00
GUI 分为三个部分,一个是 G,一个是 UI,一个是如何用 G 去做 UI
UI 设计是有专门的书籍的,甚至还专门细化出用户体验设计(简称 UE 或者 UX )
G 的部分,计算机图形学。
至于如何用 G 去做 UI,哲学思想都一直在变,MVC 到 MVVM 中间经历了不少,我们能确保 MVVM 是最终形态了吗?

@binux 操作系统之上建立了 HTML+DOM+CSS 的方式,在这之上又建立了 MVVM 的数据流线。接口和库永远是可以封装的。
bg7lgb
2021-10-22 10:31:36 +08:00
有本书,比较老,讲 X window 的,从光栅到字元绘制,从最基础的讲起。忘记书的名字了。

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

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

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

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

© 2021 V2EX