laoyeye

今天是2019年1月19号周六,睡了一上午,想着下周系统要发布,还有一些东西没弄完,就跑来公司加班了。

晃晃悠悠捣鼓了一下午,基本上是完成了,下周只需要做一些基本的测试和扫尾工作就可以了。

想着也是许久没有总结过了,正准备写写最近的一些心得,群里一个同学的一句话彻底惹毛了我。

你不就是一做报表的嘛,有什么技术含量。

哎呦,我的这玻璃心真的受不了!!!所以今天不写总结,老老实实做个喷子。

做报表的我会比你差?

 有句话叫优秀的人在哪里都是优秀的。一般人看到内部系统自然感觉会比交易系统差。包括在我们公司内部也有些人看不上这个。诚然,这是系统定位上的问题,内部系统在性能要求和实时性上和交易系统还是比不了的。但是抛开系统定位不谈,我做的系统一定会比你的差吗?我的代码能力或许和很多大佬还比不了,但是我自信同等背景和经验的情况下,我还真不怂谁。所以,即便你是做交易或者其他什么高大尚的东西,CRUD Boy 在我面前还真没什么资格来评论我或是评论我的系统。

我比你强在哪里

既然你说我是做报表的,那就首先拿报表来说说吧,业务的复杂度我就不说了,咱单单从技术上来聊聊。

1、我可以用十几种方法来做报表导出,你行吗?

说这个或许有点欺负人,但是既然我是做这个的还是要说说的。我说我可以用十几种方法,并没有夸张的意思。自从我接手这个项目,我研究了jxl,poi,freemarker,xml,jasperreport,以及一些前端导出和商业组件导出的方法,少说也有十多种。

2、你以为我的导出就仅仅是导出吗?

你以为我的导出就是随随便便在网上Ctrl+C和Ctrl+V吗,殊不知我在使用之前分析了每一种的写法和性能问题,才最终选择了几种方案共存的方式。

你说这不还是一个sql的问题吗,行,我无话可说。那么我们在说说下面的。

3、你用过多线程吗,你知道并发包吗?

你以为只有交易系统可以用多线程?你以为只有你们高大尚的系统才能用到并发包?

我告诉你,即便是简单的报表,我也能把它写出花来!在你只知道extend thread和impl runnable的时候我已经用上了callable。在你还在使用同步查询的时候,我的代码已经常规的在用ThreadPoolExecutor了。你知道Countdownlatch、Cyclicbarrier是什么吗,或许你知道。但是你又用过多少次?对于一个常规的复杂报表,我可以使用多线程查询,最后再合并数据处理。在性能上比你的串行处理不知道快了多少倍。记住,不是你知道这东西你就会用的,写东西要带脑子的。

4、你看过JVM吗,你知道线上CPU 100%怎么处理吗,你又知道内存溢出怎么查问题所在吗?

或许你接触过一知半解的。但是我告诉你,这些我全都处理过。或者在我jstack的时候,你才知道有linux,在我dump出日志查内存溢出原因的时候,你才刚刚学会敲命令吧。回去看看对象什么时候会GC再回来跟我讨论吧。

5、你写sql看过执行计划吗,你知道索引的作用有多大吗?

或许你知道,但是你知道一个sql怎么优化吗,别跟我扯什么有的没的,先去了解了解mysql有几种隔离机制再说吧。

6、你知道代码规范吗?你知道金额要定义成什么类型吗?

 代码规范这东西是深入骨髓的。你以为你的功能实现了就完事了?告诉你,你那叫祖传代码。来个新人完全接不了的。哦,不对,可能你都不知道什么叫开发规范。你以为你的mybatis随便定义xml文件就完事了,去了解了解什么叫主表基准。知道为什么你的代码sum的时候后面总有一堆小数点吗,去了解了解什么叫BigDecimal,我是真的怀疑你老板为什么至今还没来找你麻烦,他都不知道他可能已经少了几千万吗。

快过年了,懒得吵架。送你几句话。

活到老学到了,不是说说而已。别以为项目牛逼,你就很牛逼。

记住天外有天,人外有人,别总瞧不起做内部项目的同学,其实他们有些人在原理和应用上比你强多了。

记住有问题就google是不可取的,多去看看书看看人,别人或许暂时还不如你,但并不代表一辈子不如你。

记住即使我现在做内部项目也比你强!哥是你永远追不上的男人!!

 ps:博客仅作为个人总结,主要还是写给自己看。以写博客博知名没必要,也没兴趣。

分类:

闲聊

技术点:

相关文章: