SlideShare a Scribd company logo
使用Angular.js開發企業級應用程式 
陳小風
http://mvc.tw 
講者介紹– 陳鋒逸(小風) 
91mai就要買資深軟體工程師 
 JSDC 2013 講師 
 TechDay 2014 講師 
 IT邦幫忙鐵人賽優選 
• 使用Jenkins打造.Net CI Server(2012) 
• 使用Asp.Net MVC打造Api(2013) 
2
3 
什麼是Angular.js?
Angular.js 
4 
開源JavaScript函式庫,由Google維護 
幫助我們快速開發,良好的支援測試 
支援開發單一頁面應用程式(SPA) 
良好的支援物件導向程式設計,讓程式碼耦合性降低 
友善的支援JQuery
使用JQuery製作表單
使用JQuery製作表單 
6
JQuery的特色 
•直覺 
•與DOM綁定深 
•View修改,Code也要改 
•程式碼較多 
參考: http://jquery.com/
JQuery的特色 
•直覺 
•與DOM綁定深 
•View修改,Code也要改 
•程式碼較多 
參考: http://jquery.com/
使用Angular.js製作表單 
Model
使用Angular.js製作表單 
Action
使用Angular.js製作表單
宣告式開發 
•定義Controller 
•用Directive套用Library 
•繫結Model 
•互相連動 
•View和Code分離 
View Controller
小結 
 套版快 
 分工明確 
 好維護 
13
14 
更方便的開發方式
工程師的困擾 
•時間不夠 
•需求吹又生 
•功能不好用 
•明天能好嗎?
靈異現象?
但是Plug In越用越多… 
Setting會是什麼?
https://farm4.staticflickr.com/3099/2610267740_c718f6a644_o.jpg
到處都是Callback 
折扣=>運費=>分期 
我…在第幾層?
梭哈式開發法 
•一個頁面,一隻程式! 
•職責分離? 
•物件導向? 
•設計模式?
四字真言 
會動就好
22 
http://photo.l99.com/bigger/11/1341838228447_n3ex30.jpg
http://pic.pimg.tw/z642319240/1383384010-3293348412_n.jpg
混亂的根源 
• 缺少Coding Standard 
• 沒有統一的開發流程 
• 每個人使用不同的寫法 
• 程式碼零散不明確
開發三步驟 
Service 
Factory 
Provider 
Controller Config 
•決定角色 
•撰寫劇本 
•交給導演
單向繫結 
One Way Binding 
Model + Template 
View
雙向繫結 
Two Way Binding 
Model + Template 
View 
追蹤更新
把複雜的語法打包
好找的程式碼
Demo 
• 廣告編輯器
海報產生器 
• 編輯同時預覽 
• 不用JavaScript 
• 動態換廣告樣式
快速完成表單 
• 決定欄位 
• 套上Directive 
• 收工!
連動更新 
• 修改就可以看到效果
小結 
 內建角色 
 雙向繫結 
 化繁為簡
35 
提供良好的彈性
可組合的設計(DI) 
36
什麼是相依性注入(DI)? 
線上購物 
註冊為 
內建超商清單DI
Angular.js如何實現DI 
• 判斷參數名稱 
• 誰註冊為CVSService 
• 注入CVSService的實體
使用7-11做為超商 
SevenEleven.js 
向Angular註冊為CVSService
將超商更換為全家 
Family.js 
向Angular註冊為CVSService 
其他程式完全不用改!!
專屬的HTML 
• 自己取名 
• 容易讀懂
抽換的彈性 
•View和Code分離 
•程式功能獨立 
•耦合性低 
•可切換
Demo 
• 切換資料來源
商品展示頁 
• 前後端並行
根據環境切換 
資料來源名稱 
取得資料
開發時期 
 使用假資料 
資料來源名稱 
假資料
正式環境 
 資料由Api取得 
資料來源名稱 
呼叫Api
小結 
DOM自己取名 
 功能可抽換 
 前後端並行 
48
49 
強大的火力支援
具備網頁開發常用的工具庫 
jqLite – 基本的JQuery Selector 
$http – 進行XHRRequest 
$resource – 與Restful溝通 
ngAnimate – 套用動畫效果 
ngRoute – SPA應用程式的實現
好用Library支援 
Angular-Kendo
容易使用 
可分頁的Grid
容易使用 
資料 
+ 
繫結
使用JQuery呼叫Restful API 
讀取 
新增 
修改 
刪除
讓CRUD變簡單 
透過$resource 
將CRUD功能快 
速實現
Demo 
• 使用WebApi建立Blog的Api 
• 快速實現CRUD
小結 
 內建常用功能 
 許多現成套件 
 簡單易用 
57
58 
輕鬆的表單驗證
http://mvc.tw 
簡單的加上驗證 
Required 
ng-minlength 
ng-maxlength 
ng-pattern 
 自訂驗證 
required 
ng-minlength="5" 
ng-maxlength="30" 
錯誤提示訊息
可共用的驗證訊息 
60
可共用的驗證訊息 
61 
 建立常用錯誤訊息樣版 
error-messages.html
自訂驗證 
輸入值 
回傳驗證是否成功 
套上驗證
Demo 
• 套用表單驗證 
• 共用錯誤提示樣版
64 
支援自動化測試
我以為工作後測試軟體是…
實際上測試軟體有點像……
為什麼需要自動化測試?
使用Protractor 
• 量身打造 
• 模擬人類操作 
• 支援多瀏覽器
複雜表單的測試 
 測試一個這樣的表單需要花多少時間?
交給自動化測試 
•Just One Click
Demo 
• 自動化測試
小結 
 減少重複的動作 
 省下大量的時間 
 多瀏覽器支援 
72
73 
總結
選擇Angular.js的理由 
 關注點分離(SoC) 
 架構設計良好(SOLID) 
 程式碼好維護 
 社群活動踴躍 
 相容性極佳 
74
工商服務 
75 
公司介紹 
http://goo.gl/6P7FmV 
工作機會 
http://goo.gl/sp9JPj 
• APP開店平台 
• PC、Mobile Web、IOS、Android一次搞定 
• 誠徵 
• F2E 
• .Net Developer (Asp.Net Mvc) 
• Ohters
http://mvc.tw 
好活動需要支持 
感謝KKTIX 贊助twMVC 活動報名平台 
76
http://mvc.tw 
好輸入法需要露出 
77 
http://skilltree.my/Sponsor/xin_zi_ran
http://mvc.tw 
好課程需要支持 
78 
http://skilltree.my
謝謝各位 
h t t p : / / m v c . t w 
• 本投影片所包含的商標與文字皆屬原著作者所有。 
• 本投影片使用的圖片皆從網路搜尋。 
• 本著作係採用姓名標示-非商業性-相同方式分享3.0 台灣授權。閱讀本授權條款,請到 
http://creativecommons.org/licenses/by-nc-sa/3.0/tw/,或寫信至Creative Commons, 444 Castro 
Street, Suite 900, Mountain View, California, 94041, USA.

More Related Content

What's hot (20)

PPTX
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
Will Huang
 
PPTX
Micro-frontends with Angular 10 (Modern Web 2020)
Will Huang
 
PDF
動手打造 application framework-twMVC#15
twMVC
 
PPTX
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
 
PDF
Gulp.js 自動化前端任務流程
洧杰 廖
 
PPTX
使用 ASP.NET 5 實戰開發雲端應用程式
Will Huang
 
PPTX
Study4 love.2016.2.20.ionic
Kyle Shen
 
PPTX
Asp.net mvc 概觀介紹
Alan Tsai
 
PPTX
ASP.NET Core 6.0 全新功能探索
Will Huang
 
PPTX
Angular 5 全新功能探索 @ JSDC2017
Will Huang
 
PPTX
KSDG-ASP.NET MVC 5 Overview (偽三國誌)
Bruce Chen
 
PPTX
Angular 4 網站開發最佳實務 (Modern Web 2017)
Will Huang
 
PPTX
React js
國昭 張
 
PDF
webpack 入門
Anna Su
 
PPTX
保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格
Will Huang
 
PPTX
Nuget介紹- 如何使用和建立自己的package
Alan Tsai
 
PPTX
DEV305 - ASP.NET 5 開發攻略
Will Huang
 
PPTX
ASP.NET MVC 6 新功能探索
Will Huang
 
PDF
專案分層架構 twMVC#18
twMVC
 
PPTX
HTML5 規格最新發展現況 (HTML5 趨勢發展與技術應用論壇)
Will Huang
 
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
Will Huang
 
Micro-frontends with Angular 10 (Modern Web 2020)
Will Huang
 
動手打造 application framework-twMVC#15
twMVC
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
 
Gulp.js 自動化前端任務流程
洧杰 廖
 
使用 ASP.NET 5 實戰開發雲端應用程式
Will Huang
 
Study4 love.2016.2.20.ionic
Kyle Shen
 
Asp.net mvc 概觀介紹
Alan Tsai
 
ASP.NET Core 6.0 全新功能探索
Will Huang
 
Angular 5 全新功能探索 @ JSDC2017
Will Huang
 
KSDG-ASP.NET MVC 5 Overview (偽三國誌)
Bruce Chen
 
Angular 4 網站開發最佳實務 (Modern Web 2017)
Will Huang
 
React js
國昭 張
 
webpack 入門
Anna Su
 
保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格
Will Huang
 
Nuget介紹- 如何使用和建立自己的package
Alan Tsai
 
DEV305 - ASP.NET 5 開發攻略
Will Huang
 
ASP.NET MVC 6 新功能探索
Will Huang
 
專案分層架構 twMVC#18
twMVC
 
HTML5 規格最新發展現況 (HTML5 趨勢發展與技術應用論壇)
Will Huang
 

Similar to Angular js twmvc#17 (20)

PDF
twMVC#17 | 使用Angular.js開發大型系統架構
twMVC
 
PDF
AngularJS 開發 ASP.NET MVC -twMVC#9
twMVC
 
PDF
twMVC#09 | AngularJS 開發 ASP.NET MVC
twMVC
 
PDF
以Code igniter為基礎的網頁前端程式設計
Amigo 陳兆祥
 
PPTX
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
Duran Hsieh
 
PPTX
深入研究 Angular - phoebe pan
Phoebe Pan
 
PDF
Rails talk-5
Eddie Lee
 
PDF
那 Angular 那 AJAX 那 RESTful
功豪 魏
 
PDF
如何在有限資源下實現十年的後端服務演進
Mu Chun Wang
 
PDF
AngularJS Sharing
Tom Chen
 
PPTX
20150717 從網頁開發到android app行動應用開發 發佈版
Yung-Ting Chen
 
PDF
Angular從入門到實戰(一)
志龍 陳
 
PPT
Ajax Transportation Methods
yiditushe
 
PDF
Debugging - 前端工程開發實務訓練
Joseph Chiang
 
PDF
前端工程開發實務訓練
Joseph Chiang
 
PDF
RESTful API Design
Amigo 陳兆祥
 
PDF
程式人雜誌 -- 2013年7月號
鍾誠 陳鍾誠
 
PDF
程式人雜誌 -- 2013年8月號
鍾誠 陳鍾誠
 
PDF
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC
 
PPS
Flash UI - 商業應用案例探討
jehuen
 
twMVC#17 | 使用Angular.js開發大型系統架構
twMVC
 
AngularJS 開發 ASP.NET MVC -twMVC#9
twMVC
 
twMVC#09 | AngularJS 開發 ASP.NET MVC
twMVC
 
以Code igniter為基礎的網頁前端程式設計
Amigo 陳兆祥
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
Duran Hsieh
 
深入研究 Angular - phoebe pan
Phoebe Pan
 
Rails talk-5
Eddie Lee
 
那 Angular 那 AJAX 那 RESTful
功豪 魏
 
如何在有限資源下實現十年的後端服務演進
Mu Chun Wang
 
AngularJS Sharing
Tom Chen
 
20150717 從網頁開發到android app行動應用開發 發佈版
Yung-Ting Chen
 
Angular從入門到實戰(一)
志龍 陳
 
Ajax Transportation Methods
yiditushe
 
Debugging - 前端工程開發實務訓練
Joseph Chiang
 
前端工程開發實務訓練
Joseph Chiang
 
RESTful API Design
Amigo 陳兆祥
 
程式人雜誌 -- 2013年7月號
鍾誠 陳鍾誠
 
程式人雜誌 -- 2013年8月號
鍾誠 陳鍾誠
 
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC
 
Flash UI - 商業應用案例探討
jehuen
 
Ad

More from twMVC (20)

PDF
雲端上的資訊安全-Global Azure Bootcamp 2015 臺北場
twMVC
 
PDF
雲端環境的快取策略-Global Azure Bootcamp 2015 臺北場
twMVC
 
PDF
讓應用程式雲端化 由 Iaa s 邁向 paas 之路-Global Azure Bootcamp 2015 臺北場
twMVC
 
PDF
線上遊戲利用 Dev ops 開源工具 chef, docker, vagrant 在microsoft azure 的佈署實踐-Global Azure...
twMVC
 
PDF
Azure mobileservice
twMVC
 
PDF
TypeScript-twmvc#16
twMVC
 
PDF
前端工程師與室內裝修師傅的相似之處-twMVC#16
twMVC
 
PDF
開發的效能與效率-twMVC#15
twMVC
 
PDF
樞紐分析表之數據分析與統計-twMV#C14
twMVC
 
PDF
輕鬆上手Asp.net web api 2.1-twMVC#14
twMVC
 
PPTX
MVC實戰分享 分頁與排序相關技巧-tw mvc#13
twMVC
 
PPTX
RWD不是你想的那樣 tw mvc#13
twMVC
 
PPTX
ASP.NET MVC 善用網路資源快速完打造網站
twMVC
 
PDF
如何在實務上使用TDD來開發 twmvc#12
twMVC
 
PDF
Vs2013新功能介紹 twMVC#11
twMVC
 
PDF
架構設計入門 twMVC#11
twMVC
 
PDF
ASP.NET MVC Model 的設計與使用 twMVC#10
twMVC
 
PDF
Knockout 從零開始,實戰教學 twMVC#10
twMVC
 
PDF
20130823微軟雲端平台開發者日
twMVC
 
PDF
NFC近場通訊-twMVC#9
twMVC
 
雲端上的資訊安全-Global Azure Bootcamp 2015 臺北場
twMVC
 
雲端環境的快取策略-Global Azure Bootcamp 2015 臺北場
twMVC
 
讓應用程式雲端化 由 Iaa s 邁向 paas 之路-Global Azure Bootcamp 2015 臺北場
twMVC
 
線上遊戲利用 Dev ops 開源工具 chef, docker, vagrant 在microsoft azure 的佈署實踐-Global Azure...
twMVC
 
Azure mobileservice
twMVC
 
TypeScript-twmvc#16
twMVC
 
前端工程師與室內裝修師傅的相似之處-twMVC#16
twMVC
 
開發的效能與效率-twMVC#15
twMVC
 
樞紐分析表之數據分析與統計-twMV#C14
twMVC
 
輕鬆上手Asp.net web api 2.1-twMVC#14
twMVC
 
MVC實戰分享 分頁與排序相關技巧-tw mvc#13
twMVC
 
RWD不是你想的那樣 tw mvc#13
twMVC
 
ASP.NET MVC 善用網路資源快速完打造網站
twMVC
 
如何在實務上使用TDD來開發 twmvc#12
twMVC
 
Vs2013新功能介紹 twMVC#11
twMVC
 
架構設計入門 twMVC#11
twMVC
 
ASP.NET MVC Model 的設計與使用 twMVC#10
twMVC
 
Knockout 從零開始,實戰教學 twMVC#10
twMVC
 
20130823微軟雲端平台開發者日
twMVC
 
NFC近場通訊-twMVC#9
twMVC
 
Ad

Angular js twmvc#17