我想寫一個簡單的系列文章。主題很簡單,就是記錄下面對上傳視頻需求時,攻城獅和普通人(泛指全部非技術人員)的一些區別。固然,從需求分析到最終完整實現,每一個步驟都是有乾貨。我會盡可能避免一些偏情緒化的表述。更多的時候,咱們應該把注意力集中在各個需求點自己的技術實現上。數據庫
這個系列的主要目的,就是秀一下咱們做爲攻城獅的優越感;不過,我總以爲咱們秀完,他們可能也不知道究竟發生了什麼事。另外,更重要的是,這個系列文章展現了從需求分析到技術選項,一直到最終的自動化上傳,自動化測試的完整思考覈實踐的過程。我以爲,對於攻城獅來講,後者多是咱們更須要交流和關注的。服務器
我會適當替換一些敏感的代碼細節。即便如此,我仍然努力會保證,通過適當配置後,全部代碼都是能夠正常運行的。ide
大概是上週一左右吧,臨時被安排去給一個內部項目新上傳大約 100 個新的視頻資源。要的還很急,說是週三就要作好。好吧,當時我就知道,那一週確定會過的很「酸爽」。由於那個項目能夠認爲是沒有管理後臺的,數據是要直接上傳到數據庫。意思就是我要手動編輯視頻相關的資料數據。還有就是,我拿到的第一手數據,也不是什麼結構化數據,而是一個 word 表格,和一個分散在多個文件夾下的視頻資源。測試
更「可怕」的是,我同時還被指派成了這個項目的 」Owner「。「Owner」,就意味着,我毫不能像他們上次那樣,繼續手動傳視頻了。成本過高,並且數據容易混亂。上一次,我只是做爲一個協做者,寫了幾行項目相關的代碼,幫他們簡單設計了一個數據庫表,也沒想太多,夠用就性。畢竟當時時間也很是緊,許多東西也是沒辦法盡善盡美的。ui
原來只有約20個視頻,都是交給「普通人」上傳的。流程大概就是:視頻拷貝給普通人 --> 普通人上傳完視頻 --> 郵件發出來視頻url和視頻標題 --> 我手動把數據錄進數據庫。中間,往返溝通了幾回,好比視頻尺寸不對了,視頻不能播放了,標題和視頻不對應了。。。真正的往返溝通,要比多不少,可是視頻數量少,整體來看倒也無傷大雅。url
可是此次是大概100個視頻。就算是隻錄入數據,差很少也得1個小時了,若是再手一抖,錄錯了。。。更可怕的是,我成了項目的 Owner,之後這種事,都得我直接處理。跨部門溝通,真的成本很高,或者說我太懶了吧,懶得一遍遍去別人工位催人家。因此,我就暗暗發誓,這件事必須完全解決。此次我要把包括視頻相關的數據,從生成到上傳,到自動化驗證,徹底自動化,智能化。雖然這100個視頻,時間上不會有太多變化,可是之後,再多的視頻,最多也就是輸入幾行命令,敲幾下鍵盤,就能夠自動搞定了。如此,這個Owner,才能作的舒心。固然,它是一個很小的內部項目,我也是真的不想再讓它之後佔用我太多時間了。設計
若是沒有意外的話,本週三到週五晚上,天天一更;週末會適當多寫點。視頻
講述的是,數據如何從普通的 word 文檔數據,變成最終可被程序化處理的過程。是的,你沒看錯,大部人「普通人」是用 Word 來傳遞數據的。好處就是人人都能看的懂;可是人人都能看懂的東西,攻城獅反倒無法直接用。事件
項目對接了微軟拿到 Luis 語義識別系統。原來是手動逐條驗證每一個問題和答案是否能匹配上。如今,必須寫個簡單的腳原本自動化驗證了。資源
就是如何把數據處理成數據庫須要的格式,自動導入數據庫。由於是內部項目,項目自己沒有提供數據編輯功能,因此我就採用最簡單的策略,每次數據有變化時,就所有刪除舊數據,從新批量導入新數據。新數據,確定是從原始數據,自動生成的。手動輸入,真的很容易出問題。
就是如何把視頻批量自動上傳到七牛服務器。確定是一個自動化腳本,可能你們都會寫。可是,小技巧每每解決大問題!晚上睡了一覺,次日起來看到全部視頻都上傳完了,真的是很開心的事。
視頻是否上傳成功,確定須要單獨驗證的。只是上傳腳本不能說明必定都上傳成功了,須要單獨驗證下。
這一步很關鍵。項目主要在 iPad 上用,因此須要驗證每一個視頻在 iPad 上可否自動播放。iPad 上,用 HTML5 Video 播放視頻時,對視頻格式有一些要求,因此每一個視頻都要驗證下。原來,就那幾個,手動點下就好了。如今,確定不能再那樣了。因而寫了一個簡答的測試網頁,經過捕捉 Video 的一些事件,來實現自動化批量驗證視頻可否真正播放。