你是一個合格的軟體架構師嗎?
原文: infoq: Are You a Software Architect? https://www.infoq.com/articles/brown-are-you-a-software-architect?utm_source=reddit&utm_medium=link&utm_campaign=external 最近看的文章之中,這篇文章相當適合推薦給大家.不論你已經是軟體架構師,或是你正想將你的專業領域網軟體架構師來邁進,都建議來看一下. 本文部分 身為一個軟體架構師,最重要的兩個能力如下: Definition of the software architecture Delivery of the software architecture 以下開始解釋這兩種能力的細節,以及為何需要這兩種能力. A. Definition of the software architecture (定義出軟體架構) 裡面建議在勾勒出整個軟體架構的時候必須要有的幾個面向為: Management of non-functional requirements Architecture definition Technology selection Architecture evaluation Architecture collaboration 以下開始逐一解釋每個細項的部分 1. Management of non-functional requirements (管理非功能面的需求) 這裡解釋一下,所謂的”非功能面需求” (non-functional requirements) 一般指的就是跟功能本身無關的需求,比如說: 系統的反應速度,系統容納上限,是否有 HA 與 Fault-tolerance? . 要針對功能面向來定義與管理比較容易,要有相當的經驗的人才能了解 non-functional requirements 的重要. 在設計軟體架構的第一個面向應該馬上將功能面以外的需求加以管理,並且確認清楚,不要讓該需求無限擴張. 比如說你的系統如果不需要 24x7 的營運保證,或許就可以讓他有系統更新與修改的時間與機會.或是可以釐清究竟需要多少的連線...