TechDays 2013隨堂筆記0924
2 |
TechDays 2013來了,又到了有為中年化身勤奮學員,努力聽課抄筆記的時刻。一如往例,隨堂筆記不求完整通順,旨在保留重要關鍵字備忘並供日後爬文研究,順手分享大家參考。
【Keynotes】
- 在企業環境追求行動裝置二合一: 平板加鍵盤變筆電,差不多是Surface + Win8的概念。(個人看法: 輕量級電腦使用者有機會適用,但重度使用者[指用電腦幹粗活兒的黑手]仍得靠桌機維生)
- 冒出一個Micro Love CIO - 宋少卿(大驚!),原來是MS Solution情境劇
- Win8.1在企業的應用。亮點: 開始鍵(可以在桌面模式帶出應用程式清單,可排序或搜尋,但仍非傳統式資料夾結構)、一開機可以直入桌面模式、可重裝OS但保留個人檔案、BitLocker全磁碟加密(陳冠希也說讚) 、AppLocker(限制可安裝App清單)、為不同部門設定專屬開始畫面、平板電腦登錄取得企業內存取權限、圖片手勢密碼輸入、Assigned Access(某個帳號登入後只能使用某個App)
- App Demo: 泡沫紅茶店POS、3D引擎模型、百貨公司樓管工具
- Lync行動分機: 只要有Internet,分機可以跟著平板或手機四處遊移。所以,可以在長灘島接公司分機談公事哦~ (好可怕) Lync視訊會議支援Powerpoint分享、視訊對談。也可以與Skype IM互通交談。
- Lync Client支援Android、iOS [看到小工具: Android Screen Monitor,在PC顯示Android畫面]
- Office 365 / SkyDrive: 文件資料夾分享給特定對象、支援拖拉檔案上傳操作
- Exchange Online線上服務: 信箱容量50GB、偵測文件有個資阻止寄出
- 敏捷開發: 情境,委外團隊的Source Control。雲端TFS,支援需求管理、Iteration面板、Intellitrace記錄正式環境的錯誤細節、將程式執行歷程圖形化顯示(CodeMap/資料流處理視訊)、BrowserLink(在瀏覽器上點選元素,自動捲到對應的ASP.NET端元素)、一次叫出各種瀏覽器進行檢視、Team Foundation Service(雲端版可產生20萬個Client的壓力測試,Preview階段免費!)
- 維運管理: Scenario - 大量機器,實體機器虛擬機器交雜、Windows/Linux/NET/Java/SQL/Oracle、Azure。產品 – System Cener Operations Manager,SCOM。
- Windows Azure – 快速增加機器、Autoscaling(依流量自動增減機器數量)、Service Management Portal(Azure Pack)用Azure相同介面管理公司私有雲
- BI - 支援HDFS、從FB粉絲團取得文章、按讚次數、讀者性別資料進行分析
- SQL Server 2014記憶體資料庫、AMR Tool(分析哪些資料適合放入記憶體)
Modern ALM by Visual Studio & TFS 2013 by Franma
- 推行軟體工程工具常見難題: 管理者與開發者的觀點往往對立,要取得二者共識才會真心接納
- 要訣: 減少對開發者工作方法的改變(否則上有政策,下有對策)
- 組織愈大,衝突愈多,但小團隊有小團隊的痛。團隊無論大小都需要流程,惟掌控重點不同
- Plan(Project Management/Dashboard on TFS) –> Develop/Test(Load Test by TFS & Azure) –> Release(InRelease自動化部署) –> Operate(SCOM)
- 微軟正在縮小Delivery Cycle: 改版頻率 TFS2008 10-12wks, TFS2010 6wks, TFS2012 3wks
- 開發者認領工作,成為進行中的工作,簽入的程式碼再與其相關
- TFS提供Web化指標Dashboard(Metro Style)及管理介面
- 待處理項目: 功能(Function)、使用者劇本(User Story)。功能或劇本可以再加上Tag(標記),查詢時可使用Tag作為條件。
- 工作階段: 新增、作用中、已解決、已關閉,每個功能或劇本都會歸屬於某個階段,各階段可設定WIP限制(Work In Process,例如: 測試團隊同一時間只能承載三項工作)
- 當工作量一大就卡在特定人員身上 --> 用WIP限制來管控,避免某人操爆、其他人Idle,總體效能下降
- 一個Team Project可以有多個燃盡圖嗎? --> 同一個Project分成兩個Team,可針對不同Team進行分析
- 管理權限下放給相關負責人,Souce Control也可做細部設定
- 自動產生報表,避免Paper Work侵蝕工時
- 導入工具最大的管理意義: 讓問題透明化,被突顯出來。(如果有必要做內外帳也情有可原,但是別省略內帳,才不會失去工具的精神)
- 同一個Team Explorer可以並存TFS SCC Provider及GIT SCC Provider,即使用GIT做版控,仍可搭配TFS的其他管理功能。
- 聊天室功能 <== 可將原本散在LINE、Skype中的討論納入正式記錄
- 用Web介面為程式碼中加入具名註解,其他人可回覆該筆註解進行討論
- CodeMap偵錯工具,視覺化呈現Callstack+執行歷程,可針對線上環境蒐集的Intellisense Log繪製圖表。
- Code Lens - 程式碼關聯,直接顯示變更集、工作項目、測試記錄
- Alt-F12 – 另開視窗看Go Definition的程式碼,避免跳來跳去迷失方向
- Memory Dump Analyzer - 找出Memory Leak瓶頸 (Process Dumper產生傾印檔,直接用VS開啟檢視)
- 手動測試: 提供Web版的Test項目,可在網頁勾選成功失敗,貼圖填寫產生Bug單
- Test Manager: 記錄操作過程,側錄動作及區部圖塊,附在Bug單方便其他人了解或重現錯誤。
- InRelease: 自動化建置,提供OP Team過版上線的專屬工具
Visual Studo測試功能介紹 by 王寧疆
- 測試目的: 提高客戶滿意度、單元測試有助於早期發現降低修正成本、提高開發速度、與Refactoring結合
- 黑箱測試: (假設不了解程式碼寫法)
自動程式碼UI測試、MS Test Manager - 白箱測試: 正確/不正確輸入都要測到
單元測試/程式碼涵蓋範圍分析、程式碼度量 - Demo: 建立測試專案,在[TestMethod]上按右鍵執行測試,由燈號檢視結果(綠-成功、紅-失敗、黃-忽略)
- 常用Attribute:
TestClass、TestMethod、Ignore、ExpectedException(指定例外型別,沒例外反而算測試失敗)、AssemblyInitialize/AsseblyCleanup、ClassInitialize/ClassCleanup、TestIntitialize/TestCleanup、Timeout(1000) - 涵蓋度報告(Team Explorer在測試上按右鍵產生): 確保該測的都有測到,但是涵蓋100%並不保證沒問題,例如: 未考慮分母為0。涵蓋度報告可在程式碼加底色方便看出哪些有被跑到、哪些沒有。
- Cyclomatic complexity – 循環複雜度(條件式產生的複雜度),兩個if then else = 2 * 2 = 循環複雜度為4,透過程式碼度量可檢測。
- VS2013新功能: Support Win Store App單元測試、自動組建時進行單元測試、CodeLens(直接在Method上標示被引用狀況、測試記錄、作者、變更集)
- 單元測試進階:
- 已排序測試: 一旦失敗,後面的測試就不用做
- 偵測測試: 一邊測試一邊Line by Line Debug
- 剖析測試: 一邊測試一分析CPU、Memory使用率
- 【插花】大會堂的冷氣溫度恰到好處,座位軟硬適中,加上爾有鼾聲突擊,是周公所安排,最險峻的BOSS級試鍊場!
- 自動程式UI測試: 限XAML WinStore App(可錄下手勢、觸控位置,但不支援WinJS)、網頁測試限IE11
新增Coded UI Test Project,錄製操作過程可以拉出瞄準器,顯示屬性視窗,加上檢測條件(Very Very Cool!!) - 資料驅動測試: 由外界帶大量測試資料,減少測試的痛苦指數,用DataSource Attribute。
Demo 將資料放在Excel -> [DataSource("System.Data.OldeDb", @"Provider….")]
TextContext.DataRow["Col1"] - FakeFramework – 克服測試需要外部資源(File、DB、SPS...)、未完成功能才能進行的困難(since VS2012,好物!!)
Shim組件(取代.NET組件)、Stub組件(未完成組件)、Stub服務、Stub資料庫
例如: 你怎麼測DateTime.Now等於某一天? 土法鍊鋼: 改系統時間,測完再改回來
在測試專案中【加入Fakes組件】加入System.4.0.0.0.Fakes
using (ShimsContext.Create()) { ShimDateTime.NowGet = () => new DateTime(2013,9,26); TestBlah(); } - 程式碼分析: Microsoft安全性規則 -> 可偵測SQL Injection漏洞,報表中的弱點項目可直接轉為WorkItem
- 分析傾印檔案: 先中斷,執行"偵錯/另存傾印檔",比較兩次Dump檔,找出二者記憶體用量、物件個數的變化。Demo範例,一個物件註冊EventHandler卻未釋放導致MemoryLeak
- Azure雲端: 從雲端進行壓力測試,依使用量付費,可模擬極其壯觀的情境!!
F2E for Enterprise by 啊嗚 josephj
- 完整投影片
- 為什麼企業需要Front End Engineer(F2E)?
- Joseph F2E工程師資歷8年 Yahoo 4yr, D-Link 4yr, Faria Systems since 2013.6 SaaS
(編註: 除了熱心於F2E傳教,Joseph的另一項驚人事蹟是跑步環島,他的熱血量至少有一萬加崙吧!) - 前端的範圍: HTML、CSS、Javascript、安全、效能、跨瀏覽器...
- 傳統網站開發: Boss-Driven-Development,老闆提出網站構想,單兵開發者把全部東西生出來(DB+Server+Service+Client,"全端工程師"來著)
- 1998網頁標準開始形成~~ HTML、CSS、JavaScript分工明確,HTML Tag不應摻雜style='…' onclick='…'
- 2001 Yahoo設立F2E職位 2004 台灣雅虎出現第一位F2E
- 視覺設計 只產出PSD、後端工程 只管Model、Server端的程式
HTML、JavaScript、CSS、網頁效能、跨瀏覽器全部交給前端工程
把PSD轉成網頁,看起來一模一樣,但背後血淚斑斑 - 2005 Yahoo F2E 2人->600人,足證F2E趨勢
- 2007 HK Asia F2E Training
- 前端成為顯學: 各種Framework、程式庫、中介語言輩出: TDD 測試框架Jasmine、HAML、CoffeeScript...、前端社群如雨後春筍出現、JSDC.tw 2012(報到率超過9成)
- 企業的前端需求: 像FB一樣的互動性、支援iPhone/Android… 未來將成基本要求
- 前端對企業的重要助益: Services to Devices。跨瀏覽器是前端的基本功! 用網頁技術開發App,節省開發者寶貴的青春,但有其限制。
* PhoneGap提供存取Device API
* titanium 用JS寫,Build成Native Binary
* Firefox OS,OS本身就是瀏覽器,少掉多了中間層損失的效能 - 2004 Mainframe幾乎消失,2012 類似Mainframe概念的SaaS再度掘起。例如: 雲端會計系統,每個月花$29(約台幣1000),公司就有會計系統可用,甚至連會計師都不用請。(國內因法規限制較不易實現)
- Faria Systems自己也用別人的SaaS: Highrise, Basecamp, HipChat, CODE Climate, github, New Relic, logentries(使用者錯誤回報蒐集), AirBrake, CODESHIP。雖然企業內部也可自行開發,但不符經濟效率,且品質功能必有差距,必要時還是該閃開讓專業的來。
- Xero 美麗的線上會計系統 Close.io 新潮的CRM介面
- 前端工程帶來的改變:
* 工程師喜歡邏輯、資料,不在意UI
* 設計師喜歡呈現,不在意方法(不會程式)
F2E能完美結合二者,形成更好的分工,讓員工專注在自己喜愛的工作上,不要逼搞資料的工程師去學會UI。 - Bootstrap -- 找不到前端的強者,也能刻出足堪入目的UI
- 前端絕非"比較簡單",開發偵錯工具較不成熟、環境變化較大、要考慮效能/安全,而技術翻新的速度非常快... 代誌不像憨人想得哈尼甘單~
- http://f2eclass.com 前端課程分享(稍舊,2005)
Comments
# by Kenny
發現黑大今天跟我上的課程完全一樣! 大會堂的椅子真的好睡!!
# by 黑大
黑大好快手,不知是使用哪家輸入法?