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 黑大

黑大好快手,不知是使用哪家輸入法?

Post a comment