- 在线客服 
  - 扫描二维码 
 下载博学谷APP
  - 扫描二维码 
 关注博学谷微信公众号
如何写出一手好代码?这真是一个宽泛而又需要落实到具体的问题。我们都知道,良好的代码更易于阅读、理解、调试和修改,最重要的是它的缺陷也更少。下面的十条最佳实践应用于你编写的所有代码,或许能给你一些启示。

1. 遵循单一职责原则
函数是程序员的工具中最重要的抽象形式。它们能更多地被重复使用,你需要编写的代码就越少,代码也因此变得更可靠。较小的函数遵循单一职责原则更有可能被重复使用。
2. 尽量减少共享状态
你应该尽量减少函数之间的隐式共享状态,无论它是文件作用域的变量还是对象的成员字段,这有利于明确要求把值作为参数。当能明确地显示函数需要什么才可以产生所需的结果时,代码会变得更容易理解和重用。对此的一个推论是,在一个对象中,相对于成员变量,你更应该优先选择静态的无状态变量 (static stateless variables)。
3. 将“副作用”局部化
理想的副作用(例如:打印到控制台、日志记录、更改全局状态、文件系统操作等)应该被放置到单独的模块中,而不是散布在整个代码里面。函数中的一些“副作用”功能往往违反了单一职责原则。
4. 优先使用不变的对象
如果一个对象的状态在其构造函数中仅被设置一次,并且从不再次更改,则调试会变得更加容易,因为只要构造正确就能保持有效。这也是降低软件项目复杂性的最简单方法之一。
5. 多用接口少用类
接收接口的函数(或 C++ 中的模板参数和概念)比在类上运行的函数更具可重用性。
6. 对模块应用良好的原则
寻找机会将软件项目分解成更小的模块(例如库和应用程序),以促进模块级别的重用。对于模块,应该遵循的一些关键原则是:
尽可能减少依赖
每个项目应该有一个明确的职责
不要重复自身
你应该努力使你的项目保持小巧和明确。
7. 避免继承
在面向对象编程中,继承 —— 特别是和虚拟函数结合使用时,在可重用性方面往往是一条死胡同。我很少有成功的使用或编写重载类的库的经历。
8. 将测试作为设计和开发的一部分
我不是测试驱动开发的坚定分子,但开始编码时先编写测试代码会使得代码十分自然地遵循许多指导原则。这也有助于尽早发现错误。不过要注意避免编写无用的测试,良好的编码实践意味着更高级别的测试(例如单元测试中的集成测试或特征测试)在揭示缺陷方面更有效。
9. 优先使用标准库而不是手写的
我经常看到更好版本的 std::vector 或 std::string,但这几乎总是浪费时间和精力。一个明显的事实是 —— 你正在为一个新的地方引入 bug,其他开发者也不太可能重用你的代码,因为没有被广泛理解、支持和测试。
10. 避免编写新的代码
这是每个程序员都应遵循的最重要的教诲:最好的代码就是还没写的代码。你写的代码越多,你将遇到的问题就越多,查找和修复错误就越困难。在写一行代码之前先问一问自己,有没有一个工具、函数或者库已经实现了你所需要的功能?你真的需要自己实现这个功能,而不是调用一个已经存在的功能吗?
一个优秀的程序员应该懂得通过刻意的练习,然后从别人的经验中学习。只有这样你才能不断提升,使得产出的代码质量有助于你成为更优秀的程序员。
— 申请免费试学名额 —
    在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
    
    讲师一对一辅导,在线答疑解惑,指导就业!
  
相关推荐 更多
  - 程序员30岁后能干什么?还有发展前途吗?
 - 关于程序员这个职业的发展常常会有人唱衰,在一些人的固有观念里,程序员就是青春饭,过了30岁就是在走职业的下坡路。其实这完全是一种偏见,技术岗位的生命周期是很长的,如果一个程序员只能干到35岁,只能证明工作的时候都是在混日子,没有用脑力而使用的蛮力。那么程序员30岁后能干什么?还有发展前途吗?其实无论是深入钻研技术,还是向管理层发展,其职业前景都是十分不错的。 - 14295 - 2020-01-12 11:58:04 
  - IT程序员赚钱吗?高薪程序员很普遍吗?
 - IT程序员赚钱吗?高薪程序员比较普遍,薪资和个人工作能力成正比,高薪酬背后离不IT开程序员们高劳动力的付出,不要盲目的去选择入行IT就业,学不好IT技术是无法获得高薪回报的,同事不同技术人才的薪资与经验的相关性不尽相同。 - 7296 - 2020-03-17 17:30:20 
  - IT程序员面试注意细节有哪些?
 - IT程序员面试注意细节有哪些?技术娴熟面试失败的原因可能是准备不足。IT行业技术迭代快,需要保持不断学习的习惯,学习应该成为一种习惯,这能让应聘者将来的工作做得更好、职业生涯更上一层楼。大多数的面试目的是面试官为公司找到适合企业发展的人才,为企业创造价值。 - 5318 - 2020-03-31 13:59:35 
  - IT程序员的坏习惯有哪些?你中了吗?
 - 有一些程序员虽然工作了很多年,但工作表现就像刚入行的新人。但有些程序员拥有几年的工作经验,具有良好的工作习惯表现出惊人的增长潜力。软件行业的工作经验和从事这个行业的工作年限直接相关。但从事这项工作的年限并不一定代表获得了相同年限的工作经验。 - 4371 - 2021-05-10 11:02:22 
  - 日常工作中程序员最讨厌哪些工作事项?
 - 任何工作都有好和坏的一面,每个领域和职业都有它的优点和缺点,大多数时候人们只谈论优点而忽视了缺点,有时候缺点都超过其优点。 - 2972 - 2022-06-24 10:27:46 
 
  
  
 