ZhangTory's NoteBlog - 张耀誉的笔记博客

TDD在实际项目中的使用经验总结

为了减少bug,在需求交付测试之前我们程序员也应该自测,最常见的如单元测试,就是提升代码质量的利器。
之前我们后端团队强制要求写单元测试,但是后来由于你能想到的各种原因不再要求编写单元测试了...bug也明显变多了...不过这次我们先不说为什么不再要求编写单元测试的问题。
之前有一次开会,运营和产品团队将推广效果不理想的锅扔给了我们开发团队,理由是出现了线上bug,所以部门经理又重新提到了代码质量的问题。
最近我自己“试点”了TDD,也就是测试驱动开发,总结一下在实际项目中如何使用。




查看全文 »

BitMap实现海量消息推送、已读记录的实现方案

我们app有消息箱功能,可以接收系统发送的消息。
以前服务器推送的消息是缓存在用户手机中的,但是这种方法用户体验不好,所以现在需要将数据存放在服务器上。
系统会根据大数据的判断,给不同的用户发送不同的消息,所以需要记录用户是否有阅读该消息的权限,也就是推送记录。
同时app的用户很多,如果按照关系型数据库,每个用户创建一条记录,我们预计2个月就会生成1亿条数据,会给数据库带来很大的压力。
这种情况我们其实只需要记录是否推送、是否已读,用BitMap就能很好的节省空间,同时有很好的查询性能。





查看全文 »

SpringBoot创建自定义starter指北

之前我们解了SpringBoot自动配置原理,根据原理我们就可以实现我们自己的starter。
为什么需要starter,官方文档写的很不错。

If you work in a company that develops shared libraries, or if you work on an open-source or commercial library, you might want to develop your own auto-configuration. Auto-configuration classes can be bundled in external jars and still be picked-up by Spring Boot.
如果您在开发共享库的公司工作,或者在开源或商业库上工作,您可能需要开发自己的自动配置。自动配置类可以绑定在外部jar中,仍然可以由springboot获取。

查看全文 »

SpringBoot自动配置原理

最近计划重新完善自己的基础框架,方便以后自己开发一些小项目玩。
其中需要自己实现一些starter,方便根据不同项目组装公共组件。
所以就需要了解一下SpringBoot的自动配置原理。



查看全文 »