社区编辑申请
注册/登录
程序员日常开发的八荣八耻
新闻
今天来讲讲程序员日常开发的八荣八耻。

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

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

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

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

//老接口
void oldService(A,B){
//兼容新接口,传个null代替C
newService(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. 以总结思考为荣,以浑水摸鱼为耻。

我们要以总结思考为荣。

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

我们要以浑水摸鱼为耻。

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

我们要在工作中成长,通过认真工作,使自己学到更多,将来换工作也可以拿到更高的薪水,加油吧!​

责任编辑:华轩 来源: 今日头条
相关推荐

2016-04-20 09:39:33

程序员提高开发技能

2013-08-09 09:39:21

程序员程序员图片搞笑程序员

2019-12-06 17:31:30

程序员人生第一份工作设计

2014-10-15 10:49:27

2009-07-28 10:18:03

2020-02-28 15:49:26

厉害程序员

2021-03-20 23:04:56

程序员开发互联网

2015-09-18 08:47:41

新手程序员

2011-05-30 14:50:56

2016-12-06 10:12:07

程序员开会

2018-05-13 15:22:02

2018-03-09 15:04:55

2021-02-05 09:58:52

程序员Windows系统

2015-08-27 10:39:59

新手程序员必知

2015-02-12 09:48:09

程序员

2014-10-24 10:13:19

程序员

2019-01-25 17:21:04

程序员坏习惯

2011-07-05 11:08:05

2011-07-12 13:35:04

2015-05-15 10:09:09

程序员

同话题下的热门内容

Linux 5.19 正式发布!这次用的竟然是 MacBook.....「芯片法案」下周签署!台积电沉默以对佩洛西,三星、SK海力士谨慎观望说实话,今年互联网人跳槽的逻辑变了微软新工具准确率达80%,程序员:真的栓 Q历时1年,大型金融企业100%核心系统国产数据库迁移实践Github突遭大规模恶意攻击,大量加密密钥可能泄露!再见!英特尔宣布将彻底关停这项业务有哪些值得学习的大型 React 开源项目?

编辑推荐

斩获BAT技术专家Offer,他到底经历了什么?支付宝即将下线收款业务:2018年1月1日起正式执行,网友炸锅了!我活着从柬埔寨技术“魔窟”逃出来了…甲骨文云平台全面升级,助力客户稳步上云一文看懂Java收费 附可替换方案!
我收藏的内容
点赞
收藏

AISummit人工智能大会