某电商项目,存在若干问题,随便想了想,列举了一些。
首要问题:业务和功能规划,总体技术架构(短期+长期)。移动端代码,可能处于 失控状态。
1.业务分析和设计
没有,边做边想,产品思路不对,改产品,改界面。
技术方案有问题,改技术。
2.技术架构
图片:缩略图,很多地方的图片,不应该展示原图,比如前后端的列表页面,应该使用某种格式的“缩略图”
库存:商品-库存,库存可以单独上架和下架
验证码:短信,邮箱, 业务-手机号
登录:PC、移动端
多终端:PC、移动端、多个移动端
分布式:登录、注销、多设备
3.同一个问题,解决方案众多
图片上传,使用组件多种多样。
4.小功能,大设计
商品搜索框,比如自动提示。看起来很简单,背后有巨大的产品设计和技术设计。
商品搜索,店铺搜索
5.统一拦截
登录、权限、 异步交互接口(登录过期、业务错误、系统错误、请求超时)
6.JS
前端JS封装,比如post请求,检查是否过期、业务错误等
后端JS封装,JS库混乱,多个jQuery,不同组件依赖的jQuery版本不同
7.移动端。登录
保持登录?什么时候需要跳转到登录界面。什么时候需要,自动登录刷新。服务端保持多久?
移动端保持登录1天,服务端Session也保存1天吗?
移动端和Web前端:统一包装post请求,从服务端拿到结果,根据返回码code统一处理。
500:提示
超时:
正常:回调每个业务的函数,或者每个业务单独处理数据,再渲染界面。
-------------------------------
1.物理删除
delete
商品、库存等,通过搜索delete,可以看到很多
2.代码重复。循环内部调用-性能极差。
3.垃圾代码
存在不少没有使用的 历史遗留代码,通过 依赖,可以找出
4.代码不清晰
后端、前端、js,类名、函数名、方法名,不准确。业务逻辑,不清晰。
比如 deleteAll1 deleteAll2等
5.字符串,提成 常量, 1 2 3等数字, trousers 等字符串。
6.参数检查
前端js验证之后,后端 基本的“为空”和“整数”等验证,再加上 业务验证,比如 “订单状态检查”
PageHelper,分页参数检查
绑定手机号,和之前的应该不一样
7.日志
错误日志基本没有
8.锁、同步、事务、性能、表索引
9.前后端 公用库
共用一个Service,一个Dao,一个Mybatis的Mapper。
同1个代码,兼容支持后端和前端,sql语句 越来越复杂
10.查询
多表联合查询比较多
11、前台系统,鸡肋功能多,用户体验极差
12、深层次的测试
系统分析业务场景、根据源代码分析。简单的功能测试,太初级啦。
13、模块划分,合理组织
后端代码、html模版
14.redis分离
登录、业务(重要程度不同,登录的会话数据,数据库中没有缓存的)