龙空技术网

面试时如何介绍电商项目(上)!

IT枫斗者 153

前言:

此刻你们对“ajaxpostbefore”大致比较关怀,同学们都想要学习一些“ajaxpostbefore”的相关知识。那么小编也在网上收集了一些对于“ajaxpostbefore””的相关知识,希望各位老铁们能喜欢,看官们快快来了解一下吧!

眼看即将"金三银四",那么想要换工作的小伙伴准备好了吗?是时候分享一波收藏的资料了。

如何介绍一个电商项目呢?

项目介绍应该从这个项目的模式、功能、架构、解决了什么问题、部署以及投入使用情况来说:

1.整个项目的架构如何?

一般情况这个问题要从两个方面去回答,从技术架构和功能架构去谈。

技术架构:本项目使用市场上较为主流的框架spring+springmvc+mybatis进行开发,采用分布式的系统架构,前台系统和单点登录系统采用了集群的方式部署,后台管理系统中采用了Maven的多模块化的管理,其中采用了水平切分的方式,将pojo、dao、service、web分层开发,这样做的好处就是可以重用性更高。系统内部接口调用采用Dubbo,在后台接口中扩展了spirng提供的jackson数据转化器实现;搜索系统使用了solr实现,在保证系统高性能的前提下,尽可能为公司节约成本,我们使用MySQL数据库进行集群(oracle收费)。在部署方面,采用了Nginx+tomcat的模式,其中nginx的作用一方面是做反向代理、负载均衡、另一方面是做图片等静态资源的服务器。

功能架构:分布式系统架构

各个系统说明:

后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。

前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。

会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。

订单系统:提供下单、查询订单、修改订单状态、定时处理订单。

搜索系统:提供商品的搜索功能。

单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。

谈到分布式架构,我们必须对比传统架构才能彰显其优势。

①最为明显的一点,在传统的架构中,如果某个功能需要进行维护,那么我们必须停掉整个服务,这对于公司的运营会造成损失。分布式系统在核心功能模块使用单独服务器,维护部分模块不影响用户的其他操作。

②在海量数据处理方面,传统架构显得比较乏力;分布式系统架构采用服务器集群,使用负载均衡,海量数据处理游刃有余!

③在性能(检索)以及维护方面,分布式系统架构也有较为明显的优势。

传统架构:

2.这个项目为用户提供了哪些服务?包括哪些功能?

u 商品管理模块:其中包括品牌管理,属性管理商品录入/上下架管理,商品添加审核,静态页面发布

u 订单模块:其中包括使用activiti工作流订单的查询和订单的流转,定时作废

u 商品前台首页:其中主要负责首页商品列表筛选,首页上动态展示筛选条件,点击每一个筛选条件下面的商品列表要做联动

u 单品页面:采用freemarker来实现页面静态化,展示商品详情信息和商品购买,该页面采用静态化以减轻系统压力,使用了cxf框架发布服务

u 提交订单页面:提交用户的订单信息, 处理并发问题。

u 个人中心,包括用户的登录,个人信息的管理,收货地址的管理,用户所下的订单的管理

u 购物车:把购物车的信息存在cookie里面管理

4.你承担这个项目的哪些核心模块?

在项目中主要负责相关系统的开发,主要有:

1) 后台管理系统,主要实现商品管理、商品规格参数管理、订单管理、会员管理等、CMS(内容管理系统)等,并且提供了跨域支持;

2) 前台系统,主要是面向用户访问,使用Httpclient和后台系统接口做交互,并且该系统在部署上采用集群的方式;

3) 单点登录系统,主要是提供集中用户登录凭证的集中解决方案,提供和用户信息相关的接口,比如说用户注册、查询等接口。

4) 订单系统,主要是提供和订单相关的业务接口,在订单系统了做了严格的数据校验以及高并发写的支持(这里可以说使用队列实现),并且使用了Quartz定时任务实现对订单的定时扫描,比如说关闭超时未付款的订单;

5) 搜索系统,主要是提供商品的搜索,采用开源企业级系统Solr实现,采用了MQ机制保证了商品数据可以及时同步到solr中;

6) 会员系统,主要是维护用户的信息,已购买订单、优惠券、系统消息、修改密码、绑定手机等功能;

7) 缓存,主要是用Redis实现,并且对Redis做了集群来保证Redis服务的高可用。8) 支付系统,主要是负责订单的支付、对账等功能,主要是对接了支付宝的接口;

5.这些模块的实现思路说一下?

①商品管理模块

品牌管理:

主要掌握的核心是品牌的添加

l 图片服务器的搭建,

l 上传图片到图片服务器

l 表单的验证,离开焦点的验证,点击完成时的验证,后台服务器的ajax验证,表单规范

l 防止表单的二次提交

l 编辑时不需要修改品牌名,区别readOnly和disabled

l 删除时的二次确认

注意:

自定义属性必须掌握:html中自定义的属性可以帮助索引元素

图片服务器的搭建

1. 创建一个maven的web工程,在工程中创建一个存放资源的目录

2. 把tomcat的web.xml中DefaultServlet的只读属性改成false

3. 编写上传到图片服务器的代码

由于应用服务器与图片服务器出于不同的两台机器之中,所以可以提高系统的性能,能起到负载均衡的作用。上传图片时使用Jersey 客户端 API 调用 REST 风格的 Web 服务, Jersey 1 是一个开源的、可以用于生产环境的 JAX-RS(RESTful Web Services 的 Java API 规范,JSR-311)实现。通过 Jersey 可以很方便的使用 Java 来创建一个 RESTful Web Services。

byte[] fileByte = commFile.getBytes();

//创建客服端,基于webservice

Client client = Client.create();

//指定资源路径

WebResource webResource = client.resource(Constants.picPath+fileName);

//使用put的请求方式把资源文件放到资源服务器上

webResource.put(String.class, fileByte);

前台使用ajax提交表单,需要使用jquery的jquery.form.js插件

$("#form").ajaxSubmit({

url:url,

type:"post",

dataType:"text",

data:{

...

},

//beforeSubmit:validate,

success:function(responseText){

var obj = $.parseJSON(responseText);

},

error:function(){

}

});

4. 图片服务器中Upload文件夹中随便建立一个文件,防止空文件夹的情况下发布后upload消失

欢迎有兴趣的小伙伴来讨论:

微信公众号:IT枫斗者

微信号:cwq01001

面试跳槽需要帮忙的欢迎私聊!

标签: #ajaxpostbefore