企业信息

    河南云和数据信息技术有限公司

  • 9
  • 公司认证: 营业执照已认证
  • 企业性质:私营企业
    成立时间:
  • 公司地址: 河南省 郑州 高新区电子商务产业园
  • 姓名: 蒋老师
  • 认证: 手机已认证 身份证未认证 微信已绑定

    供应分类

    高级程序员才会注意的16个细节

  • 所属行业:教育 IT培训
  • 发布日期:2021-04-23
  • 阅读量:82
  • 价格:1.00 元/个 起
  • 产品规格:不限
  • 产品数量:1.00 个
  • 包装说明:不限
  • 发货地址:河南郑州  
  • 关键词:高级程序员,IT教育,IT培训

    高级程序员才会注意的16个细节详细内容

    一个优秀的程序员,往往有着良好的代码习惯,每个好习惯都是一笔财富。在写代码的时候,注意这些细节,可以让你的bug减少很多,快来学学吧!
    1. 代码自测
    在完成代码的时候,有些初级程序员往往会偷懒,不去检查自己的代码,结果一跑起来问题多多。对于项目来说,即使修改了一行很小的代码,都有可能出现各种各样的问题,所以自测一下非常重要。
    2.入参校验
    入参校验是每个程序员的*素养,很多低级bug都是不校验参数导致的。举个例子:如果你的数据库字段设置为varchar(16),对方传了一个32位的字符串过来,你不校验参数,「插入数据库直接异常」了。
    3.接口兼容
    在修改老接口时,一定要思考接口的兼容性,很多新手程序员因为考虑问题太简单而犯错,就会导致非常严重的后果。
    4.添加注释
    有一定工作经验的程序员,往往会有个坏毛病,那就是不做注释。一般的代码没必要添加太多注释,但是,如果是「业务逻辑很复杂的代码」,真的非常有必要写「清楚注释」。清楚的注释,更有利于后面的维护。
    5.使用完IO资源流,需要关闭
    应该大家都有过这样的经历,windows系统桌面如果「打开太多文件」或者系统软件,就会觉得电脑很卡。当然,我们linux服务器也一样,平时操作文件,或者数据库连接,IO资源流如果没关闭,那么这个IO资源就会被它占着,这样别人就没有办法用了,这就造成「资源浪费」。
    6.避免低级错误(如数组边界溢出,被零除等)
    日常开发中,我们需要采取措施规避「数组边界溢出,被零整出,空指针」等运行时错误。
    7.尽量不在循环里远程调用
    远程操作和数据库操作都是比较消耗资源的,所以尽量不在循环里远程调用、不在循环里操作数据库,能「批量一次性查回来尽量不要循环多次去查」。
    8.注意并发一致性问题
    写完代码,较好脑洞下多线程,注意并发一致性问题。
    9.获取对象的属性,先判断对象是否为空
    空指针异常是程序员常见问题之一,在想要获取对象属性时,要先判断是否为空,再获取对象的属性。
    10.多线程异步**使用线程池
    为什么**使用线程池?使用线程池有这几点好处呀
    它帮我们管理线程,避免增加创建线程和销毁线程的资源损耗。
    提高响应速度。
    重复利用。
    同时呢,尽量不要所有业务都共用一个线程池,需要考虑「线程池隔离」。就是不同的关键业务,分配不同的线程池,然后线程池参数也要考虑恰当哈。
    11. 手动写完代码业务的SQL,先拿去数据库跑一下,同时也explain看下执行计划。
    手动写完业务代码的SQL,可以先把它拿到数据库跑一下,看看有没有语法错误嘛。有些小伙伴不好的习惯就是,写完就把代码打*去测试服务器,其实把SQL放到数据库执行一下,可以规避很多错误的。
    12.调用第三方接口,需要考虑异常处理,安全性,**时重试这几个点。
    调用第三方服务,或者分布式远程服务的的话,需要考虑
    异常处理(比如,你调别人的接口,如果异常了,怎么处理,是重试还是当做失败)
    **时(没法预估对方接口一般多久返回,一般设置个**时断开时间,以保护你的接口)
    重试次数(你的接口调失败,需不需要重试,需要站在业务上角度思考这个问题)
    13.接口需要考虑幂等性
    接口是需要考虑幂等性的,尤其抢红包、转账这些重要接口。较直观的业务场景,就是「用户连着点击两次」,你的接口有没有hold住。
    14. 多线程情况下,考虑线性安全问题
    在「高并发」情况下,HashMap可能会出现死循环。因为它是非线性安全的,可以考虑使用ConcurrentHashMap。所以这个也尽量养成习惯,不要上来反手就是一个new HashMap();
    15.主从延迟问题考虑
    先插入,接着就去查询,这类代码逻辑比较常见,这「可能」会有问题的。一般数据库都是有主库、从库的。写入的话是写主库,读一般是读从库。如果发生主从延迟,很可能出现你插入成功了,但是却查询不到的情况。
    16.使用缓存的时候,考虑缓存跟DB的一致性,还有(缓存穿透、缓存雪崩和缓存击穿)
    通俗点说,我们使用缓存就是为了「查得快,接口耗时小」。但是呢,用到缓存,就需要「注意缓存与数据库的一致性」问题。同时,还需要规避缓存穿透、缓存雪崩和缓存击穿三大问题。
    云和数据作为一个深耕IT职业教育多年的教育者,目前的课程涵盖云计算、大数据、人工智能、虚拟现实、软件工程、用户体验设计、网络安全、电子商务等八大方向,结合企业实际用人需求,只为培养更多高端IT技术人才。



    http://yunheshuju007.cn.b2b168.com
    欢迎来到河南云和数据信息技术有限公司网站, 具体地址是河南省郑州高新区电子商务产业园,联系人是蒋老师。 主要经营云和数据公司,作为规模更大、更具影响力的紧缺、核心IT人才生态服务****企业,专注IT职业教育、云计算、大数据 、电子商务、跨境贸易、网络安全、AI、VR等领域研究与服务,先后投资建设郑州、深圳、西安、加拿大四大分中心,下设云和教育、云和技术、云和服务、云和国际四大事业部。。 单位注册资金单位注册资金人民币 1000 - 5000 万元。 我们有优秀的管理和教学团队,办学目标明确,观念**前,优质的服务和产品,不断地受到新老用户及业内人士的肯定和信任。如果您对我公司的服务有兴趣,请在线留言或者来电咨询。