View
Response
快速上手
先強調不傷身體再講求效果
先建立正確觀念瞭解ASP.NETMVC執行生命週期以System.Web命名空間為基礎,所有功能都還在關注點分離(SeparateofConcerns;SoC)要簡單、要複雜,決定權在“你”瞭解現階段的限制需處理更多的HTML,CSS,
JavaScript缺乏元件化技術與視覺化開發工具支援理解ASP.NETWebForm有哪些成分不見了
關注點分離(SeparateofConcerns;SoC)
簡化複雜度將複雜的問題拆解成數個容易解決的單元一次僅關注於一個較容易理解與解決的部分可維護性大幅提昇不止可區分Model、View、Controller還可以再切割成更多層次,讓專案更易於維護
更容易測試僅測試需要關注的點測試導向先行(Test-DrivenDevelopment;TDD)
瞭解現階段的限制
需處理更多的HTML,CSS,JavaScript對於負責處理View的開發人員來說
HTML,CSS,JavaScript是必備技能學會使用jQuery能有效提升開發速度
建議讓HTML,CSS的責任切割出去
聘請專業的網頁設計人員專心處理HTML,CSS讓開發人員調整網頁版面是很沒效率
熟悉JavaScript是開發人員的天命
請當成一個「程式語言」來看,而非「小工具」推薦書籍:JavaScript大全(第五版)JavaScript:TheDefinitiveGuide,5/e
缺乏元件化技術與視覺化開發工具支援
母雞帶小雞的學習模式
開發經理擔當Pilot研究抽象概念並與專案成員分享找幾個小案子做實驗性開發不斷的CodeReview與CodeRefactoring累積經驗
不同技術不同人研究DesignPatternTDDLINQtoSQL,LINQtoEntitiesAutoMapperMoq…
協同開發、團隊分工
開發方法論
透過MVC分階段開發ModelControllerViewModelRepositoryControllerViewModelRepositoryServiceControllerViewIoC/DI/AutoMapper/UnitTest/IntegrationTest透過關注點分離簡化複雜度漸進式擴充各ASP.NETMVC擴充點HTMLHelper,AtionFilter,ModelBinder,ModelValidation,…定時做CodeRefactoring推薦書籍:重構-向範式前進(RefactoringtoPatterns)
團體合作的ASP.NETMVC開發策略
架構師專注Model設計資料結構、資料驗證規則、商業邏輯(BusinessLogic)LINQtoSQL,Repository,Service,DALModelValidation,ModelBinder,DataAnnotation分析師專注Controller設計網頁與後端的互動關係URLRouting,Controller,Actions,ActionFilter開發人員專注View決定前端呈現的細節、實做Action的程式碼、利用Service物件開發人員千萬不要自己承攬HTML,CSS的編修
工作撰寫單元測試程式(非整合測試)
高效能的ASP.NETMVC網站
寫出高效能的程式碼
善用ASP.NET快取機制與用戶端快取機制OutputCacheCacheAPIClient-sideCache適當的透過HTMLHelper產生URL的方式Strong-TypedHTMLHelperTemplateHTMLHelper(ASP.NETMVC2.0)適度的使用CDN(ContentDeliveryNetwork)最小化與合併Scripts、CSS與Images(CSSSpirit)部署時用Release模式建置網站移除不要的HttpModule關閉
web.config中的debug模式HTTP壓縮(要小心CPU問題)
縮短開發時間提升開發速度
累積經驗,撰寫程式碼產生器專注於解決問題,而非程式碼透過關注點分離簡化複雜度進而減少維護時間將問題釐清,並適度分離物件責任,以達到權責分工的目的一個物件僅負責一件事,一個ViewModel只給一個View用撰寫可靠的單元測試程式每個人都要能寫出可讓你們自己信任的測試程式撰寫可靠的整合測試程式透過專職的測試人員撰寫整合測試案例程式確保程式的執行結果與需求一致,保證軟體品質不會退化