为什么优秀的程序员也是优秀的设计师

在高科技行业中,我听过很多伟大的开发人员声称对设计一无所知。他们将设计当作是一个神秘的世界,一个编程世界之外的世界。他们觉得他们永远无法“干”设计的工作,因为他们根本没有关于这方面与生俱来的能力。

但是请恕我不敢苟同。好的编程也是不错的设计。因为,好的代码是经过精心设计的代码。任何能写出好代码的程序员其实也是在写经过精心设计的代码。定义什么是优秀代码的原则惊人地相似于何为优秀设计的原则。

不信的话,请看Dieter Rams的Ten Principles of Good Design,不知道你发现了没有,在几乎所有情况下,你都可以用”代码“一词取代”设计“,用”软件“一词取代”产品“,然后你就得到了关于如何编写好代码的原则。

图片
图片

好的代码是创新性的

这是显而易见的,当你写代码时,你的目的是尽可能地用最好的方法解决问题。

好的代码让软件有用

如果你正在写的代码不能在软件中发挥作用,而且也不利于其他一些有用的代码,那么很可能这些代码是没有必要的,而不必要的代码通常是不好的代码。

好的代码具有审美趣味

好的代码易于阅读,优秀程序员知道,花时间去想一个明确的名字、分解功能、致力于代码的可读性是值得的。好的代码在屏幕上会有一种美感。它总是被很好地执行、规划和组织。

好的代码让软件更易于理解

此外,分解功能,以及选择有意义的方法名和变量名在好代码中是必不可少的,并且能够表达代码的目的,使代码更易于理解。难于理解的代码往往是不好的代码。

好的代码不唐突

好的代码不会打扰其他代码,会保持代码的SOLID原则,而这对于创建良好的可维护代码非常重要。当这个方法干扰到另一个方法时,它会导致我们很难管理代码。方法本身应该是独立的,这样才能更易于管理,更易于重用。

好的代码言行一致

确保代码的行为和它的名字和目的保持一致,分解这些问题在代码中很重要。如果你的方法是一个命名函数,那么它应该只需命名即可,不需要做其他。它不应该提供保存、更新、重命名、删除以及其他任何凡是定义中没有明确说明的功能。

好的代码是持久性的

创建易于管理,易于维护的代码非常重要。可能你的某些代码在10年之后依然在被使用,但如果你创建了一堆不好的混杂了问题的代码,那么它们就会时不时地成为你前进路上的拦路虎,让你头痛不已。

好的代码周密详尽

好的代码是对问题经过全面周详考虑的解决方法,事无巨细,面面俱到。这包括彻底测试不同的情况,使得解决方案尽可能地准确有效。

好的代码对环境友好

可能听上去有点夸张,但好的代码确实以一种不同于实物的方式做到了对环境友好。好的代码会友好地对待软件环境,它不会重复代码,它会做好它应该做的事,并分解问题。不好的代码会对软件环境产生不良的影响,它会造成代码污染,让项目变得“丑陋不堪”(就像真正的环境污染一样)。

好的代码总是尽可能地精简

好的代码旨在创造优雅的解决方案,做它应该做的事情,不重复代码,并且经过很好地组织。最大的项目膨胀是由于方法重复,组织不良以及分解事物要点的关注点混杂而造成的。好的代码会精简化事情,简化到核心功能,然后合并这些核心功能以建立软件。

综上所述,那些能写出好代码的程序员也是真正的设计师,他们用于创造解决问题最佳方案所遵循的原则,与作为最优秀的设计师所要坚守的原则几乎如出一辙。好的代码就是经过精心设计、精心雕琢却又不显唐突、持久、易于使用、易于阅读、可管理且又有用的简单代码。好代码与最佳UI和最美家具的生产方式相同,只是很多人没有意识到而已。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,568评论 25 707
  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 10,981评论 6 244
  • 开始进入学习骨盆知识的笔记整理中。 专业知识来源于李哲老师的解剖课程。 说在前面的话:这是我开始学习解剖的整理记录...
    舒涵vivian阅读 1,597评论 3 12
  • 印象中的集装箱, 常常存在于港口码头, 作为大型装货容器被用于货物运输, 工业味十足。 用它搭建展示区, 会有什么...
    景观邦阅读 586评论 0 0
  • 初体验 深夜食堂在爱奇艺开播后,迎来骂声一片。无非是说照搬国外生硬尴尬亦或者某某女星尬演技。 在我看来,演技固然重...
    牛哆圆阅读 394评论 0 0