- 相关推荐
程序猿你们知道吗?揭秘10大编码原则
回顾一个程序员的职业生涯,每一个人都会曾和一些有才能的人一起共事过,曾解决过一些非常严重的技术难题,也见识过一些业界名气颇大的技术公司。近日,从国外一个程序员和其团队的经历,针对程序上成果中编码时应该知道一些原则。这不是规矩,也不是指导方针,只是这个团队在编写和运行代码时总结出来的一些需要注意的原则。
1.偏执
对于这一点来说,很多程序员几乎是天生的,甚至一些靠自学才成为了程序员。他们不相信电脑,也不相信刚修复的bug已经修复完毕。除非多次检验之后,才会相信已经如自己所愿地理解了问题。
而偏执是一个程序猿的朋友,而且也应该成为每一个工程师的“朋友”。程序猿应该总是想着从另一种方式来证实假设,或者从另一个角度去看遗漏什么。虽然很多时候这是没有必要的,但有时它能发挥至关重要的作用。
2.不要欺骗计算机
换而言之,就是“避免抽象漏洞”,系统该怎么用就怎么用,每一个程序猿不要别出心裁自创用法。不要指望计算机会出现什么奇迹,特别是如果系统使用规模超过当前的三倍,那么就得考虑重新设计。如果你欺骗了计算机,它绝对会给你带来想象不到的后果。
3.保持简单
很多程序员喜欢创建一些新事物、解决一些难题。这是为什么他们干这一行的原因。但很多时候对于程序来说,发现某个问题可以解决,却并不意味着现在就是解决它的好时机。有些程序员喜欢简单易于理解的设计,对此这是一个难度不小的挑战,以一种复杂的方式解决问题不难,但是只有优秀的程序员才能用一种既简单又易于理解的方式解决问题。
理解是重点,要知道程序员大部分时间是在维护代码,而不是写代码。
4.?第一准则是:不要优化
就John?Bentley经典书籍《编程珠玑》,它旨在帮助新人像一个经验丰富的程序员一样思考。虽然已经发行了好多年,但是上面的很多经验教训仍然适用于当今社会。另外,优化可以采取多种形式:速度、后验形式、潜在规模、可能用途等。
但大多数的优化最终是没人用的,而且从定义上看优化会使得设计更加复杂。优化的第一准则是:不要优化,除非完全理解整个问题。但第二戒律依然是:“不要优化”,即使你理解也要真的需要才能去优化。
5.要修复所有再次可能发生的bug
对于每一个程序员自己犯的错误没必要牢记。每个人都讨厌出现bug,甚至对犯错的系统讨厌去修复同样的bug,所以为了避免这种情况,每当修复一个bug时,你需要去思考bug还有可能出现在哪里?以后又比http://meiwen.anslib.com/news/55B15DD9CF8B9CD1.html较容易出现在什么地方?什么原因造成的bug?
6.不断地做问题假设
对于程序员而言,最好养成一个不断询问自己的习惯“为什么要这么做?这能解决什么问题?有没有更好的方法?有没有什么更重要的事情还没做到的?”。作为优秀的编码应该一直保持这种态度,不断地询问自己这些假设情况。什么是真正需要解决的问题?只要求解决效果而不必追究根本原因?解决方案完整吗?
7..放慢步伐?长远思考才跑得快
作为工程师,长远思考是最重要的一点。每一个人追求高效的工作效率:喜欢不断地创建、再创建。但是如果不能用长远的角度看问题,只会使得最后越来越难构建任何东西。特别是当没理解问题就直接去写代码,最后导致程序不得不放弃。
另外,有时候匆忙没有完成设计,从而导致后期别人需要花更多的时间来修复。有时候直接就复制或者借鉴了别人的内容,为忙着赶项目进度未能好好思考。面对这些情况,目光要看得长远,要知道目标是给用户建设更好的功能,拥有最广泛的用户。
关心自己的代码(图片来源computertrainingschools.com)
8.关注自己的代码
这一点对于每一个程序员看似没必要过多解释,但现在有很多人并不以为然,为自己写的代码更多地投入关注。但也不必极端,工程师对待代码就像对自己的宠物一样,而程序员和代码之间的关系更像是一个牧场主,但碰到代码不听使唤的时候依然气愤。
9.成本、速度、正确率
作为软件中的铁三角关系,成本、速度、正确率是全世界软件工程师追求的目标。所谓程序员的优秀和伟大之间的区别往往在于驾驭这三个方面的能力,但三者不可兼得,当面临这三个方面需要妥协的时候,一定要明白妥协什么,在确定妥协的情况下做出最正确的选择。
10.保持好奇心?不断地学习
作为一个工程师,如果你没有了好奇心,不愿意学习新鲜事物,不再关心新技术、新语言,那么你从事编码工作的意义何在?对于以上十个编码原则可能并不完美,期待更多的交流和反馈。