前言
大概五个月时间,我独立开发了一套银行科技部 OA 系统,系统初期虽然业务简单,但是项目骨架搭建完成,后面主要是业务模块的开发,而且项目涉及多个端,如 Java 后台,PC Web 管理端,手机客户端(iOS & Android)+ 手机 Web 前端(混合开发),正所谓麻雀虽小五脏俱全,开发过程中我还要兼顾已有项目的日常维护工作,所以该系统的开发工作大都是加班完成的。
Java 后台基于 SpringBoot 搭建,二期准备基于 SpringCloud 升级成微服务,部署是基于 Docker 的 mysql,nginx 和应用镜像,使用 docker compose 编排服务部署,二期可以考虑使用 k8s 做集群部署管理。Web 前端框架主要基于 Vue.js ,使用 Vue CLI 初始化项目,Webpack 作为包管理工具,前期没有定制化 UI 需求,所以引入 element-ui 和 Vuetify.js 这两个 Vue UI 组件库,分别用于 PC 管理端和手机端,二期可能有设计师设计界面,需要自定义组件库,对样式的管理也是一项挑战(手机端页面已根据设计稿做了界面优化,我发现 Vuetity.js 很难定制化,几乎大部分 UI 组件都要自定义,几乎只用了 Vuetify.js 的布局组件)。客户端使用混合开发模式,也就是内嵌 WebView 访问 Web 页面,主要是因为开发资源有限,只有自己一个人,开发的一套手机端 Web 页面可以供 iOS,Android 两个客户端使用,非常省时省力。客户端全页面都是 Web 通常会造成体验差的问题,比如页面的跳转,原生的导航条等都很难被 H5 替代,所以我采用多容器 (每个 WebView 只加载一个页面)结合原生的导航模式,配合 js-native-bridge 桥接进行通信,实现不同容器间的传值与导航。
项目背景
我在某银行的科技公司工作,领导希望自主研发一套行内科技部的 IT 综合管理平台系统,主要由我主导开发工作(会的技术杂一些),这套系统主要供科技部的同事使用,用于日常系统投产,重大事件的指挥调度,项目管理,合同管理,运维管理等,基于角色,用户,机构的权限控制也是必不可少。但是第一期主要以项目框架搭建为主,只实现了角色,用户,机构的维护,日常系统投产,重大事件的指挥调度,公告和消息的维护等模块的功能。
个人介绍
我个人从 2013 年做 iOS 客户端开发至今,期间短暂的接触过 Web 前端开发,一年的 Android 项目维护,该项目开发前无 Java 后台开发经历,所以我想记录下我这段时间的工作,对想从前端转到后端的同行也会有一些帮助,当然主要还是自我的阶段总结。后面我会介绍下整个项目怎么被一点一滴构建出来,其中也会涉及多个技术点和自己的思考。