"烂代码",7点建议

简介: 今天跟大家分享如何写好代码的几点建议,希望在写代码的时候能够提供一些帮助。

今天跟大家分享如何写好代码的几点建议,希望在写代码的时候能够提供一些帮助。

image

1、编码规范

每种编程语言、每个框架都有自己的一套编码规范和编码最佳实践方式,例如 PEP8 是 Python 语言的编码规范,作为 Python 开发者,每个人至少要将 PEP8 读上三五遍,熟记于心并运用在项目中。

2、文档注释

程序员最讨厌的两件事情:一,别人的项目没有文档和注释,二,自己的项目要写文档和注释。

经常看到一些项目连起码的 REAMDME 文件都没有,这跟demo没什么区别。如果你的项目没有文档,一旦有新人进来接手也是一脸懵逼,还显得非常业余。所以,一个正经的项目至少要说明项目的是做什么的,用了哪些东西,程序怎么跑起来等等。

简单的代码自然无需写注释,良好的代码自身就是文档和注释,但是如果有较复杂的代码逻辑就必须用注释来加以说明你当时写这段代码是如何思考的,否则隔两个月自己都不知道写的什么烂代码,还在骂这是哪个傻逼写的。所以,我们写注释应该在该写的时候才写,写多了或者写少了都不合适。还有一种情况就是过期的注释,需求变更代码更新后,发现注释还是旧的。

虽然Python是一门优雅简洁的语言,但是同样离不开注释的帮助,毕竟,代码是写给人看的。

3、避免重复代码

软件设计原则里面有个DRP原则,就是在一个项目里面不要写重复的代码,如果同样的逻辑出现超过两次,那么你就考虑将它进行封装成为一个函数或者公有方法。过多重复的代码到后面将导致很多潜在的问题,一处有问题,导致处处都有改动。

4、测试覆盖率

测试驱动开发(TDD)是目前主流的开发模式,但是我们往往因为项目进度或者懒惰,而将单元测试忽略了。没有单元测试的代码就像一座危楼,你永远都不知道里面有哪些坑,因为一旦改了一处代码,你无法预知对整个系统有什么影响,而单元测试是对代码质量的一种保障,测试覆盖率越高,潜在问题越少。

5、安全意识

安全问题没发生前都是小事,一旦发生将是不可估量的大事情,几年前CSDN这么大一个网站竟然还闹出将密码用明文存储的笑话,可见程序员的安全意思有多低,密码至少要做HASH存储并加盐处理。去年时候大疆的程序员将服务器的key上传到github也是典型的安全意思缺乏。什么东西该同步到代码库什么东西不该放要区分清楚。常见的web安全也要清楚,像SQL注入,CSRF、XSS攻击的基本原理以及如何预防等等。

6、设计与架构

如果设计架构错了,代码写的再好也白搭,好比建房子设计错了,房子在漂亮也华而不实,可能隐藏重大安全隐患。合理的设计与架构在于根据业务做合理的取舍,遵循逐步演进原则,切忌无脑跟风参考 BAT 规模量级来设计你的系统,好的系统都是演变过来的。抛开业务谈技术都是耍流氓。

7、学习交流分享

分享你的所得,和比你厉害的人多交流,多看书学习。推荐三本好书给大家,对提高写代码的能力有帮助。

原文发布时间为:2018-07-28
本文作者:刘志军
本文来自云栖社区合作伙伴“Python爱好者社区”,了解相关信息可以关注“Python爱好者社区

相关文章
|
9月前
|
SQL 人工智能 Java
程序员:你见过哪些要命的奇葩代码?
程序员:你见过哪些要命的奇葩代码?
79 0
|
11月前
|
数据库
我又写了一堆烂代码
“我又写了一堆烂代码!” 这句话我经常对自己说,目的是为了督促自己不断地思考所写的代码是否足够可靠。
40 0
|
12月前
|
消息中间件 缓存 NoSQL
用一个月重构了同事写的烂代码,我总结了8条重写烂代码的经验!
用一个月重构了同事写的烂代码,我总结了8条重写烂代码的经验!
|
缓存 JavaScript 小程序
接手前同事代码,特别烂,各种BUG,看麻了。。。
接手前同事代码,特别烂,各种BUG,看麻了。。。
|
消息中间件 JavaScript 小程序
用1个月重构了同事写的烂代码,我总结出了15条重写烂代码的经验!
用1个月重构了同事写的烂代码,我总结出了15条重写烂代码的经验!
|
SQL 存储 监控
聊聊那些年遇到过的奇葩代码
无论是开发新需求还是维护旧平台,在工作的过程中我们都会接触到各种样式的代码,有时候会碰到一些优秀的代码心中不免肃然起敬,但是更多的时候我们会遇到很多奇葩代码,有的时候骂骂咧咧的吐槽一段奇葩代码后定睛一看作者,居然是几个月以前自己的写的,心中难免浮现曹操的那句名言:不可能,绝对不可能。
聊聊那些年遇到过的奇葩代码
|
数据库
【硬着头皮】 比较两个数大小,麻烦写得整洁点
【硬着头皮】 比较两个数大小,麻烦写得整洁点
【硬着头皮】 比较两个数大小,麻烦写得整洁点
|
JSON Java 测试技术
如何写出让人抓狂的代码?
如何写出让人抓狂的代码?
如何写出让人抓狂的代码?
|
算法 Java
别在网上乱找代码了,找了一段代码突然爆了!!!
本人是做游戏服务器开发的,碰到一个需求,给符某些要求的玩家的发送道具奖励,奖励的数量根据离线的天数计算。 这个需求实现起来很简单,只需要在玩家上线的时候计算上次离线时间和当前时间间隔的天数,然后根据策划的算法,计算出道具种类与数量,发一封邮件给玩家就可以了。
|
机器学习/深度学习 Rust Cloud Native
论好文章和烂文章
我们为何写作?对于许多技术同学来说,写作是一件比写代码困难许多的事情,和电脑相顾无言数小时,发现自己写不出什么像样的东西来,着实不是一种很好的体验。
论好文章和烂文章

相关实验场景

更多