SlideShare ist ein Scribd-Unternehmen logo
1 von 23
如何培養架構性思考
(談軟體架構師必經之路)
http://www.dotblogs.com.tw/gelis/
你對軟體架構師的印象?
嘴砲王?
懂很多東西?什麼都會?打雜工?水電工?
但是只會說,不會做?
軟體架構師在做些什麼?
需求訪談?拉賽?系統分析(SA)?
說很多?但是都不是他做?
開 Table? 系統設計(SD)?
畫流程圖?撰寫需求規格?開立程式規格?
Coding?建立 Coding Standard?建立規範?
導入流程?遊說公司使用新技術?
丟棄舊系統,換新系統?
系統設計?RD 研究發展?叫人寫程式?
帶人做專案?產品經理?
軟體架構設計 vs Design Pattern
究竟軟體架構設計 與 Design Pattern 究竟有什麼不一樣呢?
所謂的 Design Pattern 中文譯為設計模式,他是種程式碼
設計思維,通常用以解決一些程式碼設計時常見的一些像是
易懂、易維護、易修改、耦合度低等等議題
PS:其實架構設計是一種思考模式
軟體架構設計 vs Design Pattern
所謂的架構設計則談得更廣,不像 Design Pattern 只關注
某一塊程式碼的設計,架構設計則比較需要全面性的思考,
不光是程式碼架構、分層,開發架構的分層、跨機器的分層,
舉凡效能議題、Ap Server所使用的通訊協定、Ap Server架
構規劃、網路規劃、資料庫系統規劃,甚至作業系統、檔案
系統,都可以說在軟體架構設計範疇內。
軟體架構師須具備的技能(1)
能屈能伸
(架構師最好各種角色都經歷過
PM/SA/SD/PG/RD)你才會知道專案每個階段該注意什麼?
做牛做馬 (會變身) 超級賽亞人無誤
(搞得我好亂XD)
軟體架構師須具備的技能(2)
背爛系統經驗多
重構
懂得多、懂得廣
一定要會寫程式 (很重要)
軟體架構師須具備的技能(3)
維持對軟體的熱情
對市場需求、解決那些問題 (自己有那些問題) 有足夠的洞察力
有用的技術
軟體架構師必須對於技術、工具有(評估/選擇)的能力
接受改變、擁抱改變、切忌一成不變、相信事情永遠有更好的
解決方法
什麼是必經之路?
一切從可 Troubleshooting 開始
你可以問,但是,通常你如果可以問對問題,其實答案都不遠了..
自己解決問題、那都是經驗值的加分
一切都是經驗:為了讓軟體更容易維護、開發、一致化的開
發方式
了解「運作原理」勝於一切
除了實務經驗外,不足的還是要多讀書…
不要害怕新的挑戰
做專案的軟體架構師 VS 做產品的軟體架構師
關注點會有些不同
顧客需求勝於一切,顧客就是老闆,軟體不能出錯
專案的軟體架構師需先掌握 Known-How
產品掌握的是市場的需求
軟體客製化、延展性、擴充性,賣錢勝於一切,產品不能出
錯 (產品更重視品質)
產品品質 = 公司招牌
如何培養養架構性思考?(1)
實際 Coding 時,該在腦中進行的小迴圈
即便是 Coding,也要以架構師的角度來看程式碼
程式來自於 需求 需求 完成程式
專案的 Domain Known-How 重要性 (優先性) 絕對高出技
術許多,難道說技術不重要嗎?當然不是,而是精準掌握住
客戶的需求,那麼剩下的,就只是技術的問題而已。如此一
來,你會知道那些 Business 是高可重用性的
如何培養養架構性思考?(2)
https://www.slideshare.net/GelisWu/gelis
http://www.microsoft.com/taiwan/techdays2012/
http://www.microsoft.com/learning/zh/tw/
http://social.technet.microsoft.com/Forums/zh-tw/categories/ http://social.msdn.microsoft.com/Forums/zh-tw/categories/
http://www.microsoft.com/taiwan/techdays2012/
http://www.microsoft.com/learning/zh/tw/
http://social.technet.microsoft.com/Forums/zh-tw/categories/ http://social.msdn.microsoft.com/Forums/zh-tw/categories/
如何培養架構性思考(談軟體架構師必經之路)

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
 
ワタシはSingletonがキライだ
ワタシはSingletonがキライだワタシはSingletonがキライだ
ワタシはSingletonがキライだ
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 
例外處理設計
例外處理設計例外處理設計
例外處理設計
 
OpenStreetMap+MongoDBで地図情報を検索してみたい!
OpenStreetMap+MongoDBで地図情報を検索してみたい!OpenStreetMap+MongoDBで地図情報を検索してみたい!
OpenStreetMap+MongoDBで地図情報を検索してみたい!
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
 
軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
我的 DevOps 故事
我的 DevOps 故事我的 DevOps 故事
我的 DevOps 故事
 
從緊急事件 談 SRE 應變能力的培養 - DevOpsDays Taipei 2018
從緊急事件  談 SRE 應變能力的培養 - DevOpsDays Taipei 2018從緊急事件  談 SRE 應變能力的培養 - DevOpsDays Taipei 2018
從緊急事件 談 SRE 應變能力的培養 - DevOpsDays Taipei 2018
 
大規模微服務導入 - #1, 從零開始的系統架構設計概觀
大規模微服務導入 - #1, 從零開始的系統架構設計概觀大規模微服務導入 - #1, 從零開始的系統架構設計概觀
大規模微服務導入 - #1, 從零開始的系統架構設計概觀
 
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
 
HTML5マークアップの心得と作法
HTML5マークアップの心得と作法HTML5マークアップの心得と作法
HTML5マークアップの心得と作法
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
 
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 

Ähnlich wie 如何培養架構性思考(談軟體架構師必經之路)

[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
Drupal Taiwan
 
一个互联网产品的成长史
一个互联网产品的成长史一个互联网产品的成长史
一个互联网产品的成长史
AHAConference
 
Djt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.comDjt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.com
drewz lin
 
Djt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.comDjt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.com
drewz lin
 
Ibm Soa编程模型
Ibm Soa编程模型Ibm Soa编程模型
Ibm Soa编程模型
olderp
 

Ähnlich wie 如何培養架構性思考(談軟體架構師必經之路) (20)

在生命轉彎的地方 - 從軟體開發職涯,探索人生
在生命轉彎的地方 - 從軟體開發職涯,探索人生在生命轉彎的地方 - 從軟體開發職涯,探索人生
在生命轉彎的地方 - 從軟體開發職涯,探索人生
 
程序员与技术
程序员与技术程序员与技术
程序员与技术
 
[DDD] 快快樂樂學DDD
[DDD] 快快樂樂學DDD[DDD] 快快樂樂學DDD
[DDD] 快快樂樂學DDD
 
2021 DDDTW Study Group 第一場 導讀
2021 DDDTW Study Group 第一場 導讀2021 DDDTW Study Group 第一場 導讀
2021 DDDTW Study Group 第一場 導讀
 
软件项目管理与团队合作
软件项目管理与团队合作软件项目管理与团队合作
软件项目管理与团队合作
 
歡迎加入軟體構築行列
歡迎加入軟體構築行列歡迎加入軟體構築行列
歡迎加入軟體構築行列
 
2009/04/19 UI Gathering專題演講-「偽」網站設計-Website Prototype Design的實務應用分享
2009/04/19 UI Gathering專題演講-「偽」網站設計-Website Prototype Design的實務應用分享2009/04/19 UI Gathering專題演講-「偽」網站設計-Website Prototype Design的實務應用分享
2009/04/19 UI Gathering專題演講-「偽」網站設計-Website Prototype Design的實務應用分享
 
2020DDDTW-如何逐步導入敏捷精神,創造願意接受失敗的開發團隊?
2020DDDTW-如何逐步導入敏捷精神,創造願意接受失敗的開發團隊?2020DDDTW-如何逐步導入敏捷精神,創造願意接受失敗的開發團隊?
2020DDDTW-如何逐步導入敏捷精神,創造願意接受失敗的開發團隊?
 
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
[DCTPE2010] 從企劃到開發維護的 Drupal 專案經驗
 
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
 
網路、行銷、使用者經驗設計
網路、行銷、使用者經驗設計網路、行銷、使用者經驗設計
網路、行銷、使用者經驗設計
 
Web Design - 從需求到設計,我要思考什麼?
Web Design - 從需求到設計,我要思考什麼?Web Design - 從需求到設計,我要思考什麼?
Web Design - 從需求到設計,我要思考什麼?
 
Software Development via A.I.
Software Development via A.I.Software Development via A.I.
Software Development via A.I.
 
一个互联网产品的成长史
一个互联网产品的成长史一个互联网产品的成长史
一个互联网产品的成长史
 
Djt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.comDjt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.com
 
Djt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.comDjt22 justinliu djt.qq.com
Djt22 justinliu djt.qq.com
 
Ibm Soa编程模型
Ibm Soa编程模型Ibm Soa编程模型
Ibm Soa编程模型
 
Ibm Soa编程模型
Ibm Soa编程模型Ibm Soa编程模型
Ibm Soa编程模型
 
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设
 
产品经理工作总结20110119
产品经理工作总结20110119产品经理工作总结20110119
产品经理工作总结20110119
 

Mehr von Gelis Wu

架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
Gelis Wu
 

Mehr von Gelis Wu (20)

Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________
 
.NET 7 升級教戰手冊_V1.0.pdf
.NET 7 升級教戰手冊_V1.0.pdf.NET 7 升級教戰手冊_V1.0.pdf
.NET 7 升級教戰手冊_V1.0.pdf
 
顧問養成秘技 - 顧問服務實戰.pptx
顧問養成秘技 - 顧問服務實戰.pptx顧問養成秘技 - 顧問服務實戰.pptx
顧問養成秘技 - 顧問服務實戰.pptx
 
Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界
 
深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例
深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例
深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例
 
Blazor Component 開發實戰
Blazor Component 開發實戰Blazor Component 開發實戰
Blazor Component 開發實戰
 
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
 
專業顧問的技能成長日記
專業顧問的技能成長日記專業顧問的技能成長日記
專業顧問的技能成長日記
 
你的軟體架構夠敏捷嗎?
你的軟體架構夠敏捷嗎?你的軟體架構夠敏捷嗎?
你的軟體架構夠敏捷嗎?
 
使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式
 
一個 ASP.NET Core 2.1 開發指南
一個 ASP.NET Core 2.1 開發指南一個 ASP.NET Core 2.1 開發指南
一個 ASP.NET Core 2.1 開發指南
 
前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScript前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScript
 
Dot netstandard2.0與.net的未來發展
Dot netstandard2.0與.net的未來發展Dot netstandard2.0與.net的未來發展
Dot netstandard2.0與.net的未來發展
 
客製化的 Web api 的框架設計
客製化的 Web api 的框架設計客製化的 Web api 的框架設計
客製化的 Web api 的框架設計
 
Asp.net identity 2.0
Asp.net identity 2.0Asp.net identity 2.0
Asp.net identity 2.0
 
Asp.net mvc 基礎
Asp.net mvc 基礎Asp.net mvc 基礎
Asp.net mvc 基礎
 
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
 
Azure PaaS (WebApp & SQL Database) workshop solution
Azure PaaS (WebApp & SQL Database) workshop solutionAzure PaaS (WebApp & SQL Database) workshop solution
Azure PaaS (WebApp & SQL Database) workshop solution
 
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)
團隊開發永遠的痛   談導入團隊開發的共同規範(Final)團隊開發永遠的痛   談導入團隊開發的共同規範(Final)
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)
 
活用 Application insight
活用 Application insight活用 Application insight
活用 Application insight
 

如何培養架構性思考(談軟體架構師必經之路)