前言
毕业六年,一直混迹于外包,只想当个增删改查的程序员,从未对基础的问题进行过,只是写业务代码,直到最近,一个94的同事,为公司二期项目搭建了一个架构,即使没有参与搭建,我想我应该做些记录。
当公司规模较小时,一般都会花钱购买软件,随着公司不断的壮大,购买的软件就会限制本公司业务的发展,向软件维护公司提需求进展缓慢,等待时间长,于是公司决定自己成立研发部门。于是招聘了几个程序员开干,框架搭建好后,开始迁移数据。外行看门道,内行看热闹。老板根本不懂软件的创建过程,老板只想看到结果,希望你越快实现这个功能就越好。好多开源项目也越来越趋向于老板的想法,当项目越来越趋向于简单化,我想将来会有不少向我这种程序员被淘汰。不过还行,我有幸爬到了井沿,并向外望了一眼。
开发计算机软件,主要包括问题定义、需求分析、实现计划、总体设计、详细设计、创建实现、系统综合、单元测试、系统测试、校正性维护、功能强化。改进软件质量,提高软件生产率非常重要,软件创建活动非常重要。创建活动,有时被称作实现、编码和调试、编程、编码。对创建活动总结如下,摘自《代码大全》
- 创建活动是总体设计和系统测试之间承上启下的工作
- 创建活动主要包括:详细设计、编码、调试和单元测试
- 关于创建活动的其它称谓有:实现、编程等
- 创建活动质量对软件质量有潜在影响
- 创建活动理解的好坏,决定了一个程序员素质的好坏
项目基础工作创建
搭建项目使用的框架:Spring Cloud Alibaba、Spring Cloud GateWay、SpringBoot、Nacos、Sa-Token、Smart-doc、Dubbo、Mybatis-plus、Druid、p6spy、Lock4J、Easy-Es、Seata、Kafka、RocketMQ、Activity工作流
web实时消息推送:websocket
定时任务:xxx-job
web服务器:nginx
服务器:阿里云ECS
数据库:MySQL 7.0(阿里云)
缓存服务:Redis(阿里云)
图片服务器(自购)
财务软件,购买的金蝶
项目搭建后需要解决的问题
- 该项目为平台,实现出租,需要用到MyBatis-Plus的多租户
- 权限管理级别要到按钮级别、数据权限可配置
- 使用自定义注解,将Enum类和数据字典缓存到Redis中
- 使用自定义注解,实现关键操作日志的记录,如:某某人将价格由1改为2
- 使用自定义注解,再VO展示层,一般前端要求返回编码和编码名称,只需要在编码名称使用该注解,即可实现转义,如常见的人员id,人员姓名,部门id,部门姓名,Enum中定义的编码和名称,字典定义的编码和名称。
- 设计缓存服务,将用户、部门、数据字典、Enum,都存在Redis中