经过一周的开发,项目情况也算是在有序推进,部分模块的功能已经开发完了,剩下的大部分库和表的设计已经完成,只剩下业务接口的开发。趁着周末总结一下,大概有三点体会,有两点是自己的不足,还有一个庆幸的事情。
前期过于乐观
因为疫情原因,一直到 6 月份,我才去公司办公,但是这个项目提出的时候比较早,早起的需求我也参与了讨论,大概功能心里比较明白,提前想了一些可能遇到的技术难点,再加上我之前也自己写过一些springboot的小工程,基本是提供一些测试过程中常用到数据查询和数据修改的功能,本以为不会遇到太多技术难点。自我感觉对springboot这一套开发组件还是有一个基本的认知,即使遇到不会的问题基本都能知道怎么去搜索,也能对搜索结果做一个基本的判断。可惜现实太残酷,正式进入开发之后,各种啪啪啪打脸的事情,像之前写过的mybatis多表查询,从别的库查询结果结合参数写入,如果在过滤器中打印参数,如何设计使用线程锁等等。期间多次请教老同事和现同事各种技术类问题,得到了很多帮助。
正式开发的一周内,基本上每天都能遇到 1-2 个不好搞定的难点,为了解决这些问题,基本上 1-2 个小时在学习和尝试的过程中,再加上一些需求和接口文档的设计问题,也占用了一些开发时间。很多已经了解过甚至炒过Demo 的功能,自己写起来还是会遇到很多问题,比如异步查询,搞了半个多小时才算最后确定下来。
MySQL 基础太弱
之前也是学过一点MySQL语句,基本的select、update、insert和delete都是又了解的,觉得基本功能还是掌握的,在工作中也是基本够用,所以就一直没有深入学习过一些高级语法和更复杂的SQL语句。在本周开发过程中遇到的难点,一半以上都是MySQL,联个四五张表都是基础,最难我的觉得就是insert select,将查询结果加上参数值当做一条写入数据,在结合foreach批量查询,还有一个比较简单的,就是mybatis里面的if、where、choose、when then otherwise以及case when then else end,感觉收获满满,以后还得多练。
Java 基础
这是我昨天才想到的,也算是一个安慰,突然意识到本周的开发过程中没有遇到Java 基础的坑。中间就是熟悉了一下BeanUtils的 API,封装了一下AbstractBean的一些公共方法。偶尔遇到了一些Groovy和Java的兼容性问题也都很快解决了。其中比如线程锁的设计,异步查询的实现都比较顺利。这里推荐一篇自学Java 基础的文章:如何学习 Java 基础。
- 很重要的经验:练习、练习、在练习。
- 公众号FunTester首发,欢迎关注,禁止第三方擅自转载。更多原创文章:十八张原创专辑,合作请联系
Fhaohaizi@163.com
。