SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
原來 Angular
可以這樣玩設定
Poy Chang
DEV QA UAT PROD
DEVELOP
TEAM
OPERATION
TEAM
BUILD OPERATE
MONITOR
DEPLOY
RELEASE
CODE
TEST
PLAN
DEVELOP
TEAM
OPERATION
TEAM
BUILD OPERATE
MONITOR
DEPLOY
RELEASE
CODE
TEST
PLAN
設定檔情境 4 種玩設定方法
KEY Takeaway
Poy Chang
目前任職於全美 100 大私人企業,負責企業內部 IT 解
決方案設計與開發,專注於 Angular、ASP.NET Core、
Azure 等技術研究
✓ Angular Taiwan 社群成員
✓ Microsoft MVP Developer Technologies
✓ Global Azure Bootcamp@北京 2018 講師
✓ .NET Conf@台中 2018 講師
設定檔在設定甚麼?
資料來源 樣式喜好 起始狀態
行為配置 預覽功能 MISC.
設定檔分兩種
建置時期 執行時期
環境變數 組態設定檔
• 用於建置時期要套用哪個設定檔
• environment.prod.ts
V2-5 V6+
DEV QA UAT PROD
組態設定檔的運作
組態設定檔的運作
組態設定檔的運作
建置之後會用 .prod.ts 替代原本的
environment.ts 並包進 main.js 中
組態設定檔的運作
組態設定檔的運作
啟動程式碼最佳化
輸出檔加上雜湊碼
產生 來源映射檔
提取全域 成單獨檔案
使用檔案名稱命名延遲載入的模塊
啟動 模式
摘錄第三方套件的授權檔成單獨檔案
拆分第三方套件成單獨檔案做載入
搭配 模式做最佳化
組態設定檔使用方式
└── src
└── app
├── app.component.html
└── app.component.ts
└── environments
├── environment.prod.ts
├── environment.qa.ts
└── environment.ts
你應該只匯入/使用 environment
而不是其他的 environment.xxx
組態設定檔
組態設定檔用於建置時期
根據情境/階段作切換
設定檔分兩種
建置時期 執行時期
想在執行時期即時取得設定值
https://angularconftw2018-demoapi.azurewebsites.net/api/AppConfig/Demo
隨時取得設定檔
https://stackblitz.com/edit/ngtw2018-config-service
隨時取得設定檔
• Angular 內建依賴注入框架,讓你服務隨注即用
• 透過 Service + HttpClient 輕鬆向伺服器端取得設定值資訊
建立
Service
註冊
Service
注入
Service
隨時取得設定檔 (1)自訂 ConfigService
隨時取得設定檔 (2)註冊 ConfigService
隨時取得設定檔 (3)注入 ConfigService
路由切換時決定
https://stackblitz.com/edit/ngtw2018-config-resolver
路由切換時決定
• Angular 內建路由模組,讓你輕鬆建立路由機制
• 路由模組提供路由 3 種傳遞資料的方式
• Router Params
• Router Data
• Router Resolve
路由參數,可取得文字型別的參數值
路由資料,執行時期不會變動的物件型別
路由解析,為一種可客製的資料解析服務
路由切換時決定 (1)自訂 ConfigResolver
路由切換時決定 (2)註冊並設定路由
路由切換時決定 (3)取得設定
啟動前,先決定
https://stackblitz.com/edit/ngtw2018-app-initializer
node_module
SPA Application Namespace
index.html
@angular/core
{ NgModule }
@angular/core
{ Component }
import
import
Injection
Service
Core
Service
Module
Service
Component
Bootstrap
Application Module
Application Component
import
import
main.js
啟動前,先決定
啟動前,先決定
• Angular 有個 InjectionToken 來提供系統初始化相關作業
• InjectionToken 讓我們可以建立基於文字的標記物件,進而避免遇到
依賴注入機制中的名稱衝突
啟動前,先決定
• Angular 有個 InjectionToken 來提供系統初始化相關作業
• InjectionToken 讓我們可以建立基於文字的標記物件,進而避免遇到
依賴注入機制中的名稱衝突
啟動前,先決定
• Angular 有個 InjectionToken 來提供系統初始化相關作業
• APP_INITIALIZER
• 可以對 APP_INITIALIZER 註冊一系列的動作
https://github.com/angular/angular/blob/7.0.x/packages/core/src/application_init.ts#L19
啟動前,先決定 (1)自訂 ConfigService
啟動前,先決定 (2)修改 AppModule
啟動前,先決定 (3)取用設定值
執行時期建置時期
VS.
選用方式
建置時期
✓ 基礎建設類的設定
✓ 與狀態管理無關
✓ 用於 CI/CD 的設定
執行時期
✓ 動態的設定值
✓ 關於使用者資訊
✓ 機敏資訊的設定值
最終還是以 使用情境來選用
THANK YOU

Weitere ähnliche Inhalte

Ähnlich wie Angular Conf 2018 - 原來 Angular 可以這樣玩設定

玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手Poy Chang
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous deliveryQiao Liang
 
Agile tour 2014 - Coding Dojo with C# and TDD
Agile tour 2014 - Coding Dojo with C# and TDDAgile tour 2014 - Coding Dojo with C# and TDD
Agile tour 2014 - Coding Dojo with C# and TDDAgileCommunity
 
Agile tour Taipei 2014 - coding dojo with CSharp and TDD
Agile tour Taipei 2014 - coding dojo with CSharp and TDDAgile tour Taipei 2014 - coding dojo with CSharp and TDD
Agile tour Taipei 2014 - coding dojo with CSharp and TDDJoey Chen
 
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...Edward Kuo
 
用Octopus deploy做自動部署 - 快速上手
用Octopus deploy做自動部署 - 快速上手用Octopus deploy做自動部署 - 快速上手
用Octopus deploy做自動部署 - 快速上手Alan Tsai
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)Will Huang
 
打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012Qiao Liang
 
service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012Qiao Liang
 
twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC
 
价值中国网站开发、管理经验探讨、分享、交流
价值中国网站开发、管理经验探讨、分享、交流价值中国网站开发、管理经验探讨、分享、交流
价值中国网站开发、管理经验探讨、分享、交流hizhubo
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)Duran Hsieh
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介pan weizeng
 
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法TIM WANG
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOpsAndrew Wu
 
How to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B serviceHow to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B serviceAlex Su
 
Azurebootcamp 2018
Azurebootcamp 2018Azurebootcamp 2018
Azurebootcamp 2018Ian Chen
 
Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016Kirk Chen
 
Angular從入門到實戰(二)
Angular從入門到實戰(二)Angular從入門到實戰(二)
Angular從入門到實戰(二)志龍 陳
 
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...Alan Tsai
 

Ähnlich wie Angular Conf 2018 - 原來 Angular 可以這樣玩設定 (20)

玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous delivery
 
Agile tour 2014 - Coding Dojo with C# and TDD
Agile tour 2014 - Coding Dojo with C# and TDDAgile tour 2014 - Coding Dojo with C# and TDD
Agile tour 2014 - Coding Dojo with C# and TDD
 
Agile tour Taipei 2014 - coding dojo with CSharp and TDD
Agile tour Taipei 2014 - coding dojo with CSharp and TDDAgile tour Taipei 2014 - coding dojo with CSharp and TDD
Agile tour Taipei 2014 - coding dojo with CSharp and TDD
 
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...
[Agile Tour Hsinchu 2019] Our practice in the DevOps Process for Manufacture ...
 
用Octopus deploy做自動部署 - 快速上手
用Octopus deploy做自動部署 - 快速上手用Octopus deploy做自動部署 - 快速上手
用Octopus deploy做自動部署 - 快速上手
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
 
打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012
 
service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012
 
twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧
 
价值中国网站开发、管理经验探讨、分享、交流
价值中国网站开发、管理经验探讨、分享、交流价值中国网站开发、管理经验探讨、分享、交流
价值中国网站开发、管理经验探讨、分享、交流
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
在B2B硬體產業運用 Agile 與 DevOps 的實務與心法
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps
 
How to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B serviceHow to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B service
 
Azurebootcamp 2018
Azurebootcamp 2018Azurebootcamp 2018
Azurebootcamp 2018
 
Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016
 
Angular從入門到實戰(二)
Angular從入門到實戰(二)Angular從入門到實戰(二)
Angular從入門到實戰(二)
 
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
 

Mehr von Poy Chang

我的 DevOps 故事
我的 DevOps 故事我的 DevOps 故事
我的 DevOps 故事Poy Chang
 
打造 AIoT 智慧物聯網時代解決方案
打造 AIoT 智慧物聯網時代解決方案打造 AIoT 智慧物聯網時代解決方案
打造 AIoT 智慧物聯網時代解決方案Poy Chang
 
Vue 和 Angular 開發習慣
Vue 和 Angular 開發習慣Vue 和 Angular 開發習慣
Vue 和 Angular 開發習慣Poy Chang
 
使用最新 Edge 瀏覽器來進行開發​
使用最新 Edge 瀏覽器來進行開發​使用最新 Edge 瀏覽器來進行開發​
使用最新 Edge 瀏覽器來進行開發​Poy Chang
 
#19 Azure with Build 2019 - Windows Terminal
#19 Azure with Build 2019 - Windows Terminal#19 Azure with Build 2019 - Windows Terminal
#19 Azure with Build 2019 - Windows TerminalPoy Chang
 
Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目
Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目
Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目Poy Chang
 
那個 Code 不是我弄壞的! 持續整合與版本控制策略
那個 Code 不是我弄壞的!持續整合與版本控制策略那個 Code 不是我弄壞的!持續整合與版本控制策略
那個 Code 不是我弄壞的! 持續整合與版本控制策略Poy Chang
 
Azure TechDay Party - AIoT 智慧物聯網時代
Azure TechDay Party - AIoT 智慧物聯網時代Azure TechDay Party - AIoT 智慧物聯網時代
Azure TechDay Party - AIoT 智慧物聯網時代Poy Chang
 
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧Poy Chang
 
Global Azure Bootcamp @ 北京 - Azure Bot Servic 快速打造你的機器人
Global Azure Bootcamp @ 北京 - Azure Bot Servic  快速打造你的機器人Global Azure Bootcamp @ 北京 - Azure Bot Servic  快速打造你的機器人
Global Azure Bootcamp @ 北京 - Azure Bot Servic 快速打造你的機器人Poy Chang
 
智慧型校園Ip網路監控系統
智慧型校園Ip網路監控系統智慧型校園Ip網路監控系統
智慧型校園Ip網路監控系統Poy Chang
 

Mehr von Poy Chang (11)

我的 DevOps 故事
我的 DevOps 故事我的 DevOps 故事
我的 DevOps 故事
 
打造 AIoT 智慧物聯網時代解決方案
打造 AIoT 智慧物聯網時代解決方案打造 AIoT 智慧物聯網時代解決方案
打造 AIoT 智慧物聯網時代解決方案
 
Vue 和 Angular 開發習慣
Vue 和 Angular 開發習慣Vue 和 Angular 開發習慣
Vue 和 Angular 開發習慣
 
使用最新 Edge 瀏覽器來進行開發​
使用最新 Edge 瀏覽器來進行開發​使用最新 Edge 瀏覽器來進行開發​
使用最新 Edge 瀏覽器來進行開發​
 
#19 Azure with Build 2019 - Windows Terminal
#19 Azure with Build 2019 - Windows Terminal#19 Azure with Build 2019 - Windows Terminal
#19 Azure with Build 2019 - Windows Terminal
 
Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目
Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目
Global Azure Bootcamp @ 廣州 - 智能聊天機器人四代目
 
那個 Code 不是我弄壞的! 持續整合與版本控制策略
那個 Code 不是我弄壞的!持續整合與版本控制策略那個 Code 不是我弄壞的!持續整合與版本控制策略
那個 Code 不是我弄壞的! 持續整合與版本控制策略
 
Azure TechDay Party - AIoT 智慧物聯網時代
Azure TechDay Party - AIoT 智慧物聯網時代Azure TechDay Party - AIoT 智慧物聯網時代
Azure TechDay Party - AIoT 智慧物聯網時代
 
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
從雲端到邊緣 Azure IoT Edge 幫工廠設備長智慧
 
Global Azure Bootcamp @ 北京 - Azure Bot Servic 快速打造你的機器人
Global Azure Bootcamp @ 北京 - Azure Bot Servic  快速打造你的機器人Global Azure Bootcamp @ 北京 - Azure Bot Servic  快速打造你的機器人
Global Azure Bootcamp @ 北京 - Azure Bot Servic 快速打造你的機器人
 
智慧型校園Ip網路監控系統
智慧型校園Ip網路監控系統智慧型校園Ip網路監控系統
智慧型校園Ip網路監控系統
 

Angular Conf 2018 - 原來 Angular 可以這樣玩設定