主題:
1.Mobile App開發、維護與改版的愛恨之路
2.快速上手Azure Fuctions
這次好不容易意參加了twMVC的課程了
雖然很久之前就認識了Demo大大
但這還是第一次正式的參加,而且還遇見好久不見的Rick大
----
正文開始!
附上上課照片
這次的主題主要分成了兩部分
由James Tsai講解的主題:Mobile App開發、維護與改版的愛恨之路
及由Dino Wang講解的主題:快速上手Azure Fuctions
雖然James大講的是Mobile方面的開發,但我想對於專案的開發時程也一定會碰到維護及改版的問題
這部分可能需要有Unit Test(單元測試)經驗的人比較聽得懂
總而言之,目前對於開發上的常見問題有下列幾個
1.沒自動化測試(只好找人工)
2.不知道錯在哪邊
3.不知道測試過哪些
4.改東壞西
5.共同開發問題
我想最大的問題就是1, 2, 3這幾個問題會比較大
尤其當現在Visual Studio 支援 Xamarin之後開發Android相關App的時候,設備各種都有
也不可能一一的人工測試(當然是有可能啦)
James大提供了幾個公司所提供自動化測試的解決服務
服務名稱 | Xamarin Test Cloud | Appium | Experitest | Testin |
---|---|---|---|---|
優缺點 |
1.雲端測試(內部資料測試麻煩) 2.需付費 3.Mac環境友善 |
1.私有雲測試 2.有條件免費 3.Mac環境友善 |
1.私有雲測試 2.有部分免費但付費為主 3.Windows相對友善 4.與VS整合相關工具 5.與TFS整合與管控 |
1.目前覺得一個奇葩的公司(?) (叫你把開發專案傳給他們由他們內部測試.....) |
James大是以Experitest作為範例
主要是這定SeeTestAutomation
這個設定裡面內含了Recorder
調整錄製的UI測試腳本
產出Report
最強大的應該是將錄好的UI測試腳本轉換成各種語言的測試腳本
因此可以想像之後就一台測試Server接了好各廠牌、大小、解析度的Android設備
同時的測試並且自動產出各版本的Report
就不用的人工點到死了
目前只能講到這裡,因為也沒有寫過測試腳本也很難說出他的更強大之處
不過可以想像的到至少在測試的時候是多麼的節省時間
------
第二部分是Dino大介紹Azure Functions的部分
主要可以跟Microsoft Azure提供的WebJobs做互補的效用
而Azure Functions比較適用於事件發生非固定時的應用情境
或者把後前端與後端的工作切的更分開
適合情境為:Azure事件處理, 其他SaaS處理, Single page App, IoT的即時流處理, Bot等
他的計價方式以執行時間及執行次數兩種方式收欸
每個月一百萬次或總執行時數400k Gb-s(還是第一次看到這種單位)
他希望提供Serverless的架構
只專注於Function本身的寫法處理該事件或實作方式
Azure Funtions有兩大開發重點
Triggers | Binding |
事件驅動來源 來源事件訊息 所有Function需要有一個Trigger事件起始 |
綁定的資源,包含事件訊息 包含輸入、輸出的資源 利用預設綁定資源,簡化開發,專注流程 |
有幾個部分也是該注意的部分
TimeTrigger雖是CRON的表示式
但有六個欄位,多了秒的欄位
在開發的部分當然官方也有提供Templates可供參考 https://github.com/Azure/AzureFunctions
若習慣在自己的編輯器編輯的話,可以使用Yeoman generator下載Templates
若習慣在VS code上編輯的話,因為開發檔案格式為.csx(C# script)
目前還不支援Intellisense,但只要把附檔名先改成.cs(C#)檔案格式就可以抓到了
只是記得最後要改為.csx
這次讓我印象最深刻的Demo情境
就是利用Azure Functions來接力處理使用者上傳圖檔後自動縮圖的功能
由於一般而言,前端的使用者會因為上傳圖檔之後,還需要等候後端的縮圖處理,等待前端頁面更新
藉由Azure Functions的接力,當使用者上傳之後,縮圖的工作就由後端的Function App處理
這樣使用者就不用掛網等待了
-----
總結
這次的twMVC分享,一個是強調開發期間改版、維護、測試的工具分享
解決掉測試期間的問題,以簡化整個開發的速度
另一個則是利用Azure Functions的功能把後端處理的部分與前端完整的切開
以專注於單一功能上的開發,並且可利用Azure Functions的計價方式
只計價有被使用到的Function而不是計價整個運算服務
都有各自的強大之處
但小弟目前還沒這些領域的實際經驗,可能之後使用到才會更領悟吧
----
參考資料:
Microsoft Azure Functions官方文件(中文)
Microsoft Azure Functions官方文件(英文)
- 文章中的敘述或資訊有誤,歡迎回應指正,討論與指教是進步的原動力:)
- 若喜歡此點部落文章,歡迎各位轉載並於文末附載原文網址超連結與站名【DriftMind】