博客统计信息

51cto专家博客 51cto博客之星
用户名:李云
文章数:152
评论数:808
访问量:491862
无忧币:3179
博客积分:6254
博客等级:8
注册日期:2009-06-20

我的技术圈(3)

更多>>
如何提高设计能力?
2010-03-10 09:00:27
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://yunli.blog.51cto.com/831344/282342
     要提高设计能力首先需要对软件设计有着精神上的追求,即在软件开发的过程中追求设计的完美性。梦想之所以有可能成为现实,是因为我们会去“想”并为之努力,软件设计能力的获得也不例外。设计能力的获得并不会因为不去追求而“不小心”获得且水平很高。具备软件设计追求的人,会在设计的第一时间积极思考以试图找到更优实现,也会随着产品的演变而反思是否存在更好的设计,或者在必要的时候会选择接受挑战去通过改善设计帮助团队走出困境。
     提高设计能力的另一个途径是实践加模仿。作者小时候很喜欢武术,在高中时经常看有关散打方面的书,看过之后还在头脑中想什么样的场景应当用什么样的招式,而且还经常拿自己的弟弟、堂弟和表弟作为演练对象(可苦了他们!)。在高中期间的一次与邻居同龄小孩的打架中,作者快速地将对方巧妙地摔倒在地上取得了胜利。站在一旁观战的表哥后来问了一个问题,“你如何快速地将他打倒在地?我没有搞明白!”。“因为我经常在头脑中假想格斗的场景以及操练”,作者当时是这么回答的。有了那次经历以后,作者也明白了为什么部队里面要有军体拳(简单地说就是武术操),也改变了军体拳只是个花架子的观念。什么东西只有对之熟悉了以后才能运用自如,而要熟悉它就得实践,且一开始是模仿性的实践。作者小时候打架能快速地制胜,正是因为看了书中的散打招式后,通过一定的假想和操练去训练大脑的反应,一旦在现实场景中出现了以前训练时的场景,就会本能地运用相应的招式。设计能力的提高也有相似之处,一开始要看别人的设计,且看出其中巧妙的地方,如果看懂了往往会在大脑中留下一定的印象。以后碰到类似设计主题时就会想起曾经在某一个项目中存在类似的设计,如果还完全记得那一好的设计是如何实现的,那就依样画葫芦地做。当然,如果不记得也没有关系,可以再查看那个项目的设计并模仿它。类似的模范多了几次的话,后面就很容易想到用它,且领悟其中的精髓并把握各种设计方法的本质,乃至最后自己也能创造性地思考出更优的设计方法。这种学习方法,对于学习面向对象开发更是重要,因为面向对象的设计思想更抽象。作者曾经的一个项目组长是如此评价面向对向设计的 ——“我觉得它很绕”。是的,在还没有完全掌握面向对象开发时就是这种感觉,但一旦掌握了就会觉得它是那样的自然和直接了当。
     实践和模仿的目的是为了最终形成自己的设计思想,设计思想的形成需要通过思考去做到。设计思想是什么?是设计时所遵守的各条原则。为什么有的设计一看就觉得好呢?是因为它符合某些设计原则。而思考的目的就是从各种好的设计中,找出藏在背后的原则。如何从一个好的设计中找出隐藏在后的设计原则呢?作者在高中时购买过一本武术书 —— 《截拳道》,这本书讲解了李小龙创立的截拳道。截拳道更加注重搏击效率,因此,它的招式都是以实用、直接打击对手为目的。诚然,在格斗的过程中,没有人会优先考虑自己的招式是如何的“酷”,否则就是找打,而应注重如何在格斗过程中占上风乃至最后取胜。李小龙的截拳道也正是从纷繁复杂的招式中发现最为简练的那些,通过对招式的简化来提高搏击效率。李小龙创立截拳道的过程或许与我们从好的设计中找出隐藏在背后的设计原则很相似,需要什么样的能力呢?洞察力!想一想,李小龙能创立截拳道是不是也正因为他对于武术招式独到的洞察力呢?他通过运用洞察力去去除那些在博击中没有打击效用的部分,以达到简化并提高博击效率的目的。洞察力不只对于找出设计背后所隐藏的设计原则有用,其实在整个软件开发乃至人生中都有着十分重要的作用。良好的洞察力有助于发现表象背后的本质,或寻找出问题的根源。软件行业的洞察力也可以理解为技术敏感度,或职业本能。
     设计能力的提高意味着将掌握更多的设计原则,能力的提高过程也是对设计原则进行精化的过程,理论上,应尽可能让各设计原则所涵盖的内容是正交的。设计不是简单地运用每一个原则,有时需要在各种原则中进行平衡。一个设计在两个原则之间存在一定程度的冲突时,是先满足其中的哪一个呢?还是两者都需要进行一定的折衷妥协?这些都需要有很好的平衡能力。平衡能力的获得同样需要通过思考,或者平衡能力也可以通过定义适当的原则进行掌控。
     追求设计之美是提升设计能力的原动力,实践和模仿起到的是熟悉各种“零星”的好设计,而思考则是帮助领悟各种“零星”的好设计并找出隐藏在其背后的设计原则,进而形成自己完整的设计思想体系。

本文出自 “李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/282342

分享至
更多
一键收藏,随时查看,分享好友!
syniii
1人
了这篇文章
类别:软件开发技术圈()┆阅读()┆评论() ┆ 推送到技术圈返回首页

文章评论

 
2010-03-10 16:07:09
没想到啊 博主竟然这么好斗
看起来很单薄
不过 熟,确实生巧,跟设计一个道理

2010-03-10 16:07:38
掌握的多了才能有更深的理解

2010-03-10 17:25:09
"实践和模仿的目的是为了最终形成自己的设计思想,设计思想的形成需要通过思考去做到。"博主这句话写的不错。但为什么不是先模仿而后实践呢?呵呵

2010-03-10 22:27:06
博主所言即是!顶了。

2010-03-11 08:35:22
很多事情要想,要领悟,深刻体会它,才会有感觉。
比如你所说的军体操,我想肯定有一些人纯粹是为完成动作而已,是没有感悟的。再比如说我们读书时做的早操,如果说我们真的是每个动作都到位地去做,当做早锻炼,绝对是能达到舒展筋骨的目的的,但是平时的我们有这种感觉吗,我想大部分是为完成任务而已,这就是没有感悟、没有体会地在做一件事的状态。

2010-03-11 13:06:26
转载了,有空了再仔细研究研究:)
http://sinojelly.20x.cc

2010-03-11 17:49:28
所言极是!
不过给博主个建议
文章比较长 看起来费眼神 如果每段间空一行就好了

2010-03-11 17:51:44
对 顶ls
段落小的话 可读性会好很多
拙见拙见

2010-03-12 09:48:19
说到心坎上了。我们公司的一个国内有名的大公司出的JAVA信息系统,让人头疼~~靠,真不是一般的差。。不点名了。

2010-03-15 13:32:40
好文章,收藏,顶了。

2010-03-24 12:19:42
截拳道?呵呵,我喜欢,其实很多东西都是相通的。

2010-03-25 10:06:56
设计追求完美非常好,生活中如果追求完美就糟了。
我这个被朋友誉为典型的自我完美主义的人,深受其害。

2010-05-21 21:52:13
经人月神话的推荐看到此文,写得非常好!能够从武术动作想到设计,这是触类旁通和融汇贯通。

2010-05-22 13:59:58
要提高设计能力首先需要对软件设计有着精神上的追求,即在软件开发的过程中追求设计的完美性。
Re:个人觉得如果换成一个设计人员具备很高的工作责任心来得现实的多。

曾经问过一个问题:一个人如何才能学好或理解哲学?
答:经历到了一定阶段后自然就懂了(也许是哲学也许不是,当然不是弄清楚哲学的定义)。但有些人可能一辈子都达不到这个阶段。
博主回复:
2010-05-27 07:47:22
对于第一个问题个人觉得不能用责任心替代,有些人工作其实很有责任心,但在设计能力上就是上不去,而你的第二个问题的答案回答了为什么会出现这种现象。

设计能力真正要达到高水平,一定要有精神上的追求,而这种追求其实也是一种兴趣!

2011-01-07 15:47:31
作者跟我有同样爱好,我也喜欢李小龙的截拳道,也爱看他的电影.那是一种哲学高度的思考产物

 

发表评论            

【技术门诊】专家解析:软考重点难点及应试技巧
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容: