[twMVC] twMVC#23 參後感想

主題:

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而不是計價整個運算服務

都有各自的強大之處

但小弟目前還沒這些領域的實際經驗,可能之後使用到才會更領悟吧

----

參考資料:

Mobile App開發、維護與改版的愛恨之路

Microsoft Azure Functions

Microsoft Azure Functions官方文件(中文)

Microsoft Azure Functions官方文件(英文)

 


 

  • 文章中的敘述或資訊有誤,歡迎回應指正,討論與指教是進步的原動力:)
  • 喜歡此點部落文章,歡迎各位轉載並於文末附載原文網址超連結與站名【DriftMind】