20年⽼程序员告诉你的20条编码原则​

1.不要纠结于开发⼯具——不管是库、编程语⾔还是平台。尽可能使⽤原⽣的构件。不要歪曲 技术,也不要歪曲了问题本身。为要解决的问题选择合适的⼯具,否则你要为你所选择的⼯具重新安排你的⼯作。

2.你写的代码不是给机器看的,⽽是给你的同事和未来的你看的(除⾮你写的是⼀次性代码或汇编代码)。写代码的时候要考虑⼀下初级开发者,他们会把你的代码作为参考。

image

3.优秀的软件是协作开发的结果。⾼效沟通,进⾏开放式的协作。信任他⼈,并让他⼈也信任你。尊重他⼈胜过尊重代码。以身作则,把你的追随者变成领导者。

4.分⽽治之。为分离的关注点开发单独的低耦合模块。进⾏单独的模块测试和集成测试。尽可能按照实际情况测试,同时也要测试到各种边界情况。

5.不要把⾃⼰与代码捆绑在⼀起,要想办法让其他⼈也能修改你的代码或者添加新的功能,这样你才能更容易脱身去参与其他项⽬,或者去其他公司。不要捆绑⾃⼰,否则你很难成⻓。

image

6.安全性是分层的,每⼀层需要进⾏单独的评估,同时⼜与整体相关。⻛险是⼀个业务决策,与脆弱性和概率有直接的关系。每⼀个产品或组织都有不同的⻛险偏好(为了获得更 ⼤的收益,他们愿意承担⻛险)。通常这三个关注点之间存在相互冲突:⽤户体验、安全性和性能。

7.要意识到每⼀⾏代码都有其⽣命周期,它们最终都会死掉。有时候,⼀些代码会在发布之前就死掉,所以要学会放⼿。代码可以分为三种:⼀种是核⼼代码,就像汽⻋的引擎,没有了它,产品就毫⽆意义;⼀种是必要的代码,就像是汽⻋的备胎,平时⽤得少,但⼀旦需要,它决定了系统的成败;⼀种是增值的代码,就像汽⻋的杯托,如果有那是再好不过,但如果没有也不会影响产品。

8.不要把你的个⼈标识融⼊到代码⾥,⼈和代码应该是分离的。不要把其他⼈对代码的评价与你⾃身联系到⼀起,在评价他⼈的代码时也要⼗分谨慎。

image

9.技术债务就像快餐⼀样,偶尔⽋下⼀点技术债务是可接受的,但如果你习惯了这样,它会毁掉你的产品(⽽且是以让你措⼿不及的⽅式)。

10.在寻找解决⽅案时,请按照这样的优先级进⾏决策:安全性 > 可⽤性(可访问性和⽤户体 验)> 可维护性 > 简单性(开发者体验)> 简洁性(代码量)> 性能。但不能盲⽬照搬, ⽽是要根据产品的特点进⾏取舍。你积累的经验越多,就越是能够在这些因素之间做出权衡。例如,在设计游戏引擎时,性能享有最⾼的优先级,但在开发银⾏应⽤程序时,安全性则最为重要。

11.拷⻉粘贴是滋⽣bug的温床。对你所拷⻉或导⼊的东⻄加以审查,bug⼀般会藏身在复杂性中。依赖项复杂没有关系,但不能让它存在于代码中。

12.不要只顾着写正常的代码,处理异常的代码也要好好写。让⼈们明⽩为什么会发⽣异常、 如何检测到的以及怎样解决。对所有的系统输⼊(包括⽤户输⼊)进⾏验证:尽早失败, 并尽可能从错误中恢复。我们要假设⽤户⼿⾥握着⼀把枪:你努⼒让⽤户输⼊⼀些其他的东⻄,⽽不是让他们的⼦弹射在你的脑⻔上。

image

13.不要使⽤依赖项,除⾮使⽤它们的成本⽐你⾃⼰写代码的成本低很多。因为使⽤依赖项要导⼊、维护、处理bug,在必要的时候还要进⾏重构,这些都是成本。

14.远离“炒作驱动开发”,但你要去了解它们,做⼀些尝试。

15.⾛出舒适区,每天都要学习。把学到的东⻄分享出来。如果你以⼤师⾃居,就不是在学 习。接触更多的编程语⾔、技术、⽂化,保持⼀颗好奇⼼。

16.好代码不需要注释,⽽优秀的代码提供了良好的注释,可以让任何⼀个原先没有参与代码演进、试错和需求过程的⼈更容易阅读、修改它。

17.尽量避免使⽤重载、继承和隐式的智能特性。使⽤纯函数,它们更容易测试和诊断,否则的话就使⽤类。实现不同功能的函数要使⽤不同的名字。

18.在彻底了解问题之前不要急着写代码。花在倾听和了解问题上的时间通常⽐花在写代码上 的时间要多。在写代码之前要先了解问题域。问题就像迷宫⼀样,你要循序渐进,反复进 ⾏“编码 - 测试 - 改进”,直到把问题解决为⽌。

19.不要尝试去解决不存在的问题。不要进⾏投机性编程。只有在确定代码确实需要具备扩展 性之后才让代码具备可扩展性。通常情况下,当代码被扩展之后,你会发现问题会变得与 原先认为的不⼀样了。

image

20.⼤家⼀起开发软件会更加有趣。建⽴可持续发展的社区。倾听,激发灵感,学习,分享。

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

推荐阅读更多精彩内容

  • 大二某个上课的清晨,一位美美的广告专业老师借了我一本书,那本书叫做《人生十四堂创意课》。看完了这事书之...
    陳影_阅读 361评论 1 4
  • “天呐,诸葛亮,那个是诸葛亮吧,诸葛亮!”夏臻激动地拉着旁边同行的女生。此刻他们,她还有一群男男女女正走在通往一个...
    没事闲着吐吐槽阅读 389评论 5 1
  • 实操心得: 今天找了杨满意和姚安互换群,进了几个比较优质的增长群。没有通过爆粉,在外面买了一个爆粉的软件,速度是3...
    麦狗一生阅读 176评论 0 0