点击关注公众号,Java干货及时送达

今天来讲讲程序员日常开发的八荣八耻。还挺有意思的,给大家分享一下,哈哈~

1. 以接口兼容为荣,以接口裸奔为耻

接口兼容为荣,怎么理解呢?

很多bug都是因为修改了对外旧接口,但是却不做兼容导致的。关键这个问题多数是比较严重的,可能直接导致系统发版失败的。新手程序员很容易犯这个错误。所以我们修改老接口的时候,一般要做好兼容

如果你的需求是在原来接口上修改,尤其这个接口是对外提供服务的话,一定要考虑接口兼容。举个例子吧,比如dubbo接口,原本是只接收A,B参数,现在你加了一个参数C,就可以考虑这样处理:

//老接口
void oldService(A,B){//兼容新接口,传个null代替CnewService(A,B,null);
}//新接口,暂时不能删掉老接口,需要做兼容。
void newService(A,B,C){...
}

我们还要以接口裸奔为耻。为了保证接口报文的安全性,拒绝接口报文裸奔。因此,我们可以使用https协议,还建议对接口加签验签处理,数据加密等。

接口签名很简单,就是把接口请求相关信息(请求报文,包括请求时间戳、版本号、appid等),客户端私钥加签,然后服务端用公钥验签,验证通过才认为是合法的、没有被中间人篡改过的请求。

2. 以规范日志为荣,以乱打日志为耻

我们的业务逻辑代码需要日志保驾护航。比如:你实现转账业务,转个几百万,然后转失败了,接着客户投诉,然后你还没有打印到日志,想想那种水深火热的困境下,你却毫无办法。。。

因此大家要打好日志,比如日志级别使用恰当,日志格式,在哪些地方打日志,参数打印哪个等等。不能乱打日志,要以规范日志为荣,乱打日志为耻。

3. 以代码自测为荣,以过度自信为耻

修改完代码,要自测一下,这个是每个程序必备的素养,即使你只是修改了一个变量或者一个字段。

要杜绝过度自信,尤其不要抱有这种侥幸心理:我只是改了一个变量或者我只改了一行配置的代码,不用自测了,怎么可能有问题

因此,我们要以代码自测为荣,以过度自信为耻

4. 以参数校验为荣,以运行异常为耻

参数校验是每个程序员必备的基本素养。你的方法处理,必须先校验参数。比如入参是否允许为空,入参长度是否符合你的预期长度。因此,我们要以参数校验为荣

比如你的数据库表字段设置为varchar(16),对方传了一个32位的字符串过来,如果你不校验参数,插入数据库直接异常了。

我们要以运行时异常为耻

比如你没有做好一些非空校验,数组边界校验等等,导致的空指针异常、数组边界异常,尤其这些运行时异常还发生在生产环境的话,在有经验的程序员看来,这些错误行为会显得特别低级。

所以,我们要以参数校验为荣,以运行异常为耻

5. 以设计模式为荣,以代码重复为耻

日常工作中,我们要以设计模式为荣。

比如策略模式、工厂模式、模板方法模式、观察者模式、单例模式、责任链模式等等,都是很常用的。在恰当的业务场景,我们还是把设计模式用上吧。设计模式可以让我们的代码更优雅、更具有扩展性。但是不要过度设计哈,不要硬套设计模式。

我们还要以重复代码为耻。重复代码,我相信每个程序员都讨厌的,尤其有时候你的开发工具还会给你提示出来。我们可以抽取公共方法,抽取公用变量、扩展继承类等方式去消除重复代码。

6. 以优化代码为荣,以复制粘贴为耻

日常开发中,很多程序员在实现某个功能时,如果看到老代码有类似的功能,他们很喜欢复制粘贴过来。这样很容易产生重复代码,所以我们要以复制粘贴为耻。一般建议加自己的思考,怎么优化这部分代码,怎么抽取公用方法,用什么设计模式等等。

个人觉得,优化代码的过程,可以让自己取得更大的进步。因此我们要以优化代码为荣,以复制粘贴为耻。

7. 以定义常量为荣,以魔法数字为耻

大家平时工作中,是不是经常看到魔法数字。魔法数字(Magic Number)是指拥有特殊意义,却又不能明确表现出这种意义的数字。程序里面存在魔法数字,易读性很差,且非常难以维护。

如下:

if(type==1){System.out.println("关注公众号:架构师指南");
}else if(type==2){System.out.println("关注公众号:科技曼");
}else{System.out.println("关注其他公众号");
}

代码中的1、2就表示魔法数字,我们可以用常量取代魔法数,或者定义枚举去代替魔法数字哈。

8. 以总结思考为荣,以混水摸鱼为耻

我们要以总结思考为荣。

比如你看完田螺哥的文章,可以总结思考一下,或者做做笔记,或者放到收藏夹,茶余饭后再看看。再比如你日常工作中,看到一段不错的代码,也可以思考一下亮点在哪里,如果是你自己来写的话,怎么写出更好的代码。反正就是要多总结,多思考,多复习,温故而知新嘛。

我们要以混水摸鱼为耻。比如工作中,一些小伙伴喜欢混水摸鱼,当一天和尚敲一天钟,代码多是复制粘贴,做完需求就摸鱼。实际上这个不可取的。

我们要在工作中成长,通过认真工作,使自己会得更多,将来换工作也可以拿到更高的薪水。加油吧,小伙子!以总结思考为荣,以混水摸鱼为耻

热门推荐:
最新华为内部前端开发手册,开放下载!无意中发现了一位清华妹子的资料库!这可能是资源的天花板,限时免费下载 !知乎/CSDN/今日头条/:@程序IT圈其他公众号号:科技曼、科技禅个人网站 :https://www.cxyquan.com/
微信公众号官方矩阵点分享点点赞点在看

程序员日常开发的八荣八耻!相关推荐

  1. android java 指针异常处理,Android程序员日常开发中异常总结

    CaptainAndroid.png Java异常 平时开发中遇到的java异常很多,因为引起原因一目了然,当然也有不好解决的,比如一个简单的空指针异常你可能始终无法找到其为空的原因,甚至使用前还做了 ...

  2. Java程序员日常开发提效工具(谷歌,Idea)-长期更新

    谷歌 1. Adblock Plus 广告拦截工具 Adblock Plus 是 Firefox.Chrome.Safari.Android 和 iOS 上最受欢迎的广告拦截程序.拦截 Faceboo ...

  3. 程序员版本的八荣八耻~

    前言 大家好. 最近整理了一个关于程序员日常开发版本的八荣八耻,还挺有意思的.给大家分享一下,哈哈~ 1. 以接口兼容为荣,以接口裸奔为耻 以接口兼容为荣,怎么理解呢? 很多bug都是因为修改了对外旧 ...

  4. 编程语言-11-编程八荣八耻及python中的荣耻观

    程序员版本的八荣八耻~ Python:编程的"八荣八耻" 1 通用版本 1.1 以接口兼容为荣,以接口裸奔为耻 一.以接口兼容为荣,怎么理解呢? 很多bug都是因为修改了对外旧接口 ...

  5. 遵循互联网架构“八荣八耻”,解析EWS高质量架构6个维度的20个能力

    本文主要从最初的聚石塔容器服务EWS开始讲起,进而分享了EWS 高质量架构产品化的C2B方案和全渠道方案,着重说明了EWS的技术实现,包括EWS的总体架构以及EWS的功能实现等. 直播视频:点此进入 ...

  6. 程序员合同日期不到想辞职_程序员山洞开发程序,两年敲45万行代码,网友:一般人扛不住...

    近几年网络发展的越来越好,其中的功劳离不开默默付出的程序员,正是他们任劳任怨的付出,才换来现在的便捷,在程序员汇聚的论坛,一名程序员却道出另一种现象:好久没打代码了,回想以前辞职到老家矿洞里秘密开发的 ...

  7. DevOps的八荣八耻

    被群里的好友安利了一发,周日跑去参加了一个技术讲座<云上开发与运维最佳实践>,听完两个人的演讲之后才发现主题竟然是讲运维,好在有一个人干货不少,在此记录下所得.简单追溯了一下这个DevOp ...

  8. 编写代码的「八荣八耻」- 以用户易用为荣,以复杂歧义为耻

    概述 本文是继<编写代码的「八荣八耻」(上篇)>和<编写代码的「八荣八耻」-以开关上线为荣,以自信编码为耻 >之后,编写代码的「八荣八耻」系列的第三篇. 本篇整体框架还是采用经 ...

  9. Java程序员日常积累-向大神学习(三)

    前言 <Java程序员日常积累-向大神学习>系列是本人根据日常工作中碰到的问题写的一个问题记录,比较琐碎零散. 主要用于记录和忘记时可以有个地方查询.现分享给大家,这是这个系列的第三篇. ...

最新文章

  1. CSS before / after伪元素
  2. 2.1.4 对梯度消失和梯度爆炸的近似解决方案
  3. activemq的部署(三)
  4. maven-antrun-plugin - Target
  5. JDK 9/10/11:Java字符串上+ =带来的副作用
  6. css3怎么排除第一个,css怎么排除第一个子元素
  7. Anaconda中下载速度贼慢?
  8. 谁来代替博客园——寄生博客
  9. 前端学习(1821):前端面试题之封装函数之去重
  10. 易混淆知识点(1):word-wrap和word-break傻傻分不清楚
  11. 《高性能MySQL》 第1章 MySQL架构与历史
  12. Github Gitee Java开发 热门中后台开源项目
  13. react仿追书神器——哦豁阅读器
  14. 微信小程序人脸识别方案
  15. vue搭配vux-ui框架
  16. 缺省路由(默认路由)实验
  17. xcode9创建git分支
  18. C语言实现每次找出最大最小值排序
  19. 03_JavaScript常见运算符
  20. 各种进制转换通用代码

热门文章

  1. Java 利用poi给word添加页眉页脚,页眉左边为公司logo图片,右为公司全称,页脚左为公司地址,右为页码总页数
  2. wampserver图标呈现黄色
  3. 现代教育技术计算机网络试题及答案,现代教育技术习题及答案[4]
  4. Python中无法导入上一级目录下的包
  5. Kafka消息中间件(一)
  6. JDBC中的execute与executeUpdate
  7. 原生微信小程序跳转传参 : [非TabBar跳转传参] 和 [TabBar跳转传参]
  8. python+appium+雷电模拟器 app自动化测试
  9. [机器学习] 凸优化的总结
  10. 21款迈巴赫S480的高光时刻,奢华又不张扬