JS电商上线项目

架构设计

  • 前后端完全分离

  • 分层架构

    逻辑层–数据层–工具层

    通过层级的划分来进行系统的解耦,提高系统可扩展性和可维护性

  • 模块化

    达到进一步解耦的效果,让系统通过组件的拼装来完成业务的实现。

    模块化的另一个好处:支持团队的并行开发,提高整个团队的效率


技术选型

HTML+CSS+JavaScript+jQuery(Ajax和DOM操作)


工具

  • webpack

    对代码进行基于CommonJs的模块化打包集成

  • node.js

  • npm

  • shell脚本

    用于制作自动化脚本发布工具

  • Charles

    用于请求劫持

  • Git


开发安排

准备部分

  • 基础框架的搭建
    • 双平台的开发环境安装
    • git仓库的规范化用法
    • webpack脚手架搭建实战
  • 通用模块

    • 可高复用工具类设计与封装

    • 通用模块设计与独立打包方法

    • 高逼格UI开发经验与技巧


业务部分

  • 用户模块
    • 数据安全性处理方案
    • 表单同步/异步验证
    • 基于JavaScript的小型SPA开发
  • 商品模块
    • jQuery插件模块化改造
    • 独立组建抽离技巧
    • 多功能列表开发
  • 购物车模块
    • 商品状态随时验证方法
    • 模块内部方法调用方式
    • 非form提交时的数据验证
  • 订单模块
    • modal式组件封装思想
    • 城市级联操作
    • 复杂表单回填
  • 支付模块
    • 支付宝支付功能对接
    • 支付状态动态监测
    • 支付成功回执处理
  • 管理后台
    • 管理后天实现思路
    • React框架及其组件化
    • React-Router的使用
  • 访问数据分析
    • PV / UV
    • 流量来源监控
    • 用户特征分析
  • SEO优化
    • SEO原理
    • 关键词的设计
    • SEO监控
  • 线上部署
    • 线上服务器环境搭建
    • 自动化发布脚本编写
    • 域名规划与nginx配置
  • 可用性监控
    • 外部监控原理
    • 第三方监控的设置
    • 更高级的监控方式


需求分析



架构设计与技术选型

架构设计


模块化

(了解一下这几种模块化方案,本项目采用common JS)



一个web应用的入口式网页页面,而每一个页面都有一个主模块,用来组织各个子模块的逻辑关系,从而形成一个功能完整的页面,我们可以把主模块和各个子模块放在同一层,称之为逻辑层,而逻辑层需要和后端服务进行数据交互。我们把这些数据交互的方法都划分到一个个的service模块里,我们把这些service模块又划分为一个层,称之为数据层,所有的数据交换都要由数据层来和服务器进行,不允许业务模块和服务器直接进行跨层的对接。最后我们需要划分一个最底层的层级,用来提供支持整个系统的通用工具,称之为工具层


技术选型

需要考虑的东西

  • 软件过程模型

    • 瀑布模型
    • 螺旋模型
    • 敏捷开发

    软件过程的不同所带来的开发过程也不同

  • 前后端分离

    分离方式的不同会影响到开发效率

  • 构建工具

  • 框架

  • 代码版本控制软件

  • 发布上线的方案


本项目的选择

  • 软件过程:敏捷开发

  • 前后端采用完全分离的方式

  • 框架选型

    使用 jQuery 来进行 Ajax 操作和 DOM 操作

  • 构建工具

    webpack

  • 版本控制

    Git

  • 发布上线



总结

  • 使用敏捷开发思想
  • 前后端完全分离
  • commonJs + webpack 实现模块化
  • 框架使用 jQuery
  • 版本控制 git



前后端配合方式和数据接口定义