程序员跟各行各业的手艺人一样,都是靠自己的作品吃饭。所以要想获得高收入和业界的认可就要不断的学习提高自己的业务水平。这里我总结了一些程序员提升代码质量的建议希望能对你的进阶有帮助。

1.提高代码的复用程度

不管是写新代码还是对旧代码的重构,我们一定要注意提高代码的复用性。很多小白写代码的时候只在意业务功能的实现,往往代码就写成了一坨。下次再有类似的需求的时候还得重写,以往的代码一点也用不上,这就导致了大量的重复工作。所以我们在写代码的时候一定要注重代码的复用性,对代码进行有效的分割,实现高内聚低耦合。这样解耦出来的独立模块,在别的类似的业务中就可以直接复用了。可复用的代码一般有以下两个特点:

1.代码是独立解耦的,不依赖其它的模块

2.代码是无状态的,重复调用不会有副作用

2.移除不必要的依赖

很多新手在写代码的时候,习惯Copy代码,有时候为了实现一个小功能从别的地方Copy一大堆依赖头文件到业务中来,不管这些头文件用得到还是用不到。久而久之代码就变的又臭又长,非常不容易维护。我们在写代码的时候,一定要有精简的意识,头文件用到了再引入,用不到的就移除。同时用不到到的第三方库一定要及时移除,这样不仅能提高代码的质量还能提高代码的运行效率。

3.多线程应用考虑线程安全

多线程应用中如果是只读数据,一般不会出现什么问题,但如果涉及到多线程同时写数据要考虑线程安全问题,防止多线程过程中数据重复写。在多线程同步数据的时候一定要加锁,防止线程间冲突,同时还应该考虑多线程过程中由于加锁引发的性能问题。同时在可能的情况下尽可能的避免线程间的同步问题。引入多线程的时候还应该考虑会不会引起线程死锁问题。

4.采用延迟分配的方案

写代码的时候很多人为了调用方便,直接在类的成员中声明依赖类的实例,这样的好处是不用控制成员变量的生命周期了,坏处是类实例化的时候性能变差了。所以如果类的某个成员变量比较复杂,初始化比较耗时的时候,我建议采用延迟分配的方案。延迟分配就是在类的成员变量中声明对应依赖项的指针,然后在调用的时候再进行实例化。析构或者销毁的时候再对改对象进行销毁。还有在类的调用的时候,一定要避免频繁的对对象的创建和销毁这样对性能的损耗是很严重的。

5.减少内存的分配、拷贝和释放频率

函数入参如果传递的是一个比较复杂或者占用内存比较大的对象的时候,建议传递类的引用,这样可以避免临时变量的创建和销毁,从而提升函数的执行效率。在写代码的时候我们一定要尽可能减少内存的分配拷贝和释放频率,这些都是比较耗时的操作,如果可以使用之前的缓存的话,尽可能使用之前的缓存。

6.类、方法、变量使用private修饰符

提高类的封装性,避免对外暴露多余的接口和成员变量,尽可能多的使用private权限,可以提高代码的安全性。

7.异常信息里有没有敏感信息

很多时候我们为了调试方便,会在异常信息里面输出一些敏感内容到日志,包括程序的运行逻辑以及一些用户的个人敏感信息等等。殊不知,这些信息可能会被一些别有用心的人拿到从而用来对我们的系统搞破坏。所以再对外发布程序的时候,一定要检查一下异常信息里面有没有敏感信息。

8.控制代码的权限域

编写产品的时候有些代码是有特权的,比如有些代码是可以操作服务端数据库,对数据库进行删除的.有些代码是有管理员权限的,可以对用户的操作系统产生影响。在编写这类代码的时候,我们一定要特别慎重,尽量将特权代码限定在一个有限的范围内,对其进行控制。同时对其它功能调用模块一定要秉持着最小原则进行授权,防止权限的滥用。

9.注意敏感信息的处理

在产品开发的时候,我们一定要保护敏感信息,防止信息泄漏。

哪些信息是敏感信息?

1.个人敏感信息

身份信息 、隐私信息、业务信息等等

2. 商业敏感信息

雇员信息、商业数据、流程信息等等

谁有权限获取相应的敏感信息?

最小授权原则,应该尽可能的减少敏感信息的操作模块,减少敏感信息的授权。

应用日志里有没有敏感信息?

日志里面一定不要输出敏感信息,这方面经常出问题。

对象序列化有没有排除敏感信息?

之前出现过敏感信息序列化发送过程中泄漏的问题,所以尽量避免通过序列化的方式发送用户敏感信息。

敏感信息的存储有没有特殊处理?

比如用户的密码不能明文存储,尽量存储密码加盐的哈希值。

敏感信息在不使用的时候一定要及时清除。

10.做好数据的安全性和有效性校验

在没有规定外部数据的校验点的时候,我们一定要在数据的传送路径上做好数据的校验,包括安全性校验和有效性校验,防止未经校验的数据侵入系统对系统造成破坏。

提高代码质量的那些建议相关推荐

  1. 良好的编码习惯 —— 5 个提高代码质量的技巧

    原文地址:Good Coding Practices – Five Tips to Enhance Code Quality 原文作者:Jay 译文出自:掘金翻译计划 本文永久链接:github.co ...

  2. 一堂如何提高代码质量的培训课【转】

    今天这堂培训课讲什么呢?我既不讲Spring,也不讲Hibernate,更不讲Ext,我不讲任何一个具体的技术.我们抛开任何具体的技术,来谈谈如何提高代码质量.如何提高代码质量,相信不仅是在座所有人苦 ...

  3. 提高代码质量 CheckStyle FindBugs PMD

    提高代码质量-工具篇 注:这是一篇翻译文章,原文:How to improve quality and syntax of your Android code,为了理解连贯,翻译过程中我修改了一些陈述 ...

  4. 使用Lint检查提高代码质量

    使用Lint检查提高代码质量 1.概述 2.代码中使用标记 2.1 概述 2.2 在工程中使用标记 2.3 一些标记的使用 2.3.1 Nullness标记 2.3.2 资源标记 2.3.3 线程标记 ...

  5. 一堂如何提高代码质量的培训课

    今天这堂培训课讲什么呢?我既不讲Spring,也不讲Hibernate,更不讲Ext,我不讲任何一个具体的技术.我们抛开任何具体的技术,来谈谈如何提高代码质量.如何提高代码质量,相信不仅是在座所有人苦 ...

  6. 范钢:一堂如何提高代码质量的培训课

    今天这堂培训课讲什么呢?我既不讲Spring,也不讲Hibernate,更不讲Ext,我不讲任何一个具体的技术.我们抛开任何具体的技术,来谈谈如何提高代码质量.如何提高代码质量,相信不仅是在座所有人苦 ...

  7. Python心得--如何提高代码质量

    前些日子用python基于prometheus开发了一个vsphere volume卷监控的exporter,于是跟vsphere的api(pyvmomi)接口打上了交道,开发的过程中你会发现pyvm ...

  8. 提高代码质量:如何编写函数

    原文地址:http://luopq.com/2016/02/21/write-good-function/  函数是实现程序功能的最基本单位,每一个程序都是由一个个最基本的函数构成的.写好一个函数是提 ...

  9. 如何提高代码质量:代码复查

    如何提高代码质量:代码复查 软件项目普遍存在的问题 1)新手 任何项目组成员都不可避免地出现新手,他们往往是刚刚从大学毕业的学生.这些新手由于软件开发时间太短,往往技术不成熟,没有形成良好的开发习惯, ...

最新文章

  1. 退休是不可能的,90岁还要继续干!
  2. 深入ASP.NET数据绑定(中)——数据双向绑定机理
  3. 一个项目经理的一些个人体会
  4. android call require api level
  5. virtual多态 你不知道的事情
  6. Exchange2010部署边缘服务器
  7. 地方旅游产业运行监测与应急指挥平台/旅游资源管理平台/旅游产业监测平台/旅游应急指挥平台/旅游资源统计/旅游线路数据/旅游产业可视化大屏管理系统/餐饮场所数据/游客流量监测/景区数据监测/视频监控
  8. Quartz和OpenGL绘图基本概念
  9. Spark教程——(2)编写spark-submit测试Demo
  10. vivado之FFT ip核的入门学习
  11. PostGIS几何图形操作
  12. com.itextpdf.text.exceptions.IllegalPdfSyntaxException: Unbalanced save/restore state operators
  13. 大学物理复习--变化的电磁场
  14. linux怎么打开ppt文件格式,PPT 文件扩展名: 它是什么以及如何打开它?
  15. 日野汽车数据作假召开记者招待会
  16. Arduino ESP32 WIFI 蓝牙模式触控按键切换
  17. 【日志分析】Web日志分析
  18. 码元,码元速率,波特率,比特率,数据率的理解
  19. 监管总局严打虚假检测报告
  20. 使用Socket实现类似微信群聊的功能

热门文章

  1. 禁用uwebiview 的反弹功能 bounces
  2. Win10_11使用VMware等启动虚拟机蓝屏报错等一些列问题解决方案
  3. Recorder丨Unity官方录屏插件使用介绍
  4. Endnote 导入enw文件无响应及解决方法
  5. 【蓝桥杯历年真题合集】蓝桥杯2020初赛
  6. 物联网iot私有云平台搭建
  7. treeGrid插件
  8. 解压缩zip文件的工具类
  9. purifier 常用配置 保留 id 和 iframe
  10. 随机计算(3)——Stochastic Circuit Synthesis by Cube Assignment