关于架构的一句话,还有一个实例
昨天有幸邀请到周爱民先生在懒懒交流会上分享《前端,架构、框架和库》,很精彩睿智的讲演,受益颇多。其中提到对架构的一个描述:
架构是把握问题的关键,平衡设计。
很认可。下面是我的理解:
- 什么是把握?在武术届有一种器械训练方式是“抖大杆”:一条白蜡木做的大杆,杆长超过两米,训练者一手把杆,一手握住杆的底部,全身配合双手,将杆抖出各种样式。把和握是两个不同的动作,把的是方向,握的是基底。把握是一种掌控,武林高手能让大杆随心而动,随意而行,这就是把握。把握可以以把为主,以握为辅,随心所欲,花样百出。把握亦可以握为主,以把为辅,以气驭剑,天马行空。
- 什么是问题?物理学家狄拉克有一个典故。有一天他到一个学校去演讲,讲完以后,主持人说:“大家有什么问题?可以问狄拉克教授。” 这时,有一个学生站起来说:“刚才你在黑板上写的那个方程式我不懂。” 狄拉克没有回答,好长时间都没有回答。于是主持人就问:“狄拉克教授,您可不可以回答这个问题呢?” 狄拉克说:“那不是一个问题。” 狄拉克为何拒绝回答?因为提问者看不懂方程式只是现象,而不是问题。什么是问题这个问题,推荐阅读杰拉尔德·温伯格的经典著作《你的灯还亮着吗 — 发现问题的真正所在》。
- 什么是关键?关键的原始释义是门闩。关是关闭,把门合上,键指机械零件。放到现代,关键就是门上的锁。如何找出未知问题的关键所在?资深的盗墓者,遭遇一个前所未有的机关时,首先是观察,尽可能的获取信息。其次是分析,尽可能推断机关背后的机理。紧接着可能会联想和尝试,用已有的破解技巧,去尝试解决当前问题。反复以上步骤,不懈努力,等机关破解的那一刹那,盗墓者也就明白了该机关的关键所在。
- 什么是平衡?Douglas 说,万事皆权衡。架构的好坏,是一个适不适合场景的问题。无论是类库的设计,还是某一行代码的书写方式,好坏与否,都要看这个类库或这行代码,使用在什么场景下。Google 首页可以省去 html 结束符,但并不意味着你的博客这么干也是妥当的。在前端界,table 布局也不是万恶不赦的。如果你的用户群里还有不少用户在使用非常旧式的浏览器,table 布局就是最合适的方式。
为了进一步阐释,下面举一个实例。
阅读全文 »
