logo资料库

传智播客电商项目面试宝典.pdf

第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
资料共23页,剩余部分请下载后查看
电商项目面试 电商总概.............................................................................................................................................2 电商项目的重要性.....................................................................................................................2 电商项目里的技术特点.............................................................................................................2 系统功能.....................................................................................................................................2 电商项目的思维图.....................................................................................................................3 项目团队构成.............................................................................................................................3 项目开发流程.............................................................................................................................4 涉及技术.....................................................................................................................................4 开发环境及工具.........................................................................................................................4 电商面试常见问题.............................................................................................................................5 1. 说说你最近做的这个项目的背景,简单的介绍一下你这个项目?.............................. 5 2. 项目的整体结构(从框架和具体技术来说)...................................................................5 3.分布式架构,对比传统架构的优势。................................................................................. 5 4. 本项目供了哪些模块(功能和服务)........................................................................... 5 5. 你负责的哪些模块................................................................................................................6 6. 简述下这些模块怎么实现的?(述举例只给出部分功能的过程).......................... 6 商品类型管理.....................................................................................................................6 属性管理.............................................................................................................................6 商品栏目管理.....................................................................................................................7 商品管理.............................................................................................................................7 权限管理.............................................................................................................................8 邮件发送验证管理.............................................................................................................9 购物车管理.......................................................................................................................11 订单管理...........................................................................................................................12 网上支付管理...................................................................................................................13 7.对于大流量的网站,您采用什么样的方法来解决访问量问题?........................................14 8.数据库的存储引擎?有什么区别?................................................................................... 14 9.Sql 语句的优化?..................................................................................................................14 10.什么是页面静态化?......................................................................................................... 15 11.如何实现用户的安全登录?............................................................................................. 15 12.使用过 Memcache 缓存吗?请简述一下.........................................................................15 13.说出 JQUERY 常用的几个函数?...................................................................................... 15 14.什么是二次开发?二次开发的弊端?.............................................................................15 15.单例模式..............................................................................................................................16 16.Redis 有几种持久化的方式? redis 缺点是什么?........................................................16 17. 前后台数据不一致怎么办?........................................................................................... 16 18. 数据库的读写分离?主从复制?................................................................................... 16 19. 高并发如何处理?........................................................................................................... 16 20. 前后台数据交互时用到那些技术?............................................................................... 16 21. 什么是 Ajax,Ajax 异步处理?.......................................................................................17 22. 什么是 Bootstrap?有什么优势?..................................................................................17 23. http 协议请求的状态?404 是什么?500?...................................................................17 上海传智播客·黑马程序员 www.itheima.com 第 1 页 共 23 页
框架介绍:.......................................................................................................................................17 一、 PHP 中的框架是什么?.................................................................................................17 二、 PHP 中常见的框架.........................................................................................................18 TP 框架(ThinkPHP):.....................................................................................................18 Laravel 框架....................................................................................................................21 电商项目的重要性 电商总概 找工作面试的过程中,项目将会是整个流程的核心灵魂,也是能在面试中能让面试官尽快 认同你的一个强有力的依据,所以在面试中把电商项目清晰的表述出来是极为关键的。 电商项目里的技术特点 ①技术更新较快:根据市场的需求,不断迭代更新 ②技术涉及面广:除了 PHP,还会用到 Python,GO 等其他的一些语言;数据库 中 MySQL,nosql 是最频繁使用的(当然也有的公司会用 oracle,但是 PHP 一 般都是以 MySQL 为主),服务器端使用 Linux(少部分公司会用到 Unix),还 经常涉及到服务器安全、系统安全等安全方面的技术 ③分布式:从前的单一的机器上运行,现在是分散到不同机器上,最后将数据 集中汇总。集中式向分布式进行发展是由需求来推动 ④高并发、集群(高可用集群)、负载均衡:由并发问题采用集群进行处理, 其中,集群会涉及服务器的主从以及分布问题,使用负载均衡。(权重高低)高 可用是对用户而言,用户的服务不中断(系统升级,服务不中断,公司电商系统 的部分更新等)。 ⑤海量数据:每年商家的各类活动(双 11,双 12 等等)订单量、浏览数、商品 量、活动相关数据都将会超级大超级多(一般随同高并发出现) ⑥业务复杂:电商业务并不简单:并不是商品展示出来后,简单的加入购物车 后购买就完成了。除此以外后台业务逻辑是相当复杂,比如优惠(包邮、满减), 秒杀,抢购等 ⑦系统安全:系统上线必须通过系统安全部门审核通过,安全性问题正逐步的 被放到台面上,而且很多企业对这块相当重视 系统功能 本商城系统是一个综合性的 B2C 平台,类似京东商城、天猫商城。 用户: 1.用户可以通过注册成为商城的会员,登录商城 2.根据会员等级获得相应的优惠和特权 3.用户可以浏览商品,可以根据商品类型进行搜索 4.用户可以对购物车进行操作(增删改查商品的数量、商品详情等) 5.用户下订单、退订单,对订单的结算等 商家: 上海传智播客·黑马程序员 www.itheima.com 第 2 页 共 23 页
1.商家可以入驻商城,在商城里开店售卖自己的商品 2.商家也有商家等级,如果在商城好评和商品销售量到达一定数量,可获得 商家的一些特权 3.商家可以管理自己店铺的商品:上架下架商品;设定库存量;设定自己店 铺的会员制度等 电商项目的思维图 项目团队构成 以上是大部分常用模块,如有其它模块自行补充。根据上图的体系架构,一层层的 进行归纳记忆,从项目——模块——功能一点点的往深入熟悉记忆,并且加以理解 产品经理:1 人,确定需求以及给出产品原型图。 项目经理:1 人,项目管理。 前端团队:1 人,根据产品经理给出的原型制作静态页面。 后端团队:3 人,实现产品功能。 测试团队:2 人,测试所有的功能。 (上述是以团队为单位,有的公司技术部不止一个团队,还有运维、UI、交互 设计师等等,视情况而定) 上海传智播客·黑马程序员 www.itheima.com 第 3 页 共 23 页
项目开发流程 涉及技术 框架:ThinkPHP CI 前端:HTML CSS PHP:PHP+MySQL YII Laravel 等 JS/JQ(Bootstrap、node.js、angluar.js 等可以了解下) AJAX session 和 cookie Nosql(redis memcache mongdb) 接 口技术 缓存技术 优化技术等等 服务器方面:Linux Nginx 开发环境及工具 WAMP 或者是 LAMP 比较常见,除此以外还有 LNMP 等 常用的工具:PHPStorm(PHP 最正统的工具) NetBeans Editplus Webstorm(web 最正统的工具) Sublime Dreamweaver 上海传智播客·黑马程序员 www.itheima.com 第 4 页 共 23 页
SVN GIT (简历中或者是面试中尽量不要及版本号,如果要写则需要把版本号对齐,否则 不要写版本号) 电商面试常见问题 1.说说你最近做的这个项目的背景,简单的介绍一下你这个项目? 我们公司之前主要以实体店为主,进行批发与零售,业务也相对比较传统。为了适应市场需 求,增强公司竞争力,升业务绩效,另一方面,也为基于互联网的商务模式创新奠定基础。所 以开始 xxx 商城建设项目,其中包含商品管理、订单管理、类目管理、客户管理、合作商管理、 客服管理、购物平台、内容管理等,很大程度上分担了人工的压力,对高客户服务效率和客户 满意度能够起到较好的作用。(先大体的述下项目,然后能够挑一两个自己最为熟悉的模块进 行叙述) 2.项目的整体结构(从框架和具体技术来说) 框架方面:从大处进行述,比如本项目是属于电商项目,采用的是 TP 框架,运用 php+MySQL+Apache 进行开发。因为 TP 框架是开源的、轻量级的,所以用起来更加方便快捷,从 效率和成本方面来讲都是性价比比较高的,所以那时候团队决定用这个框架进行开发。然后再从 框架的一些优点特性进行说明下,让面试官觉得你对这个框架很了解 技术:述技术时首先用从自己比较熟悉的模块入手(比如说注册验证时会用到的 JS 技术、 正则匹配、ajax 无刷新验证等等),然后由此慢慢的向其他方面的技术进行拓展,在说具体技 术的时候如果能说到目前比较新或者是比较有难度的技术,能够让面 试官眼前一亮,这样能为 自己的面试增加不少分。 3.分布式架构,对比传统架构的优势。 块不影响用户的其他操作。 载均衡,海量数据处理游刃有余! ①最为明显的一点,在传统的架构中,如果某个功能需要进行维护,那么我们必须停掉整个 服务,这对于公司的运营会造成损失。分布式系统在核心功能模块使用单独服务器,维护部分模 ②在海量数据处理方面,传统架构显得比较乏力;分布式系统架构采用服务器集群,使用负 ③在性能(检索)以及维护方面,分布式系统架构也有较为明显的优势。 4.本项目供了哪些模块(功能和服务) 商品模块:其中包括商品管理,类型管理,属性管理,栏目管理等等 订单模块:其中包括下单,退单,库存,收货人信息等 会员模块:会员注册,会员信息管理,会员等级管理,会员权限等 购物车模块:购物车数据存储,增删改查购物车商品,清空购物车等 交订单页面:交用户的订单信息, 处理并发问题。 个人中心:包括用户的登录,个人信息的管理,收货地址的管理,用户所下的订 单的管理 支付模块:支付方式管理(在线支付、货到付款)等 上海传智播客·黑马程序员 www.itheima.com 第 5 页 共 23 页
5.你负责的哪些模块 在项目中主要负责相关功能的开发,主要有: 1) 后台管理系统:主要实现商品管理、商品规格参数管理、订单管理、会员 管理等、CMS(内容管理系统)等,并且供了跨域支持; 2) 前台系统:主要是面向用户访问,使用 js、ajax 进行前后台数据交互(一 般是用 json 格式数据返回) 3) 会员登录:供和用户信息相关的接口,比如说用户注册、查询等接口(登 录时需要进行多重验证,特别注意安全方面) 4) 订单功能:主要是供和订单相关的业务接口,在订单系统了做了严格的 数据校验以及高并发写的支持(这里可以说使用队列实现),并且使用了定时器实现对 下单的时间控制,比如说关闭超时未付款的订单; 5) 搜索功能:主要是供商品的搜索,可以采用 Sphinx 全文搜索,当然也有 其他的搜索方式; 改密码、绑定手机等功能; 6) 会员系统:主要是维护用户的信息,已购买订单、优惠券、系统消息、修 7) 缓存:主要是用 Redis 实现,并且对 Redis 做了集群来保证 Redis 服务的 高可用(缓存方面除了 redis 外还有 memcached) 8) 支付系统:主要是负责订单的支付、对账等功能,主要是对接了支付宝的 接口; (根据个人的实际情况选择最为熟悉的模块,进行叙述) 6.简述下这些模块怎么实现的?(述举例只给出部分功能的过程) 包含功能:添加商品类型、显示商品类型列表、修改商品类别、删除商品类型 商品类型管理 述举例: 止非法字段交) 1、添加商品类型:在后台模块新建一个商品类型的控制器(TypeController),并添加 add 方法, 同时建立好对应的静态页。新建一个对应的商品类型表,在表里添加数据验证。 在商品类型控制器中的 add 方法中完成商品类型的添加。(其中关键点是 create 验证和防 2、商品类型列表:在商品类型控制器中添加一个 lst 方法,取出商品类型数据,并在 对应的静态页中完成数据遍历,就能在页面中得出相应的商品类型列表 属性管理 包含功能:添加属性、显示属性列表、根据商品类型搜索属性、修改属性、删除属性 述举例: 前条件:建立一个属性表将各字段全部预先设置好,才可以进行一下操作 1、添加属性:在后台模块新建一个 AttributeController 的控制器,并添加 add 方法, 并建立好对应的静态页面,修改页面里的表单。然后新建一个 attribute 表对应的模型文 件,进行数据验证(验证规则可以查手册),在方法中完成属性添加的代码。在属性控制 器中写入 lst 方法,并且完成对应静态页,把取出的数据遍历到对应的静态页 2、根据商品类型搜索属性:(给 select 添加 change 事件,完成交表单, 表单 交到当前页面。)首先在方法中将商品显示出来,并将商品数据完成遍历,给显示商品 类 上海传智播客·黑马程序员 www.itheima.com 第 6 页 共 23 页
型的 select 添加 change 事件,完成表单交,其中会引用 JQ 添加 change 事件,当触 发 change 事件后,显示出当前显示的商品类型。在商品类型列表,添加“属性列表“的 连接,在 添加完成属性后,跳转到属性列表,直接显示所 属当前商品类型的属性,最后实 现分页 商品栏目管理 包含功能:创建栏目、栏目的增删改查 (注:商品类型和商品栏目的区别,类型是大类, 栏目是小类) 述举例: 前条件:要创建一个栏目表,以便进行下面的功能开发 1、添加栏目:在 admin 模块里面新建一个 category 的控制器,添加 add 方法,并完 成对应页面设计。在页面上设计好表单,在添加栏目时将已经添加的栏目显示出来(新建 一个商品栏目模型,在里面定义好方法,用于取出栏目的数据,并且已经格式化好的), 然后在 add 方法里将数据取出来,并且进行遍历,在此方法中完成栏目的添加 2、栏目列表:在 category 的控制器里添加 lst 方法,并且完成对应页面的设计,在 页面中遍历栏目数据,将其遍历显示到页面中 3、删除栏目:(注:在删除栏目时,如果有子栏目则不能删除)在栏目列表中添加删 除栏目的链接(用 U 函数自动生成路径),在相应的 category 控制器里,写上 del 方法, 接受传递过来的 id,实例化自定义模型,利用 sql 拼接进行查询,找出对应的栏目记录,将 其删除 商品管理 包含功能:商品的增删改查,在线编辑器,属性选项卡,属性的增删改查,商品相册选项 卡,添加相册,文件上传,相册上传等 述举例: 前条件:要将商品表创建好,具体字段根据需求开设计 1、添加商品:在后台模块(admin 模块)里新建一个 Goods 控制器,写入 add 方法, 同时完成相应的页面设计,在 add 方法对应的页面中对表单行进相应的修改(具体的页面 要求感觉需求来修改)。在 add 方法中完成商品的添加功能代码,例如生成唯一的商品 id 号、添加商品的时间等(利用前缀+时间+唯一码=唯一 id) 2、图片上传:可以利用 TP 已经定义好的钩子函数,来完成图片文件的上传,返回保 存图片的路径。钩子函数在模型里面会自动调用,比如:入库之前:_before_insert() 和 入库之后:_after_insert() 会被模型里面的 add 方法,自动调用。只需要在上传之前, 把图片的路径、上传单个文件的最大值、允许上传格式限制好 3、缩略图:在图片上传的基础上利用 new \Think\Image()按照原生图片的比例生成一 个缩略像素*缩略像素的缩略图,每个缩略图都会生成一个唯一的 id 名,并且保存到预设 好的路径文件夹中(这里要注意的是生成多张缩略图的时候,必须先生成大图,再生成小 图),图片生成后将路径入库。 4、显示属性选项卡:(选项卡的显示重点是给标签设置一个 onclick 事件函数)要在 选项卡中显示商品类型,在 goods 控制器里面的 add 方法中取出商品类型数据,然后在相 应的页面商品属性选项卡位置遍历商品类型数据,分别显示出来 5、完成商品属性的添加:前将商品属性表设计好,然后根据实际的静态页面进行表 单的修改,修改指定表单的域名(即标签中的 name),修改完成后在 Goods 模型里定义一 个钩子_after_insert,在该方法中完成属性数据的入库,由此属性的添加完成 上海传智播客·黑马程序员 www.itheima.com 第 7 页 共 23 页
权限管理 包含功能:管理员登录,权限管理(权限管理控制),角色管理,管理员管理 权限管理简述:权限管理是根据不同等级,不同管理员的情况下,授予不同的权限,各自 操作各自授权。授权方式大体分为两种:一种是直接给管理员授权权限,适合于管理员比较少, 权限数量也比较少的情况下;第二种是 RBAC 基于角色的访问控制。 在建表方面,采用五张表 其中有三张主表,权限表、角色表、管理员表,两张从表,角色与权限的中间表、管理员 与角色的中间表。 角色表与权限表的关系:一个角色可以有多个权限,一个权限可以属于多个角色,权限表 与角色表是多对多的关系,要体现这种关系,要使用角色与权限的中间表;管理员表与角色表的 关系:一个管理员可以属于多个角色,一个角色可以包含多个管理员,角色表与管理员表是多对 多的关系,要体现这种关系,要使用管理员与角色的中间表。五张表关系图如下: 述举例: 1、权限管理:在项目中权限管理就是按钮,通过按钮给对应的管理员或者是角色分配 权限。在后台模块新建一个权限的控制器,并写入 add 方法,完成对应的页面设计,修改 好页面上的表单,完善页面。新建一个权限模型,并且在模型中添加数据验证,设置好验 证规则(具体代码参考项目中的),在模型中完成权限添加。在父级权限完成后,继续添 加子级权限:在模型里面定义一个方法,用于取出权限,并格式化好权限数据,然后在添 加权限控制器里面,取出权限数据,并进行遍历,将遍历出来的子级权限显示在页面中 2、角色管理:角色管理中包含对角色的增删改查,授权等等。添加角色首先要在在后 台模 块新建一个 RoleController 的控制器,写入添加 add 方法,完成对应的静态页面,取 出权 限数据,并修改对应的表单。在后台模块里面,添加一个 RoleModel 模型,写入添加 数据 验证。接下来就是数据入库,在入库时要注意的是该表单交的数据,是入库两张的 表,一个是角色表,一个是角色与权限的中间表,其中角色与权限的中间表的数据,是使 用钩子函数_after_insert()来完成。 3、角色删除:如果角色里面有管理员,则不能删除,在删除角色的同时,要删除角色 与权限的中间表里面的对应的数据。首先在角色列表中添加删除的链接(用 U 函数自动生 成路径),然后在角色控制器中添加删除 del 方法,用于删除角色,其次在角色模型中添 加钩子函数_after_delete()用来删除角色与权限中间表对应的角色数据,删除完成 4、管理员管理:在添加管理员时,要分配管理员所属角色,并且将管理员各个数据根 据要求设定好格式。创建管理员控制器,添加 add 方法,取出角色数据,并完成页面设计 将数据显示到页面上。在管理员模型中添加数据验证,使用静态方法来完成验证, 上海传智播客·黑马程序员 www.itheima.com 第 8 页 共 23 页
分享到:
收藏