某电商项目,存在若干问题,随便想了想,列举了一些。
首要问题:业务和功能规划,总体技术架构(短期+长期)。移动端代码,可能处于 失控状态。
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等
trousers 等字符串。
6.参数检查
前端js验证之后,后端 基本的“为空”和“整数”等验证,再加上 业务验证,比如 “订单状态检查”
PageHelper,分页参数检查
绑定手机号,和之前的应该不一样
7.日志
错误日志基本没有
8.锁、同步、事务、性能、表索引
9.前后端 公用库
共用一个Service,一个Dao,一个Mybatis的Mapper。
同1个代码,兼容支持后端和前端,sql语句 越来越复杂
10.查询
多表联合查询比较多
11、前台系统,鸡肋功能多,用户体验极差
12、深层次的测试
系统分析业务场景、根据源代码分析。简单的功能测试,太初级啦。
13、模块划分,合理组织
后端代码、html模版
14.redis分离
登录、业务(重要程度不同,登录的会话数据,数据库中没有缓存的)