一个码农的项目小结(血泪史)

很长一段时间没对自己做个总结了,说实话,在过往的一年中,感觉比自己2年学的东西都多。也许,这也算是痛并快乐着吧!

 

1.严谨应该是一种能力,或是习惯,而不只是认识!

刚开年时,写了一个微信邀请卡项目,项目不大,也就开发了一天左右,2 天就上线了(要配合其它项目),但是不知道是不是因为刚开年的原因,这个项目上线后的一天了,报警日志一直在爆发,开始的时候以为是 微信 accessToken 的问题,但是最后发现,不是token 的问题,是我代码逻辑的问题,本来应该return 掉的代码,我居然给它做了复制操作,导致重复获取了token,实在不应该呀!出这个问题也就算了,毕竟影响不是太大,但是我有个用户类型,居然忘记做了处理,导致上线了,那么你一定想问了,为啥你测试环境ok呢,因为我测试的微信号那个用户类型走的是另一个代码分支,晕,自己够粗心的!所以呢,在此项目之后,没当我在项目添加了新的 逻辑分支,都要自觉去review 这些分支,保证代码准确,功能完整!严谨应该是一种能力,或是习惯,而不只是认识!

 

2.做好代码的标记 【todo,check,review,fixme】

在我使用的idea 或者 phpstrom 中,都有个todo功能tab,说实话,这东西很棒,可以让我们不漏下功能!我一般是这样子做的,打开设置,搜索todo,像这样子

 

这样子,我就设置好了,我们开看看效果

 

 怎么样,这样子是不是对自己的工作安排更加清晰了!

 

3.java nullpointerexception 异常不要慌,找到该对象,解决问题

我之前遇到 error 级别的错误时,多少会比较慌乱,不知道如何处理,比如这个问题,我们只要找到该对象产生的地方,做处理就好了!

 

4.新项目上线,注意和运维(dba)同学进行沟通,保证账号信息正确

这样子的情况,只出现在新项目首次上线的情况,之前我也这样子坑过我们的运维,后面我们沟通后,上线前对一下数据库的配置,发现再也不会因为配置问题,而影响上线了

 

5.设置微信相关配置的时候,需要注意http 和 https 协议

上周呢,测试小姐姐说她的qc 环境无法进行微信支付,我说不可能啊,我打开了微站,发现一切ok呀!我当时就用charles 去抓包了,查了很久,估摸有一个小时吧,突然看到,她的支付页咋是 http://... 的呢?我一下子就明白了,我在微信支付配置的是 https:// 。后来问她要链接,好家伙,她的链接是这样子的  ce.aba.com/index.html 。。。我一下子就明白了,这样子的链接点进去的话,使用的协议就是 http:// 难怪报错了。所以呢,和微信相关的配置,这俩个协议一定要区分好!不然就很尴尬了!

 

6.要注重项目配置文件的管理 

不得不说,配置文件在有些项目中就是一个痛点,一不留神,可能就坑了队友。我想说的是,配置文件一定要规范,开发环境,测试环境,线上环境要区分好,一者便于管理,一者便于阅读。

共用的配置文件需要进行抽离,不要出现太多的冗余!

还有就是,一些只是存储 文本 的配置文件,尽量用jsonStr 进行保存,这样子结构清晰明了,方便修改!

一个好的配置文件内容,可以像这样子:

 

 7.注意 项目包的命名、类的命名

 一段代码写的好不好,其实命名也是个反映!好的命名,可以看其名,而知其意。在我遇到的开发中,一般会对 Vo 添加 后缀,如UserVo;对接口类 则是 以 I开头,如 IUserService; 用 Impl 表示接口实现类,如 UserServiceImpl; 而dao呢则都带上 Dao... 等等,诸如此类吧,这样子命名一定程度上算比较规范了,像阿里这些企业,还有一些严格的开发规范呢!

 

8.尽可能的写单元测试,无单元测试,不编程

不知道很多人是如何看待单元测试的,但我认为,无单元测试,不编程。

我现在也是以这样子的标准在要求着自己,真的很好用。很多问题,在开发阶段就能够发现,这简直就是一种福利嘛!

java 在这一块做的很好,基本引入个jar包就差不多了,php 就麻烦些了,如phpunit,对一些框架的集成不太友好。之前试过把 yii2 和 phpunit进行集成,发现好多问题,太过于鸡肋了!

对应单元测试,还是希望都写一下吧,并不会浪费多少时间,与其出了bug去寻寻觅觅,到不如把bug扼杀与摇篮中!

 

9.如果需要进行图片合成,建议把底图换成.jpg 格式

个人一直有做图片的合成功能,这期间发现了一个规律,同样尺寸的图片,jpg 比 png 节约空间。千万不好小看这些节省的空间,蚊子再小也是肉。而且用jpg 的目的不是为了节约空间,而是为了提升用户体验!我们之前的图片,在合成后,一般会上传到微信服务器,或者说存储到阿里云,如果图片小一些的话,速度必然就有很大提升了!

 

10.如果需要进行图片合成,建议使用 平方字体

这个没啥好说的吧,一来我们的设计同学很多都是用 平方来进行设计的,二来呢就是平方看起来更友好写,此外,最好是对字体进行锯齿消除!(可参考下 http://www.cnblogs.com/zeopean/p/7906470.html )

 

11.mysql 存储emoji时,尽量使用 utf8mb4 编码

有时候会遇到微信昵称保存不了的情况,发现是mysql 编码的问题,这样子做可以处理下;如果不行,最好是把 emoji 过滤掉

 

12.必须对缓存键值进行规范及管理

这个点,很容易被忽略,说说自己在项目中的使用吧!我在定义缓存key的时候,会保证这个缓存key的唯一性,如果缓存key过长,我还会对其进行md5编码。至于唯一性,最好是和数据查询条件关联起来,这样子基本不会有太多问题了!

 

13.不同数据库的sql 文件必须区分开

之前因为这个问题,坑了我们的运维同学俩次,实在很不好意思!而后呢,我便与他约定,如果我给到的部署内容,sql 没有写明数据库的,直接打回。(人啊,有时候就是得狠点!)

 

14.对技术实现的预演不到位

一些需求呢,给出来可能是有些想当然的,所以呢,就需要我们做好技术预演,这一环节如果做的不好,可能让项目有所延期(这样子就不太nice啦!)

 

15.做好系统的报警

一个好的系统,不单要代码写的好,而且报警机制也很重要。拿我们现在的系统为例,当出现 500 错误时,邮件,短信都会有提醒,这样子及时的报警,虽然有点吵,但是却也保证着系统的稳定。

 

 

 

好了,先写到这里,有机会再总结一篇!!!

 

转载于:https://www.cnblogs.com/zeopean/p/8615038.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值