对于技术的一点思考


来到新公司,公司主营业务是ar图书app,分后台管理和api接口两个服务端,api接口使用的是springboot + mybatis,后台管理使用的是springmvc + mybatis,看来mybatis 还是比更hibernate更令人接受,hibernate的强大功能不是每一个人都能熟练掌握的,而mybatis的灵活和轻量正式互联网公司所需要的。

以前做的也是spirngboot的小项目,那时候boss说,我们使用springboot是为了以后上微服务,但是直到我走了还是没有微服务,现在,这家公司的架构师很厉害,将我们app所有的业务进行拆分,分成一个个小的springboot,每个服务之间使用新浪的motan rpc框架进行远端调用。不知道这算不算微服务?

后天管理使用的是jsp,说实话,我对jsp是抵制的,我不喜欢前端,我认为以后的趋势就是前后端高度分离,而不是什么所谓的全栈,我最恨的就是全栈这个词了,真正的误导程序员,认真看一下周围,那些牛人哪一个不是在专属领域有所建树,而不是东会一点,西会一点。狗屁用都没有。

我也认为现在的安卓和ios会被js取代,不过也无妨啊,反正客户端永远都在变。

关于代码质量,我看见有人用蹩脚的英文写着自己都看不懂的注释,让人啼笑皆非。注释的意义就是用来解释复杂的晦涩的代码,用半吊子英文意义何在呢?
架构师要求我们使用的统一的格式化模板,使用统一的注释模板,使用checkstyle检查代码,使用findbug 静态检查代码,这些在之前我都是没有接触到的,确实方便了很多。加上idea自带的检查,一些低级的错误得以避免。
我们的架构师使用的eclipse,而我们这些年轻人在我的诱惑下全都换上了idea,虽然idea不及宇宙第一的vs,但是还是比eclipse好用多了,eclipse的无故报错我早就受不了了,我猜想架构师应该是习惯了使用eclipse了吧。

在以前,我们的项目中使用搜索查询的时候,总是使用like,而like不仅效率低,而且可能会发生死锁的状况,架构师亲自上手使用solr搜索引擎,反正我是看不懂的。当然还是要花时间去学习的,我想,在这家公司我一定能学会不少东西吧。

在多数据库的情况下,我们使用的分库策略是根据域名,使用spring的动态数据源进行切换,以前说读写分离很高大上,看起来也没什么,重要的如何保持一致性和事务。

在后台管理的安全方面,我们使用shiro框架,shiro使用tomcat的过滤器执行用户session的过滤,其实我也还没怎么弄明白他的机制。

好了,接下来的半年我要攻击spring 技术内幕这本书,更加的去了解spring,还有mybatis,这两个框架一定要熟悉的不能再熟悉。
我还要弄懂shiro。
我还要弄懂数据库的高级特性。
我还要对设计模式有更深入的认识,其实对框架的理解就是建立在设计模式上的,如果看不懂设计模式,根本不会明白作者为什么那么设计框架,就在我稍稍研究的过滤器就是使用的责任链模式,但如果对责任链模式毫不知情,那么就无法理解过滤器的原理。
我还要对java4大高级特性有更深入的认识。这些都是java的基础。
另外,工作难免会设计js和css,这些也都是要去学习的,虽然不需要像java那样花大时间去学习,但总也要懂点。

看着上面给自己列的列表。压力很大啊,但我就是喜欢这样不断的钻研,不断的突破自己。
接下来的笔记都会写在有道云笔记里,到时候会修订后一起发出来。
就用这把我最爱的hhkb来完成下半年的任务吧。