在新公司搞一个项目练练手,熟悉流程。到现在大体流程也熟悉了一遍,做东西的时候有点思考。
毕竟自己读书少,大部分时间花在写代码上,如果写代码的时候再不思考,那就和咸鱼没什么区别了。标题写成一点思考,自己想的还是太少。
项目过程
这段时间接手了几个项目,有一个是往旧的项目上加功能,一个是完全自己开发的小系统。
整体设计:从etcd中拉取配置信息,一般为数据库,redis的配置信息。
一般不是直连MySQL和Redis的,看业务而定,连接的的是KingShard,Codis-proxy。
内部系统并没有用到缓存,有些需要使用SOA调用,基于Http的方式,消息队列用的是Redis,Redis做消息队列要在客户端做一些额外的操作。没有专门的MQ好用。
代码层面,独立开发的东西,我用的是Spring Boot,要依赖公司内部的一些jar包之类的,因为早先使用的是Tomcat + war包,Spring Boot还没大规模使用,一些脚手架需要做一下,自己做了一个Spring Boot Starter。
个人系统:Spring,Spring MVC,BUI做后台页面, Mybatis操作数据库, Spring Boot提供打包什么的
旧系统:Spring Spring MVC, JPA操作数据库,Jquery EasyUI做后台页面
自己写前端页面的时候,倾向于前后端分离,直接写的HTML页面,加ajax请求
老系统用的是JSP,数据通过jsp的属性注入方式
部署方式:
开发环境,旧项目,自己上传,然后用supervisor进行控制启动,停止。 我用的是Ansible,直接控制,没有用supervisor
测试环境,使用git上传到内部的git仓库,然后触发Jenkins打包并且部署。
线上知道用的是lvs + keepalived,然后redis,mysql的集群高可用。线上由运维来部署,开发不参与
数据库方面:
- 开发完成之后,写好文档,由DBA审核数据表,并且创建表
单点登录用的是CAS,平时有问题就问问老员工
感受
单独使用自己的技术开发项目的时候感觉还不错,等到在旧项目之上进行开发的时候,觉得有点麻烦。
现在Java的热部署插件jrebel也收费了,299美元一年,有点贵啊,没有了热部署,每次启动什么的都要花不少时间,效率也降低了一些。
消息队列使用的是Redis,Redis做队列,消息的删除都要手动操作,消费失败也要在客户端进行控制。如果不使用专门的MQ软件,自己就要多处理一点东西啊。
在公司开发有一定的流程,也有权限,如果很多东西都没有权限操作的话,那么其实自己就要自己成长了。
先充实自己吧,有空多看书,技术也要成长。
- 项目做完写文档
- 专门的人做专门的事
- 做的时候配置挺多的