什么是好代码?怎么写好代码?
Posted 黑马程序员官方
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是好代码?怎么写好代码?相关的知识,希望对你有一定的参考价值。
要想写出好的代码,你一定要牢记以下内容:
- 可读性——不只是你,还有你身边与你合作的其他开发者
- 可维护性——让你的代码在修改的时候很简单
- 简洁性——不要让你的代码看上去毫无必要的复杂
- 效率性——尽可能的让你的代码获得最快的运行速度
- 明确性——如果你的代码能够做到不解自明,在大多数时候,你根本无需为其配备说明文档。在为方法和属性命名的时候,做到尽可能的合理。把长的代码进行拆分。不要复制/粘贴代码块。
一、什么是好代码?
CUPID 就是从特质的角度来定义的,它尝试用一组助记词来指示好代码所具备的一组特质,并希望这组特质是最重要的特质。
- 可组合特质(Composable):主要体现在精巧的接口、可体现意图的代码、最小依赖三个方面;
- Unix 哲学(Unix):一个程序应该做一件事,并将其做好;
- 可预测性(Predictable):1. 与期望一致的行为;2. 输出确定的结果;3. 内部行为可观测;
- 符合惯例的(Idiomatic):通常团队会自己定义一些惯例,比如用什么工具,如何缩进等。借助各种语言的代码检查;
- 基于领域的(Domain based):代码应该用问题空间的语言来写,这样就能让代码的读者更容易的理解。问题空间语言即领域语言。
二、好代码怎么写?
在编码前,需要做好需求分析和系统设计。而这两项工作是经常被大量软件工程师忽略或轻视的环节。
在编码时,需要编写代码和编写单元测试。对于“编写代码”,读者都了解;而对于“编写单元测试”,有些软件工程师就不认同了,甚至还有人误以为单元测试是由测试工程师来编写的。
在编码后,要做集成测试、上线,以及持续运营/迭代改进。这几件事情都是要花费不少精力的,比如上线,不仅仅要做程序部署,而且要考虑程序是如何被监控的。有时,为了一段程序的上线,设计和实施监控的方案要花费好几天才能完成。
三、去哪找好代码?
读论文的时候会附带代码,或者去github这样的网站也有很多开源项目,大家可以找想要的方向或者感兴趣的代码看。
- github:https://github.com
- codeforge:http://www.codeforge.cn
- codesoso:http://search.codesoso.com
- 开源中国:https://www.oschina.net/
四、看哪些书?
- 《重构》: https://book.douban.com/subject/30468597/
- 《Clean Code》: https://book.douban.com/subject/4199741/
- 《代码大全》: https://book.douban.com/subject/1477390/
- 《编写可读代码的艺术》: https://book.douban.com/subject/10797189/
- write-readable-code: https://github.com/biezhi/write-readable-code
- 《Effective java 》: https://book.douban.com/subject/3360807/
- 《 The Clean Coder》: https://book.douban.com/subject/26919457/
- 《架构整洁之道》: https://book.douban.com/subject/30333919/
- 《人月神话》: https://book.douban.com/subject/1102259/
- 《领域驱动设计:软件核心复杂性应对之道》: https://book.douban.com/subject/5344973/
- 《代码的未来》: https://book.douban.com/subject/24536403/
- 《深入浅出设计模式》: https://book.douban.com/subject/1488876/
- 《软件架构设计:大型网站技术架构与业务架构融合之道》: https://book.douban.com/subject/30443578/
- 《微服务架构设计模式》: https://book.douban.com/subject/33425123/
最后再推荐两个相关的文档:
- 阿里巴巴 Java 开发手册 :https://github.com/alibaba/p3c
- Google Java 编程风格指南: http://www.hawstein.com/posts/google-java-style.html
“好的代码本身就是最好的说明文档。” — Steve McConnell
以上是关于什么是好代码?怎么写好代码?的主要内容,如果未能解决你的问题,请参考以下文章