热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

电商平台搭建笔记

第一章:课程介绍与开发前的准备工作课程导学架构设计:前后端完全分离、分层架构、模块化技术选型:html、css、js、jquery辅助工具:Webpack、N
第一章:课程介绍与开发前的准备工作

课程导学

  • 架构设计:前后端完全分离、分层架构、模块化
  • 技术选型:html、css、js、jquery
  • 辅助工具:Webpack、NodeJs、NPM、Shell
  • 效率工具:Sublime、Chrome、Charles、Git 
  • 课程安排: 一:基础框架的搭建(1)双平台的开发环境按照(2)git仓库的规范化用法(3)webpack脚手架搭建实战
         二:通用模块(1)可高复用工具类设计与封装(2)通用模块设计与独立打包方法(3)高逼格UI开发经 验与技巧
         三:用户模块(1)数据安全性处理方案(2)表单同步/异步验证(3)小型SPA开发
         四:商品模块(1)jQuery插件模块化改造(2)独立组件抽离技巧(3)多功能列表开发
         五:购物车模块(1)商品状态随时验证方案(2)模块内部方法调用方式(3)非Form提交时的数据验证
         六:订单模块(1)Modal式组件封装思想(2)城市级联操作(3)复杂表单回填
         七:支付模块(1)支付宝支付功能对接(2)支付状态动态检测(3)支付成功回执处理
         八:管理后台(1)管理后台实现思路(2)React框架及其组件化(3)React-Router的使用
         九:访问数据分析(1)PV/UV(2)流量来源监控(3)用户特征分析
         十:SEO优化(1)SEO原理(2)关键词的设计(3)SEO监控
         十一:线上部署(1)线上服务器环境搭建(2)自动化发布脚本编写(3)域名规划与nginx配置
         十二:可用性监控(1)外部监控原理(2)第三方监控的设置(3)更高级的监控方式

    需求分析图片描述

  • 需求拆分原则:一:单个迭代不宜太大
              二:需求可交付,能够形成功能闭环
              三:有成本意识,遵循二八原则
              四:有预期的价值提现
  • 提炼核心模块
    图片描述
        

  • 电商功能拆分--用户端
    1. 商品 ->首页、商品列表、商品详情
    2. 购物车 ->购物车数量、添加删除商品、购物车提交
    3. 订单 ->订单确认(地址管理)、订单提交、订单列表、订单详情
    4. 支付 ->支付
    5. 用户 ->登录、注册、个人信息、找回密码、修改密码
  • 电商功能拆分--管理后台
    1. 商品管理 ->添加/编辑商品,查看商品,下架
    2. 品类管理 ->添加品类,查看品类
    3. 订单管理 ->订单列表,订单详情、发货
    4. 权限 ->管理员登录

      架构设计和技术选型

    5. 架构设计--分层架构
      定义:把功能相似,抽象级别相近的实现进行分层隔离
      优势:松散耦合(易维护、易复用、易扩展)
      常见分层方式:MVC和MVVM
    6. 架构设计--模块化
      定义:解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程
      意义:解耦,可并行开发
      模块化方案:AMD,CMD,CommonJS,ES6
    7. 架构设计--模块分析
      图片描述
  1. 技术选型:软件过程、前后端分离、构建工具、框架、版本控制、发布方式
    • 软件过程选择--敏捷开发
    • 前后端分离方式--纯静态html、完全通过接口做数据交互
  2. 优点:完全脱离后端模板,系统复杂度低
  3. 缺点:不太利于SEO
  4. 优化方案:Server Render/蜘蛛定制页面
    • 框架选型:jQuery、Angular、Avalon、Vue、React
      图片描述
  • 构建工具:Webpack
  • 版本控制:git
  • 发布方式
    图片描述

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

图片描述

图片描述

图片描述


第三章: 项目初始化与基于模块化的脚手架搭建

项目目录结构设计与Git远程仓库建立

  • git仓库的建立:git项目建立、git权限配置、gitignore的配置
  • 目录结构的设计
    图片描述

项目脚手架搭建概要

  • webpack搭建注意事项

    webpack是天生支持commonJS规范【注意:commonJS是一个规范而不是什么语言或者插件】nodeJS是common JS规范的实现,webpack的编译原理是使用nodeJS把commonJS规范下的模块全部转换成浏览器支持的function形式的模块,然后再用模块加载器来组织这些模块,这样一来,commonJS的模块化方案通过webpack的转换就能够在浏览器上运行了。

  1. webpack降级到1.x版本是因为2.x版本压缩js的uglify会在代码中生成一行代码叫Object.default,default是js switch case
    的关键字,IE8看到这个会不兼容,所以要降回1.15版本

  2. 参数说明
    entry:js的入口文件
    externals:外部依赖的声明
    output:目标文件
    resolve:配置别名
    module:各种文件,各种loader
    plugins:插件
  3. WebPack Loaders
  4. WebPack 常用命令
    webpack -p: 发布时用,最小化压缩
    webpack --watch :监听文件改变,自动编译--开发时用
    webpack --config webpack.config.js :改变默认配置文件
  5. webpack-dev-server:监听文件的改变并自动刷新浏览器
    作用:前端开发服务器
    特色:可以在文件改变时,自动刷新浏览器
    安装:npm install webpack-dev-server --save-dev
    配置:webpack-dev-server/client?http://localhost:8088
    使用:webpack-dev-server --port 8088 --line
    • npm和webpack的初始化
      1.npm的初始化:
      > npm install

      2.webpack的安装
      首先在全局安装webpack:

      > sudo npm install webpack -g

      本地项目中安装1.15.0版本的webpack

      > npm install webpack@1.15.0 --save-dev

      webpack对脚本和样式的处理

    • webpack对脚本的处理
  6. Js用什么loader加载?
  7. 官方文档上的例子中entry只有一个js,我们有多个怎么办?
  8. output里要分文件夹存放目标文件,怎么设置?
  9. Jquery引入方法?
    > npm install jquery --save 然后就可以在js文件中通过require方式引入了 var $ = require('jquery'); $('body').html('hello');
    利用第三方cdn
    首先需要在html文件中引入第三方cdn 然后通过webpack配置文件 externals: { 'jquery': 'window.jQuery',//其中jquery来自于全局对象window.jQuery }, 最后:在js文件中通过require方式引入 var $ = require('jquery'); $('body').html('hello');
  10. 我想提取出公共模块怎么处理 ?
    • webpack对CSS的处理
  11. 样式使用怎么的loader?
    2.webpack打包的css怎么独立成单独的文件?
    第四章 项目通用功能开发

    项目通用模块设计和拆分概要(通用JS工具,通用布局,通用样式,通用导航,通用提示页)

    • 通用js封装
  12. 网络请求工具
  13. URL路径工具
  14. 模板渲染工具--hogan
  15. 字段验证&&通用提示
  16. 统一跳转
    • 页面布局技巧
  17. 定宽布局
  18. 通用部分的抽离
  19. icon-font的引入
  20. 通用样式的定义

作者: yqyily 
链接:https://www.imooc.com/article/21181
来源:慕课网

推荐阅读
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • phpcomposer 那个中文镜像是不是凉了 ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ... [详细]
  • springboot启动不了_Spring Boot + MyBatis 多模块搭建教程
    作者:枫本非凡来源:www.cnblogs.comorzlinp9717399.html一、前言1、创建父工程最近公司项目准备开始重构,框 ... [详细]
  • ps:写的第一个,不足之处,欢迎拍砖---只是想用自己的方法一步步去实现一些框架看似高大上的小功能(比如说模型中的toArraytoJsonsetAtt ... [详细]
  • Jmeter对RabbitMQ压力测试
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Jmeter对RabbitMQ压力测试相关的知识,希望对你有一定的参考价值。Jm ... [详细]
  • 1.移除consol.log()的babel插件安装:npmibabel-plugin-transform-remove-console-D配置:babel.config.js:这 ... [详细]
  • 前言折腾了一段时间hadoop的部署管理,写下此系列博客记录一下。为了避免各位做部署这种重复性的劳动,我已经把部署的步骤写成脚本,各位只需要按着本文把脚本执行完,整个环境基本就部署 ... [详细]
author-avatar
白羊黔中草
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有