`

对于开发人员,“极简原则”需要修正,请看“新极简原则”

阅读更多
有天去参加一个新产品发布会,听厂商的技术带头人讲到了“极简原则”,说到一句“能一句代码实现的,就不用两句代码”,听了之后,先是很感兴趣,继而深入思考这个问题。

我认为这句话说的有问题,对于做设计而言,如果把这个原则中的“能”改为“应”,才是一句完美的原则,可以用以指导各种类型的设计和开发。


“简单”是一种做事情的风格和方法,不是目的和目标。在科学界人们也更倾向于简单,尽量少的假设和外部条件,用简洁公式表达的概念和原理;界面设计上,简单清爽,给用户更好的体验,给用户以方便。这都是一种好的做法。


但是对用户来说,要得不仅仅是简单,如果仅是简单,为啥房子有锁,房间又有锁,屋子里重要的抽屉还有锁,麻烦吗?但是这是必须的,因为要安全。

另外,我们看《红楼梦》,洋洋洒洒,为啥不缩水简化成一篇呢?其实说白了,有些意思,适合用简短的方式描述,而有些,又不得不用很多篇幅来描述;有些内容,一个字一个词足以,有些内容,需要从多个角度多方描述。


编程有何尝不如是?能一句代码完成,但不一定是“应”一句话描述,这就是核心问题。

回到编程的最高境界,如疱丁解牛,要顺乎天理;而编程,则是要顺着业务和逻辑。怎样知道应当一句代码实现还是两句呢?这就要通晓业务和计算机的运转方式,用计算机语言来描述业务。

设计也是一样,该当复杂则复杂,该当简单则简单。


从这个角度来看,“极简原则”是对前些年设计和开发过于复杂化的一个进步,但是近年来,很多人迷信这个原则,设计师和程序员都以省事和简单作为自己的原则,事事凑合,垃圾产品一堆,也是不争的事实。设计师和程序员都应该是面对复杂问题和复杂度,解决复杂的问题,让用户简单的使用,完成业务。



新极简原则:

设计:应一个模块实现的,就不用两个模块;
编码:应一行代码实现的,就不用两行代码。



4
5
分享到:
评论
9 楼 windshome 2014-05-28  
感谢诸位。

我觉得设计师也罢,程序员也罢,判断什么时候“应”什么样子,是体现自身功力和价值的地方。
8 楼 houxinyou 2014-05-28  
“能”改为“应”,改的太合适的,一个字,把所有的弊端去掉,所有的优点体现出来
7 楼 Tyrion 2014-05-27  
josico 写道
看那些链式编程 看那些多层嵌套加无线递归
程序很简单,写给计算器和上帝看的


有意思的话题,我觉得链式调用挺好的啊,多层嵌套倒是让人挺不爽的,我每次碰到都有重构的冲动。
6 楼 windshome 2014-05-27  
vision2000 写道
编码:应一行代码实现的,就不用两行代码。


-------
如果是一个很复杂,很冷门,自创的公式,还不如多些步骤,多点代码写,在执行效率没那么严格要求的情况下,代码的可阅读应该要最高,用猪都能看懂的代码实现复杂的逻辑,也是大牛



老兄说得非常对。

“应”这个字,就是体现代码外部特性(正确性、业务要求)和内部特性(可读性、可延续性)的要求的。
5 楼 windshome 2014-05-27  
刚从外边回来,看到这么多朋友捧场,感谢!

其实,我的意思是不在于代码多和少,做到恰如其份,很好的表述出需求,体现出设计来就可以了。

盲目追求减少代码行数是个误区。
kanen001 写道
less is more



编程和文学在风格这件事上可以类比。都是用一种语言,讲述一件事情或若干件事情,
Lagunarock 写道
另外,我们看《红楼梦》,洋洋洒洒,为啥不缩水简化成一篇呢?
==========================
窃以为,这个类比不恰当。编程和文学是两回事,不应类比。
现在的软件工程,可维护性也是要重点考虑的。精简只是衡量代码的其中一项标准,可读性也需要考虑。
为了精简,使代码晦涩难懂,不可取。代码不仅机器读,更多的时候是其他的开发人员阅读。



一孔之见,希望大家各抒己见来谈淘。




4 楼 kanen001 2014-05-27  
less is more
3 楼 Lagunarock 2014-05-27  
另外,我们看《红楼梦》,洋洋洒洒,为啥不缩水简化成一篇呢?
==========================
窃以为,这个类比不恰当。编程和文学是两回事,不应类比。
现在的软件工程,可维护性也是要重点考虑的。精简只是衡量代码的其中一项标准,可读性也需要考虑。
为了精简,使代码晦涩难懂,不可取。代码不仅机器读,更多的时候是其他的开发人员阅读。
2 楼 josico 2014-05-27  
看那些链式编程 看那些多层嵌套加无线递归
程序很简单,写给计算器和上帝看的
1 楼 vision2000 2014-05-27  
编码:应一行代码实现的,就不用两行代码。


-------
如果是一个很复杂,很冷门,自创的公式,还不如多些步骤,多点代码写,在执行效率没那么严格要求的情况下,代码的可阅读应该要最高,用猪都能看懂的代码实现复杂的逻辑,也是大牛

相关推荐

Global site tag (gtag.js) - Google Analytics