标签:update 了解 取数据 sql 还需 多线程 mysq 实现 文档
2017-9-16
8 月份开始到现在,进行了一个多月的实习,岗位是 Java Web 后端开发。这过程学到的知识着实比自学要来得多,而且也让我意识到需要学习的知识也更加多。在这里我会在比较大的方面总结这次实习中学习到的事情,以及之后需要努力学习的知识。
基础
经过一个多月的项目的锻炼,最大一点感受就是基础的重要。这里我指的是数据结构基础。因为经历过实际项目的开发,无疑我更清楚一个企业项目里的编程是怎样一会事,明白实际用到的技术大概是怎样而这个过程我了解到基本的数据结构是如此重要。老实说,我感觉一个项目大部分时候做的都是重复性活动,也就是所谓的增删查改。这个过程无非就是与数据打交道,譬如怎么获取数据,如何保存获取的数据,怎样返回前端想要的数据就是我们要做事情的核心。而这不正是数据结构的事情吗?例如,我们要熟悉 List、Map 等结构,知道什么场景使用那些容器来封装数据。还有一个是算法,虽然我这一个半月中没有用到算法,但无疑这是进阶必须的,因为算法可以帮助我们更好的处理数据,而这正是后端工程师的任务——处理数据。所以数据结构跟算法是未来一定要掌握的。
另外一点需要注意的基础地方,就是 JDK 的常用 API 的使用。我印象深刻的一件事就是 String 的使用。有一次我要判断 String 非空,当时的做法好像只是“抄”别人的代码,没有深入思考的过程,后来有空闲思考,发现一个 String 判断非空其实要注意的事情是很多的,而我们其实可以直接查看 JDK 的文档,就会发现 JDK 里面 String 类直接有 isEmpty() 方法供我们使用了;同样,如果要判断两个字符串相等,API 直接提供了 .equal() 方法供我们使用,这里还需要特别注意的一点就是不能用 == 来判断两个字符串相等!因此这个过程我学到的一点就是,养成查看官方文档的习惯,特别是常用的 API,要做到熟记。
SQL 与数据库
还有一个十分重要的地方是 SQL 的学习。这一块跟数据结构是我现在认为最重要的。在上面我说过,后端的处理无非就是数据的处理,而很多时候数据需要从各种数据库中检索出来,这就需要用到 SQL 了。在没有实习之前,我对 SQL 并不怎么熟悉,好几次的面试中也因为这样而吃了亏。在真正的实际项目开发中,也真正感受到使用 SQL 的频繁与重要,特别是在 Mybatis 框架中要经常编写 SQL 语句,加深了我对 SQL 的重视。当然 SQL 语句也只是非常基础的东西,在这上面还有数据库要我去了解与学习,例如怎样优化数据查询,某些数据库的特性等。项目使用的是 MySQL 数据库,这也是我接下来需要加深学习的数据库。
团队开发
说说团队开发。我们项目用的是 SVN,感觉挺方便,没那么复杂(虽然我对 git 并不熟悉)。这里需要记录的事情是,每次提交代码的“规范流程”(不局限于 SVN,团队开发都应该这样做,以防冲突)。
- 每天到公司,打开项目后首先更新代码(一般是全部),发现冲突及时解决;
- 写好自己的功能,在本地跑,直到可以跑通;
- 现在需要更新全部代码,防止与别人当天写的代码有冲突;
- 更新完代码不能立刻提交,需要再次跑一下,验证代码更新后也没有出错;
- 再次检查是否有更新代码,没有了才可以提交自己的代码;
- 每天下班前检查是否自己写完的代码有没有提交的,及时提交。
这里再说说代码提交的“注释规范”,没有统一标准,我是自己网上搜索后觉得挺不错,以后要这样用。
- changed(完成的任务)
- updated(完成任务的更新)
- added(新加入的需求)
- fixed(修复 bug)
- 修 issue 时可以写:fixed #xx
- 小改的直接用一句话说清楚
- 大改的自己建一个 issue 说清楚情况、方案、变化,然后写 fixed #该 issue 号
框架与流程
这个项目是用 SSM 框架的,现在我想对于这个框架的日常使用是没问题了,这也是一大收获,正式在企业项目中用到,对这几个框架的认识深了很多。
再者,对一个项目的流程,如前期需求、原型实现、编码、测试、上线也有更清晰的了解,知道是怎样一会事。我想我算是踏入这个行业的门了。
最佳实践
至于编程技术思想方面也同样有很多进步。例如对一些技巧的使用,知道是怎样一回事。好比 DTO,还有封装前端请求数据的 Query 两个对象的区别与用法,这些算得上是最佳实践吧。说到最佳实践,这次的实习也锻炼了我遇到问题找寻原因的思想,其实这里头也没有多高深的知识。
例如,遇到 bug,首先整个流程跑一次,看看这个实际功能是否能跑通,然后观察前端传输的数据有没有错,调用的请求是否真的调用了,这些步骤都没错的话,看看后端 Controller 接受的数据情况,以及进一步的数据处理的情况,而这后端的观察便可以用 debug 了(加强了我 eclipse 的 debug 能力),这个流程走下来应该可以很快定位到问题出现的地方。
上面写的这些都是大方面的内容,其他的收获都是一些细节的技术内容,例如文件上传下载实现、分页对象原理与实现、一些 jQuery 插件使用等等,就不展开讲了。
那么最后再来一个需要学习知识的粗略计划:
- 数据结构与算法
- MySQL 数据库的深入学习(学习《数据库技术丛书·MySQL技术内幕:InnoDB存储引擎》)
- Java 基础以及 JVM、多线程等知识(学习《深入理解Java虚拟机:JVM高级特性与最佳实践》《Java并发编程实战》)
- 继续深入学习 SSM 框架,也要学习 Spring Boot 框架(《Spring 实战》以及相关视频学习)
- 网络编程相关知识
Java 后端工程师实习总结
标签:update 了解 取数据 sql 还需 多线程 mysq 实现 文档
原文地址:http://www.cnblogs.com/cjl21/p/7531868.html