标题:和jiuan针对“我对框架的理解”的讨论 出处:Felix021 时间:Tue, 29 Dec 2009 22:49:27 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?1800 内容: 注: 以下内容稍有处理,隐去一些不适合放上来的内容。 felix021 10:14:18 我昨天跟同学(即sandy)有讨论了一下,他说,我举的例子属于“非本质性复杂”,就是说,是语言层面可以解决的,通过取舍,或者修正历史遗留问题解决,但是框架方面的,比如机制和策略的分离,这个属于本质性的复杂,不是语言层面可以解决的 zja 10:34:01 我觉得做出这个选择的最重要标准是系统的规模。 这句说的挺本质, 写的不错, 另外多发现一些现有框架的优点, 尽可能多的找出设计的的矛盾对立面 比如开放性,封闭性 开放性:当有新的需求到来的时候,能不能快速适应 封闭性:框架严格戒定了我能做什么,我不能做的开发都自行实现 两都又各有优缺点:开放的框架适应性强,封闭的框架清楚,明了,稳定 felix021 10:43:07 嗯 我们的框架非常强大 这个是肯定的 zja 10:43:15 实际类似这样的矛盾对立面尽可能多的了解到的话, 设计上就会提高了,想的面多了, 不存在怎么样做是最完美的, 只能说针对现有的情况,且实很好的解决了问题 felix021 10:43:22 只是我在使用过程中遇到一些困扰 felix021 10:43:39 这种感觉很像是我在用 C++的时候的那种感觉 felix021 10:44:17 仔细想想其实这是不可调和的矛盾,但是还是觉得有些别扭 zja 10:45:42 玩程序就像练武, 一开始不要总武当不好,少林不好,xx也不好, 不如深入的喜欢一门,比如武当, 当你对这一门武艺精通到一定程度,(内功) 那么这时候才是你该跳出来的时候, 其它武功哪地方好,应该熔合进来, 往往这时候,跳出来是最难的了。 felix021 10:46:03 这个比喻好~~受教 zja 10:47:16 如果没有专一的对一门武艺的深入研究,连架子都拉的不对, 内功就更不用提了, 那么根本没有理解道这门武艺一剑封喉的点, 框架有时候也可以这么理解, 分久必合,合久必分, felix021 10:48:38 嗯~我内功还欠缺的很,这些是这实习几个月的感受。 以前对框架性的东西接触的少,呵呵。 zja 10:48:48 当你使一个框架的时候,总会觉得其它方式更好, 因为他的优点总是被乎略,缺点总是很容易被看到, 草总是远处的绿, 因此要更深入的去理解它的时候, 你要看穿这些东西, 比如这个大框架,比如...框架,我们都很容易发现它的缺点, 但我觉得多去发现它的优点,本质的东西掌握了一定层面, 可能再去想想它的缺点(跳出来)会更有意义, felix021 10:51:39 嗯 学习这框架之后的确是感受到他们的强大 也是用了一段时间以后才发现有一些不合意的地方 zja 10:52:22 这东西就是一个往返的过程, 这说明进步了, 但我觉得可能还不够,可能过段时候你会又感觉到它的好, 再过段时候你又会感觉到他的不好, 就是多层面多角度的去看问题, 当然,这要你我们慢慢积累的经验, 往往许多东西走到一定层面,就出会现回归, 比如某server的接口拆分, 现在看起来当初合的有很多道理了, 但当初想拆的时候,同样有N多理由需要拆, 这就是一组矛盾,要辨证的去看, 我觉得没有绝对的错,也没有绝对的对, 看应用,看需求,看规模, felix021 10:56:56 嗯。需求的变化,规模的增长,带来太多不确定性,不是可控的,只能在变化中学习,不断摸索不变的东西积累起来,最后才能以不变应万变。 zja 10:58:36 是的, 康神的一句话,现在记得很清楚, 基本原则不能违背, 基本原则遵守的好的,敌人再绕,总在我们手掌心, 但基本原则打破了,我们发现一个露洞修一个,发现一个修一个,总也修不完, felix021 10:59:40 嗯 我该再好好回顾设计模式相关的内容 现在再去看 应该会有更深的体会 zja 11:00:14 多关注矛盾很有意义, 比如大小表问题, 比如分表与不分表问题, 比如缓存与一致性问题,等等, 看现有的如何很好的解决的, 这时候你才会想,我遇到这样的矛盾很纠结的时候,这是不是一个很好的参考点, felix021 11:01:07 嗯 这样的矛盾是本质上的复杂性,如果能想清楚,就能在实际的设计、开发过程中做出最好的权衡 zja 11:01:37 是的, 其实再多想一步, 编程是这样,工作,生活也是这样, felix021 11:03:29 嗯 我一直觉得程序和生活之间还是有很多相通的地方的 ~多谢jiuan了,以上所说的内容我会再好好想想 :) Generated by Bo-blog 2.1.0