zoukankan      html  css  js  c++  java
  • 【趣味连载】攻城狮上传视频与普通人上传视频:序

    前言

    我想写一个简单的系列文章。主题很简单,就是记录下面对上传视频需求时,攻城狮和普通人(泛指所有非技术人员)的一些区别。当然,从需求分析到最终完整实现,每个步骤都是有干货。我会尽量避免一些偏情绪化的表述。更多的时候,我们应该把注意力集中在各个需求点本身的技术实现上。

    这个系列的主要目的,就是秀一下我们作为攻城狮的优越感;不过,我总觉得我们秀完,他们可能也不知道究竟发生了什么事。另外,更重要的是,这个系列文章展示了从需求分析到技术选项,一直到最终的自动化上传,自动化测试的完整思考核实践的过程。我觉得,对于攻城狮来说,后者可能是我们更需要交流和关注的。

    我会适当替换一些敏感的代码细节。即使如此,我仍然努力会保证,经过适当配置后,所有代码都是可以正常运行的。

    背景简介

    大概是上周一左右吧,临时被安排去给一个内部项目新上传大约 100 个新的视频资源。要的还很急,说是周三就要做好。好吧,当时我就知道,那一周肯定会过的很“酸爽”。因为那个项目可以认为是没有管理后台的,数据是要直接上传到数据库。意思就是我要手动编辑视频相关的资料数据。还有就是,我拿到的第一手数据,也不是什么结构化数据,而是一个 word 表格,和一个分散在多个文件夹下的视频资源。

    更“可怕”的是,我同时还被指派成了这个项目的 ”Owner“。“Owner”,就意味着,我绝不能像他们上次那样,继续手动传视频了。成本太高,而且数据容易混乱。上一次,我只是作为一个协作者,写了几行项目相关的代码,帮他们简单设计了一个数据库表,也没想太多,够用就性。毕竟当时时间也非常紧,许多东西也是没办法尽善尽美的。

    原来只有约20个视频,都是交给“普通人”上传的。流程大概就是:视频拷贝给普通人 --> 普通人上传完视频 --> 邮件发出来视频url和视频标题 --> 我手动把数据录进数据库。中间,往返沟通了几次,比如视频尺寸不对了,视频不能播放了,标题和视频不对应了。。。真正的往返沟通,要比多很多,但是视频数量少,总体来看倒也无伤大雅。

    但是这次是大概100个视频。就算是只录入数据,差不多也得1个小时了,如果再手一抖,录错了。。。更可怕的是,我成了项目的 Owner,以后这种事,都得我直接处理。跨部门沟通,真的成本很高,或者说我太懒了吧,懒得一遍遍去别人工位催人家。所以,我就暗暗发誓,这件事必须彻底解决。这次我要把包括视频相关的数据,从生成到上传,到自动化验证,完全自动化,智能化。虽然这100个视频,时间上不会有太多变化,但是以后,再多的视频,最多也就是输入几行命令,敲几下键盘,就可以自动搞定了。如此,这个Owner,才能做的舒心。当然,它是一个很小的内部项目,我也是真的不想再让它以后占用我太多时间了。

    更新规划

    如果没有意外的话,本周三到周五晚上,每天一更;周末会适当多写点。

    (一)生成结构化数据

    讲述的是,数据如何从普通的 word 文档数据,变成最终可被程序化处理的过程。是的,你没看错,大部人“普通人”是用 Word 来传递数据的。好处就是人人都能看的懂;但是人人都能看懂的东西,攻城狮反倒没法直接用。

    (二)批量验证语义分析功能

    项目对接了微软拿到 Luis 语义识别系统。原来是手动逐条验证每个问题和答案是否能匹配上。现在,必须写个简单的脚本来自动化验证了。

    (三)批量导入数据

    就是如何把数据处理成数据库需要的格式,自动导入数据库。因为是内部项目,项目本身没有提供数据编辑功能,所以我就采用最简单的策略,每次数据有变化时,就全部删除旧数据,重新批量导入新数据。新数据,肯定是从原始数据,自动生成的。手动输入,真的很容易出问题。

    (四)批量导入视频

    就是如何把视频批量自动上传到七牛服务器。肯定是一个自动化脚本,可能大家都会写。但是,小技巧往往解决大问题!晚上睡了一觉,第二天起来看到所有视频都上传完了,真的是很开心的事。

    (五)批量验证视频上传是否成功

    视频是否上传成功,肯定需要单独验证的。只是上传脚本不能说明一定都上传成功了,需要单独验证下。

    (六)验证视频能否真正播放

    这一步很关键。项目主要在 iPad 上用,所以需要验证每个视频在 iPad 上能否自动播放。iPad 上,用 HTML5 Video 播放视频时,对视频格式有一些要求,所以每个视频都要验证下。原来,就那几个,手动点下就行了。现在,肯定不能再那样了。于是写了一个简答的测试网页,通过捕捉 Video 的一些事件,来实现自动化批量验证视频能否真正播放。

  • 相关阅读:
    微信二维码 场景二维码 用于推送事件,关注等 注册用户 ,经过测试
    简单的 Helper 封装 -- CookieHelper
    简单的 Helper 封装 -- SecurityHelper 安全助手:封装加密算法(MD5、SHA、HMAC、DES、RSA)
    Java反射机制
    Windows Azure Web Site (13) Azure Web Site备份
    Windows Azure Virtual Machine (1) IaaS用户手册
    Windows Azure Web Site (1) 用户手册
    Windows Azure Web Site (12) Azure Web Site配置文件
    Windows Azure Web Site (11) 使用源代码管理器管理Azure Web Site
    Windows Azure Web Site (10) Web Site测试环境
  • 原文地址:https://www.cnblogs.com/ios122/p/7990307.html
Copyright © 2011-2022 走看看