计算机是最诚实的。程序运行不对,首先不要怀疑机器的问题。99.99%的情况下,是你的代码出了问题。遵守一些原则,养成一些好习惯,可以帮你节省时间并且写出简洁美观的代码!
1. 修改完代码,自测一下是每位程序员必备的基本素养。不要抱有侥幸心理,就算只改了一个变量或者只改了一行配置代码,也一定要自测。严格要求自己,不要怕麻烦,这样可以规避之后很多不必要bug。
2. 方法入参尽量都检验,例如入参是否允许为空,入参长度能否符合你的预期长度。你知道吗?很多低级bug都是不校验参数导致的。假如你的数据库字段设置为varchar(16),对方传了一个32位的字符串过来,你不校验参数,插入数据库直接异常了。
3. 修改老接口时,思考接口兼容性。这是一个新手程序员容易犯的错误。很多bug都是因为修改了对外老接口,却不做兼容导致的。关键这个问题大部分比较严重,可能直接导致系统发版失败。如果你有在原来接口上修改的需求,尤其是对外提供服务的话,必须考虑接口兼容。
4. 对于复杂的代码逻辑,添加清楚的注释。平时是没有必要写太多的注释,好的方法变量命名就是最好的注释。但如果是业务逻辑很复杂的代码,就非常有必要写清楚注释,有利于后面的维护。
5. 代码采取措施避免运行时错误。日常开发中,我们需要采取措施避免数组边界溢出,被零整除,空指针等运行时错误。
6. 优先考虑批量进行。因为在循环里远程调用、不在循环里操作数据库比较耗网络、IO资源,所以尽量不要,能批量一次性查回来尽量不要循环多次去查。但也不要一次性查太多数据,最好分批500一次。
7. 多线程异步优先考虑恰当的线程池,而不是new thread,同时考虑线程池是否隔离。使用线程池有这几点好处,它帮我们管理线程,避免增加创建线程和销毁线程的资源损耗。提高响应速度以及重复利用。同时需要考虑线程池隔离,不同的关键业务分配不同的线程池,线程池参数也要适当考虑。
8. 调用第三方接口,需要考虑异常处理,安全性,超时重试这几个点。异常处理:你调别人的接口,如果异常了怎么处理;超时:没法预估对方接口一般多久返回,一般设置个超时断开时间,以保护你的接口;重试次数:需要站在业务上角度思考你的接口调失败,需不需要重试这个问题。
9. 主从延迟问题考虑,一般数据库都是有主库,从库的。写入的话是写主库,读一般是读从库。如果发生主从延迟,很可能出现你插入成功了,但是却查询不到的情况。假如是重要业务,需要考虑是否强制读主库,还是再修改设计方案。虽然有些业务场景也可以接受主从稍微延迟一点,但写完操作数据库的代码,还是要习惯性想想是否存在主从延迟问题。
10. 为重构分配时间,每一次混乱都在产生技术负债。像金融一样,时间越长,产生的债务就越多。对于普通开发人员来说,花上几天时间清理代码听上去并不是那么美好。这就是为什么要养成每天偿还一点债务的习惯。做好时间规划,长此以往完善的代码数量将令人惊叹。
原文地址:https://www.toutiao.com/i6906377822349214222/