项目需求分析&设计方案
一、 环境搭建:
分两个系统来搭建,分别是:Windows 7 64位 和 CentOS 6.8 64位
本节可以学习到这些软件的安装、配置:Linux的源配置、JDK、Tomcat、Maven、vsftpd(FTP服务器)、Nginx、MySQL。
还可以学到很多关于Linux的运维相关的知识:例如 Linux的服务安装、SSH私钥公钥的配置、Nginx反向代理的配置、防火墙的配置等。
二、 数据库及接口设计:
根据需求来一起设计数据库。设计表时的一些经验和设计思路。介绍表结构、表关系,以及一些索引,包括“唯一索引”、“组合索引” 这些索引的设计原则和思路。
如何来设计接口?
设计接口考虑的那些点?
为什么这么设计?
有什么扩展性?
这个接口有没有高复用性?
收获:接口设计思路。
三、 项目初始化
介绍几个开发过程中提高效率和准确率的组件和插件:
MyBatis三剑客:
mybatis三剑客之mybatis-generator配置、
mybatis三剑客之mybatis-generator生成数据对象和时间戳优化、
mybatis三剑客之mybatis-plugin
mybatis三剑客之mybatis-pagehelper分页插件、
jdk、tomcat、maven配置及初始化web空白项目
四、 用户模块
登录、注册;检查用户名与E-mail是否有效,获取用户的登录信息、忘记密码,提交问题答案、忘记密码中的重置密码、登录状态的重置密码、更新个人信息、获取当前用户详细信息并强制登录。
能学到的知识点有:横向越权、纵向越权的安全漏洞、MD5明文加密、guava缓存,高复用服务响应对象的设计思想和抽象封装,MyBatis Plugin的使用技巧、Session的使用,方法局部的演进
五、 分类模块
完成以下几个功能:
5.1)获取子类的平级节点、增加节点、修改节点,然后递归获取某个节点下的所有子节点。
5.2)数据库里如何设计:无限层级的树状结构
5.3)递归算法的设计思想
5.4)如何处理复杂对象的排重
5.5)关于重写hashcode和equals方法的注意事项
六、 商品模块
商品模块分为前台和后台:
前台:产品的搜索、产品的动态排序、产品的detil详情页
后台:产品的搜索、产品的list列表页,图片的上传、副文本中的图片上传、产品详情、产品上下架、新增或更新产品等
能学到的知识点有:FTP服务的对接、Spring MVC的文件上传、用流读取Properties配置文件、使用抽象,POJO,bi??? ,Object,ViewObject,以及POJO view……
七、 购物车模块
完成:购物车列表页、购物车添加商品、更新购物车的某个产品数量,移除购物车某个产品、购物车中选中某个产品、全选和反选、查询购物车的产品数量
能学到的知识点有:如何封装一个高复用购物车的核心方法;解决浮点型在商业运算中丢失精度的问题;
八、 收货地址模块
完成:添加地址、更新地址的详情、地址的列表
能学到的知识点有:Spring MVC数据绑定中的对象绑定、MyBatis自动生成主键;巩固横向越权的漏洞
九、 支付模块
对接支付宝,采用支付宝的沙箱环境;
完成的功能有:支付功能、支付宝的回调处理、查询订单的支付状态
能学到的知识点有:详细解读支付宝的配置和核心文档;由浅入深的把支付宝官方的Demo调试通并集成到项目中,在集成的过程当中,解析支付宝SDK的源码,还会讲解一下RSA1、RSA2验证签名的一种方式;
支付宝的一些坑:
- 如何避免支付宝的重复通知
- 如何避免产生单边帐
然后还会讲一种提高支付宝对接调试效率的几种方案: - 外网穿透
- Tomcat远程Debug
- 生成支付的二维码
十、 订单模块
订单模块也分为前台和后台:
前台功能:
创建订单、获取订单的商品信息、订单的列表页、订单的详情页、还有取消订单
后台功能:
订单的列表页、订单的搜索、订单的详情、订单的发货
能学到的知识点有:继续巩固如何在业务逻辑中避免容易发生的横向越权和纵向越权的安全漏洞。然后设计出:适用、安全、扩展性强大的常量和枚举封装类。
订单号的生成规则:
订单的严谨性判断:
POJO和VO的实际操练:
十一、 云服务器发布
热门评论
楼主有心了,感谢,感谢!学完了,正好对照梳理总结一下知识点。
同学~~真的不错哟 赞赞赞~~