java工作将近两年的感悟

1.小到无数次二次开发,大到独立设计分布式高并发项目。感触最深的,是应该把可能会发生的问题先想好,再去实现功能

二次开发的增删改查项目,基本都是屎山。工具类、实体类重复;接口入参因为需求增增减减导致其实现类等下游跟着改。刚开始写着很快,越到后面因为需求变动,改动越大,耗费成本越高,反而误事。这些问题如果在开发前就考虑到并设计好,后面就只是无脑的编码而已

独立设计分布式高并发项目,也踩过坑。比如去年做的联想管家数据上报的项目,记录登录联想管家用户设备信息数据,以针对性地进行广告投放。每天都有几百万用户登录联想管家,相当部分是重复用户,在早上八点左右请求量大到峰值,并且新用户逐日递增。这些我事先都没去想,直接开发了。把整体拆成生产者和消费者,按照leader意思用rocketmq做链接缓冲请求量,各部署集群,消费者将数据存储到es中,然后用jmeter压测

过程也是曲曲折折:发现请求量很大,es新增数据相对来说没那么多,那么就是有相当的重复用户,可以考虑允许少数数据丢失,使用异步的方式发送mq消息,性能最高;mq要是消息积压挂掉怎么办,之前activemq就是这样。不过rocketmq确实很棒,也许是服务器配置不错吧,用峰值压测也没有出现消息积压的情况

以前总看前人说80%时间设计项目,20%时间写代码,不以为然。后来项目写的越来越多,才切身体会到其意义所在

2.程序员入门不靠智商,而是固执,不认输

刚开始学java的时候,一点知识点不懂就到处问别人,搞不会情绪就崩了。后来随着越来越多的问题被解决,自己逐步建立起自信,碰到问题不会问别人了,自己百度谷歌。逐渐发现,给我一个搜索引擎,这世界没有我不会的东西o(∩_∩)o 哈哈

 

你可能感兴趣的:(java工作将近两年的感悟)