2016年4月5日毕业于*计算机技术专业。2016年7月4日至今,就职于YZ集团有限公司,在其旗下子公司技术部门任java开发工程师,鉴于大学期间实践学习的android开发能力丧失殆尽,现需对接触的工作相关做梳理和记录,供未来某个时刻回顾并参考,以下阐述了我一年零三个月参与的活动或项目的描述、总结、感悟以及思想:
一、java开发岗位相关工作
- 开发框架:
1、Bootstrap(前端框架):来自 Twitter,基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。
2、shiro(java安全框架):执行身份验证、授权、密码学和会话管理。
3、log4j(日志信息输出)、JMS (Java平台上的专业技术规范)
4、jetty:开源的servlet容器,它为基于Java的web容器。
5、quartz:Quartz框架的核心是调度器。本项目应用于分布式定时任务调度问题。
6、Dubbo:是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 - 开发工具:eclipse,PLSQL,
- 数据库:oracle
- 测试工具:jmeter
(一)不同系统对接工作
- 1、描述:会员管理系统(CRM)和财务系统(NC)数据对接工作,CRM产生消费订单,根据相应规则,采用xml技术生成财务报表同步给NC。其中涉及到财务混合的付款方式等相关业务需求。
- 2、总结:开发过程中涉及数据库的设计、xml生成与解析技术设计、系统间通信以及财务混合的付款方式等业务需求。
(1)数据库的设计
新建三张表:报表主表(记录主要报表相关信息)、报表子表(记录多种付款方式:现金或转账或现金+转账)以及银行账户记录表
(2)xml生成与解析技术(dom4j–一个Java的XML API 和xstream)
(3)系统间通信(APIHttpClient):注意通信格式是json还是xml。
(4)财务混合的付款方式
通过报表子表记录多种付款方式,银行账户是定时从NC同步到CRM。
//(2)xml生成与解析技术
String resultUser = null;
XStream xStream = new XStream(new XppDriver(new XmlFriendlyReplacer("_-","_")));
//ufinterface.class类上的注解将会使用
xStream.processAnnotations(UserUfinterface.class);
userUfinterface.setUserbill(userBill);
sendMsgUser = xStream.toXML(userUfinterface);
(二)LCH APP2.1 版本迭代
- 1、消息中心—–消息记录、APP消息推送、短信推送和微信推送(开发用时半个月,测试半个月)
(1)描述:4种消息父类包含14种消息子类,四种推送方法,两种推送方式
(2)数据库表设计
MBE_MESSAGE_PUSHTYPE_SET:记录每种消息类型(e.g. 入会和生日)是否允许APP消息推送或短信推送。
MBE_MESSAGE_PUSH_CONTROLL:记录会员自定义控制消息是否推送。
MBE_MESSAGE_LOG_PUSHTODAY:控制消息类型是否当天推送,即定时当日推送(涉及分布式定时框架quartz)
MBE_ITEM_INFO_SETTING:记录APP上显示的消息大类(账户通知、爱车管家、优惠活动以及系统消息)
MBE_MESSAGE_CENTER_LOG:历史消息记录(包含立即推送和定时推送等) - 2、功能配置(开发用时2天,测试2天)
(1)APP按钮的图片、名称等UI后台配置功能
(三)LCH APP2.2 版本迭代
- 1、一键救援和用车百科功能模块(难度一般,期间需求变更,开发用时4天,测试用时3天)
(1)描述:两个功能模块相类似,分为CRM前端管理界面、后端业务逻辑以及提供的接口。 - 2、预约首页接口相关修改
(四)接口优化
- 1、 说明:接口测试是以81测试环境作为测试对象,测试结果和正式环境差别很大。存在的差距列举两个如下:
(1)测试数据库,1个集群数据库实例;正式2个集群数据库实例。
(2)测试服务器,1个服务器;正式服务器,2个服务器负载均衡。
所以,正式环境的能够承受的并发上限优于测试环境,但单次请求的响应时间还是不会有太大的改变。
2、优化方法:
(1)sql语句优化:例如在特定情况下,将count()中的替换成rowid,可提高80%的数据库查询响应速度。
(2)添加索引:数据库引入索引,例如在车辆表mbe_membermgcar中,特殊情况下,引入对会员唯一标识(pk_membermgcust)的索引,可提高sql语句80%左右的查询响应速度。
(3)拆分接口:为移动端提供的接口中,存在通过一个接口直接获取两个界面相关信息的情况,既耗时也耗费用户流量,所以拆分成两个接口后,既可提高响应速度,也可减少客户的流量的使用。
(4)代码调整:过度频繁操作数据库和多重循环都会导致程序运行效率的底下,所以优化代码可提高接口响应速度,但工作量比较大,测试效果不一定如意,只能在理论基础上做尝试。