QCon上海2017观后感 – 意识

前一篇介绍了这次QCon上海中感受到的当前的风口走向,这篇则将介绍几个在多个演讲中交叉出现的一些东东,这些不是具体的框架、技术,而是更泛泛的经验和意识。

产品意识

技术团队如何从跟随业务到驱动业务?微盟的CTO结合他的实践经验,尝试对此进行了些探讨。

在业务上要勤于思考:

  • 核心目标客户群是什么?
  • 他们的痛点是什么,当前需要我们给他们提供些什么

Eric Ries曾在《精益创业实战》中提出MVP(minimum viable product)概念,意即“最简可行产品”——用最快、最简明的方式建立一个可用的产品原型,这个原型要表达出你产品最终想要的效果,然后通过迭代来完善细节。

图片

很多人都赞同MVP理论,但是实际操作起来却比听上去的要难的多:

在设计产品原型的时候,没有办法真的只把最必要的功能留在初级版本中,因为总会希望可以把很cool、很有惊喜的小细节带给用户来博取赞叹,但是这个从全局上来看,是把某些功能可以加进产品,会削弱产品整体流畅性。

因此,在产品设计时应当思考产品功能的起点,而不是在脑海中预设的需求点:

你的产品要能体现出对用户需求的深刻理解,能帮他们解决亟待解决的问题;
认真去思考、去观察你的用户在使用产品过程中,是如何从你的产品中获取他们想要的价值的,留心他们采用的方法;
优秀的用户体验是可以最小化用户和产品之间的摩擦的,你未必要把使用步骤减到最低,但至少要让每一步的衔接流畅;
优秀的产品能说出用户心里的话,所以正式推出前,最好有周密的测试过程,收集大家的使用反馈。

安全意识

现在的电商平台经常会面临被薅羊毛的问题,优惠券或者新用户权益被大量小号领取,例如钻天猫积分规则的漏洞进行套现:

而这些帐号又是怎么来的呢?蘑菇街的安全工程师介绍了他们所遇到的蘑菇街背后的灰色产业链,像帐号注册问题则主要分为这三类锅:

  • 平台自己的锅
    • 帐号注册只需要图形验证码、手机号绑定即可,而图形验证码可以接入打码平台、手机号绑定也可以接入短信接码平台,因此整个注册过程都可以自动化掉。
  • 开发的锅
    • 通过Cookie可以让美丽说账号在蘑菇街平台上购买商品
  • 第三方的锅
    • 返利网平台的第三方帮助登录功能

这些案例也给开发人员带来了一些警示,从产品设计到功能实现再到生态合作,一系列过程中都需要有安全意识。以反欺诈为例,可以考虑结合多种技术来进行:IP/帐号识别与限制、图片验证码+短信/语言验证码、通用设备识别技术、设备指纹(设备识别)、行为识别(机器人识别)、数据服务(实名稽核+数据风险评估)、风险管理平台(风险决策)。

魔蝎科技的COO也介绍了他们是如何利用自己的爬虫能力提供用户授权的数据采集工具服务。而从他们爬虫所面临的挑战来看,我们也可以相应了解到一个有点安全意识的站点需要注意的点:

    • 是真实的个人信息还是盗用/伪冒的信息
    • 是人在浏览网页还是机器操作
    • 是否是高风险的用户
  • 设备
    • 是真实的物理设备还是虚拟机/模拟器
    • 是否是常用的设备
    • 是否是伪造的设备
    • 设备是否是高风险设备
  • 帐号
    • 是真实的帐号还是小号
    • 帐号是否泄露
    • 帐号是否被盗用
  • 行为
    • 是真实的交易还是虚假的交易
    • 是否是合法的交易
    • 是否是真实的评价
    • 是否存在隐含的关系

除了这些业务相关的安全意识,开发人员也需要警钟长鸣,守住底线、合法合规、心怀敬畏。

工程体系

现在的Web业务日益复杂化和多元化,随便一个前端项目,都已经不是以前写个页面,搞几个jQuery插件就能完成的了。工程复杂了就会产生许多问题,比如:如何进行高效的多人协作?如果保证项目的可维护性?如何提升项目开发质量?

在2013年前淘宝前端团队的研发模式基本以围绕前端框架的生态建设为主,各种小而美的工具百花齐放。但在团队规模日益壮大的同时也产生了前面提到的这些问题,而他们的前端工程体系:DEF(Development Ecosystem for FED)就是在这个背景下出现的。

什么是前端工程?就是面向具体业务形态的全声明周期标准化研发过程管理方法。这是一件系统化的事情,DEF工程体系平台从:编码指导规范、研发支撑工具、线上流程、权限管控、质量安全验收、数据日志报表等多个环节支撑起集团几百前端的日常研发工作,将规模化前端团队的研发效率提升到一个新的高度。

图片

上图是DEF的整体架构,配色挺好看,但是没有画出每一块的关系= =

那现在的前端项目需要我们去建立标准,统一目录结构,将功能分解为各个小模块(require、exports)。然后,在发布前对代码进行构建(build),执行合并、打包、压缩。可以看出,这其实就是一种抽象的工作流程。落实到实现上,我们需要解决几个问题:

  • 目录结构需要方便的按约定生成(约定好于配置,基于约定工作效率更高)
  • 本地如何进行调试(手动构建后调试、watch 文件改动并构建后调试)
  • 如何进行上线(本地构建后上线、服务端构建后上线)

DEF给出了自己的答案:

  • 使用 generator 来生成规范的目录结构
  • 使用按需增量编译的本地服务器 reflect 来进行本地调试(利用 middleware 来实现文件的实时构建,而不是 watch 文件后构建)
  • 使用完美接入代码管理系统(Gitlab)的云构建服务(在服务端使用构建器 builder 构建文件后同步代码)

DEF解决了前端工程中非常重要的问题:目录结构规范,代码构建。同时通过插件机制,诞生了各种各样的工程规范(标准)。

发表评论