商城开发手记

螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。

——百度百科

选择螺旋模型,适用于创新团队,商城的运营模式及所销售的商品都是创新模式下产生的。

作为开发人员,对商城所有的产品及活动,需要确保以下几点:

设计上的灵活性,可以在项目的各个阶段进行变更

以小的分段来构建大型系统,使成本计算变得简单容易

需求方始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性

技术架构

用笔者一直参与开发的商城来举例,点融商城使用了3层的微服务技术架构:前端,中间层,后端(各种微服务)。

使用3层的原因是:安全性,水平扩展,垂直扩展。

安全性

对于普通用户而言, 访问或者抓包,只能获取到中间层的数据。对于开发而言,中间层就是我们防火墙,在这个层面,我们做了最高级别的防护。安全团队提的漏洞,我们会在这个地方做最快速的修复。

水平扩展

水平扩展实际上是结合了 DevOps团队的docker 技术-多节点。

使用DevOps多节点后,其实每个部分都可以水平扩展,前端多节点,中间层多节点,后端多节点。

我们只需要保证多节点的一致性就好。使用的是Redis 来保证多节点的一致性,比保存到数据库快很多,Redis 也可以使用docker来多节点。

垂直扩展

因为商城模块之间是弱耦合,所以可以单个模块升级,比如抢购模块,抽奖模块等,其实也可以理解为将模块升级为微服务,我们通过中间层将前端请求分发各个微服务上。可以根据需求来进行无缝升级,这也是开发过程选用螺旋模型的主要原因。

技术创新

点融商城前端使用的是React,PC 版(未上线)用的是React同构。为什么采用同构呢?有以下三个原因。

速度

现在手机端的社区在未做前后端分离时候,第一屏展现给用户时间大概是4-8秒(非图片),我们进行前后端分离后(非图片),第一屏展示给用户平均在2秒。采取同构后,预计第一屏展示1秒左右(非图片)。

SEO

商城PC对SEO的依赖非常大,单页应用不能满足SEO需求,搜索引擎只能收录一个页面。使用同构技术,可以让第一屏页面在服务端渲染出来,再呈现给用户。对于爬虫来说每一个页面都是在服务端渲染出来的,而在同构没出来之前,有些公司为了SEO,部署了两套代码,专门为爬虫准备了一套。

组件复用,API复用

因为APP端先启动,很多组件逻辑已经做好,所以很多逻辑代码可以复用,API也不用为PC版出单独的接口。

如何高效可靠完成需求

1.认同所做的事情

举个例子,尊礼团的加入使点融商城从简单用点融币购买加息券,变成了一个让用户享受投资理财带来快乐的一个地方,改变了用户消费方式,做为开发,我觉得在做的不是一个工作,而是一份事业。

从用户提交的心愿单来看,我们的用户非常善良可爱,上心愿单的时候本来希望是获得用户想要哪些商品,但实际上,用户反馈的更多是鼓励和一些心声:

14****60

想要一个迷你小音响

今年初加入点融以来,坚持每天登陆点融,每天签到,每月定时定额投入一小笔资金,每天看着收益虽然不多但一直在稳定增长,心里感到很满足很幸福,谢谢点融。

13****84

我想给我爸买一个新的好轮椅和新的防褥疮充气垫子。

奋斗了两年,基本上都没剩下什么钱了,一年前的心愿,不是买不起,是我爸看着现在挣钱这么难,不舍的让我买。心疼的苦楚!

14****51

我想要优大重型机车 二代地平线新款跑车R2摩托跑车 高赛摩托车大跑车趴赛车原装正品可上牌全国免邮 亮光橙 宗申250cc,这只是个心愿,希望被看到,很难实现,对于一个刚毕业的大学生,每天努力工作也只是志愿者,没有什么工资,但是我只要有存款还是喜欢存在点金融里,慢慢的学会理财,慢慢的更懂生活。

2.把自己当需求方

因为是创新项目,以及leader 准许我们发散思维,参与到项目中去,所以做为开发的我们都会去换位思考,如果我去设计这个功能,我会怎么做。通过换位思考,有时会理解需求为什么会这么做。所以开发时候心情也会不错。

3.压力与动力

我们团队最爱干的一件事就是互相给压力互相给鼓励,举个栗子,运营要一个时间节点上线一样东西,我们发现,这个功能,那个功能太复杂,我们就会给运营压力, 要是效果不好 ,下次就不加班了,我们运营也会很给力,经常半夜1,2点一起讨论问题,到现在无论活动还是常规开发,效果都还不错。做为我们开发非常开心,希望能一直保持下去。

4.跨团队协助

点融商城是站在巨人的肩膀上前行的,有devops 帮忙做底层架构,使我们开发不用关心,服务器数据库的运行情况,专心写业务逻辑,快速迭代。因为快所以有时会有细节会想不到,devops, dba,和安全团队,会主动帮忙发现问题和解决问题。

本文作者:淳遥(点融黑帮),目前就职于点融网Social部门,担任高级软件开发工程师,爱好徒步旅行,喜欢挑战和一切新鲜事物,不停挑战和瞎折腾。

你可能感兴趣的:(商城开发手记)