昨晚上玩手机有点晚,两点多才睡,结果今天睡到中午12点,洗漱吃完饭,下午1点钟了。
该开始今天的计划了,接着昨晚上的项目。先把昨晚上发现的项目情况记录一下,都有下面这些东西。
编码不一致
- index.html 是GBK编码
- html/add.jsp 是utf8编码
- html/index.html 是GBK编码
- html/welcome.html 是utf8编码
- sql/db_demo.sql 是GBK编码,并且所有的表结构注释内容全部乱码成问号“?”
- WEB-INF/config/*.xml 是utf8编码
- WEB-INF/web.xml 是utf8编码
- WEB-INF/applicationContext.properties 是GBK编码
代码缩进不一致
- WEB-INF/web.xml 使用tab缩进
- WEB-INF/config/hibernate.cfg.xml 有4空格缩进,也有2空格缩进
- WEB-INF/config/ApplicationContext.xml 有2空格缩进,有3空格缩进,有4空格缩进
- wsdl/SpringPowerService.wsdl 有2空格缩进,有3空格缩进
部分代码缺少注释
- com.console.power.controller.CrossDomainContorller 缺少注释
- com.console.support.CrossFilter 缺少注释
- com.plugins.listener.utils.PathUtil
- com.plugins.listener.OnlineCounter
- com.plugins.holiday.controller.HolidayEditController
- com.plugins.holiday.service.dao.IHolidayDao 缺少对象注释和author注释
代码风格
- com.plugins.holiday.service.dao.hibernate.HibernateHolidayDao 重写方法没有加@Override注解
大概总结了一下,就发现了上面这些问题,然后再看看项目代码,发现有个文件居然转码错误了,转码后还是乱码,没办法,继续修改自动转码程序,把引入第三方库自动识别文件编码的结果稍微处理一下,因为这个文件识别的编码为windows-XXXX
,这个XXXX是4位数字,使用这个来解码文件内容是乱码的,但是使用GBK来解码可以正常得到结果,所以就在这里处理一下。
OK,这个问题解决了。看着我的转码程序,手痒,重新修改一下,把File.mkdirs()的路径列表处理一下,昨晚上只记录了所有的目录,大概有四百多条目录信息,而我转码时为了保证输出路径一致,就对这几百条路径进行mkdirs(),需要进行优化一下,把目录中的短目录去掉,留下最长的目录,何解?
就是有这样两个目录src/com
和src/com/console
这样两个目录,只取src/com/console
这个目录进行mkdirs()就行了,然后再把昨晚上的代码稍微处理一下格式添加一下注释等内容。
再运行转码程序,完美,所有文件的编码都转成了UTF8,没有中文乱码的存在。
此时,我在想,我每次把旧项目转码后的目录结构还是与旧项目保持一致,没法直接运行,还需要手动的调整目录结构或者项目配置,这怎么行呢,效率太低。
所以,干脆又写了一段代码,来把原始的目录结构转换成maven的目录结构,下面看一下转换目录结构的代码,非常的简单。
1 | package cn.goour.converter.utils |
上面的代码就是把旧的目录结构转换成maven目录结构,而程序的运行代码如下:
1 | fun main() { |
此时,只要运行我们的转码程序,首先会把原始项目的所有文件转码,然后把转码后的目录结构转换成maven项目的目录结构。
这样我们就能够使用maven来管理项目依赖,也比较方便运行和管理项目,虽然我做的这些都是无用功,说实话感觉一点用都没有,因为公司可能并不打算引入maven来管理项目,这只会方便我自己而已,到了实际的具体开发中,还是会使用原来的目录结构,到时候只能折腾我的IDEA使它按照原来的目录结构来运行项目,或者与团队统一开发工具,使用Eclipse来开发项目,要抛弃IDEA,还真的不习惯阿。
好了,工具完成了,接下来继续运行公司的demo,先把数据库创建和导入了,然后修改配置文件里面jdbc url,把帐号密码改了,把url的gbk改为utf8,接下来跑起来,duangduangduang报错,数据库链接错误。
检查一下lib下的MySQL jar,发现使用的是5.0.3版本的,而我的数据库服务使用的是MySQL 8.0版本的,因为版本不一致导致的数据库链接失败,好吧,只能删除lib下的mysql jar,然后在maven的pom.xml添加数据库8版本的依赖,保存xml,maven自动下载jar依赖,重新运行项目,完美,成功运行。
浏览器打开,发现只有几个简单的页面,点击某个修改,居然发现ID字段的输入框值居然可修改,我的天,前台页面没处理好,好吧,它只是个demo,不能要求太高。
完成这些4个小时已经过去了,已经到了下午5点多了,是时候休息一下了,晚上再看一下那几个文档。
晚上大概过了一下那个UI文档和java规范文档以及Velocity用户手册,说一下感受。
首先UI文档,这个UI是经过公司前辈自己封装过的,当然也引入了一些其他的开源框架,主要内容为一些功能的开发文档,还有一些格式和规范问题。比如有代码结构规范,表单的使用,表格的使用等等。
然后是java规范,这个规范不是阿里巴巴家的那个手册,文档中说这个规范是“SUN公司编码规范翻译”,那么就是它了,也就是一些注释,命名,java文件内容格式,语法规范,代码格式化规范等,基本上是一些常用的java代码规范,而不像《阿里巴巴java开发手册》那样涉及到业务,数据库,MVC结构等更接近项目实际开发的规范,它这个规范只是规定了java的开发规范,《阿里巴巴java开发手册》规范了项目的开发规范,但是两者并不能独立存在,这个手册应该是我们所遵守的基础开发规范,《阿里巴巴java开发手册》为项目开发时遵守的团队开发,项目开发规范,更加方便后来者快速了解项目的一些具体情况。
第三个文档Velocity用户手册,主要是介绍了Velocity框架的一些基础的语法,比如定义变量,条件判断,循环,包含其他文件,解析其他模板文件并引入到当前文件中,以及一些配置说明等等,看起来还是比较全面的。
剩下的两个《自主框架的开发框架培训手册》和《自主框架的开发指引》等明天再看了,内容有点多,一天肯定看不完,努力吧。
- 该日记完成:2019-05-19 01:25
- 该日记记录内容为2019-05-18 下午1点后到晚上10点前
2019-05-22 更新
说了那么多转换编码,转换目录结构的,最后我们肯定要回到最原始的目录结构,与团队其他成员保持着开发一致的问题。
那么请看Eclipse和IDEA同时开发WEB项目配置教程