日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

30条架构原则:助你成为大牛架构师

發布時間:2025/3/16 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 30条架构原则:助你成为大牛架构师 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

中生代技術?程序員突破成長的好伙伴每天8點推送有營養的文章

正文共:3684字

預計閱讀時間:5分鐘

【CSDN編者按】眾所周知,架構師的角色,更偏向于策劃、而非指揮,塑造、而非支配,其存在的意義,在于引導大家討論、而非自己主宰一切。

但是,具體應該如何執行呢?本文作者整理了 30 個公認的架構原則,來幫助大家解決此問題。也許有的原則,你從未聽說,但你看完就能快速學會。

相信你學會了,工作起來也會事半功倍,或許還可幫你避免很多無用的加班!

想一下軟件架構的評審過程:一位架構師參與進來,俯視一切然后指指點點,高談闊論。他發表的評論要么過于粗淺,要么嚴重脫離實際。

大家對其意見要么極度沉默,要么強烈反對。這對團隊幾乎沒有任何幫助。程序員和架構師都對這樣的架構評審望而生畏。

軟件架構師的角色應當像園丁而非指揮官。前者的職責主要是塑造、策劃并清除雜草,而后者主要任務是發號施令。

在 WSO2,我參與架構評審的時間已長達八年之久。WSO2 的產品非常豐富,比如 WSO2 ESB 、WSO2 API Manager ?以及 WSO2 SP ?都人盡皆知。在過去八年中,我們對許多產品和功能進行了討論、設計、改進和重新設計。

我們在設計軟件的過程中,把握的一個關鍵點是:軟件架構并非由架構師負責設計。我們的架構不是由架構師制定,然后交給其他人來實施。

相反,架構的設計任務由真正編寫代碼的團隊負責。架構師負責對工程師設計的架構進行修復、策劃和改進。我們的架構團隊是指導員和把關人,而非獨裁者。

在短期內,由一位架構師來制定架構的確既快捷又實惠。但是,從長遠來看,我們會組建一個團隊,讓他們自己不斷思考、改善架構,并從他們的錯誤中來提升自己。

當我們專注于團隊時,他們自然會隨著時間的推移而變得更好。架構團隊的首要任務是:盡可能保證架構容易執行。

此外,架構評審也存在缺陷。就像 Paul (@pzfreo)描述的架構評審那樣:架構師參與進來,聽一會,發表一點評論然后就走了。

作為一名架構師,你對架構發表自己的看法和意見無可厚非。但是,如果你不夠投入和細心,你的意見可能會讓團隊感到困惑,團隊就無法確定正確的做法到底是什么。

接下來我會將30個架構原則一一列出,其中一些原則是眾所周知的,而有些則源于我的個人經驗和心血。


基本原則


原則1:?KISS(Keep it simple 保持簡單)原則 ,盡可能讓一切變得簡單。該原則鼓勵我們用最簡單的解決方案來完成工作。

原則2:YAGNI(You aren't gonna need it 你不需要它)原則 ,只在需要時構建。

原則3:先學會爬,然后再學會走,最后學會跑。換句話說,先保證能夠正常運行,然后優化它使其更好,最后逐漸讓它變得完美。使用迭代開發,采用敏捷開發模式。為每個功能制定一個開發周期(最多2周),然后不斷迭代。

原則4:自動化測試是構建穩定、高質量產品的唯一方法。通過自動化測試提升創造力,所有一切都可以自動化!在設計時應當好好考慮自動化。

原則5:注重投資回報率Return of Investment(ROI)并將最多的注意力放在最重要的地方。

原則6:了解用戶并相應地平衡資源。大多數產品都有數千個最終用戶,大致需要20個開發人員和100個 DevOp 人員。不要花費數月的時間來構建一個不太可能使用 DevOp 的用戶界面(他們更喜歡腳本!)。這是原則5的特例。

原則7:功能的設計和測試盡可能獨立。如果在設計時考慮到這一點,長遠來看,它將省去很多麻煩,否則只有一切構建完成時你才可以開始測試整個系統。此外,遵循這個原則,版本發布也會更加順利。

原則8:警惕搜索引擎中花里胡哨的架構方案。我們天生都喜歡令人奪目的設計。如果你按捺不住, 就可能把太多根本不需要的功能和解決方案引入到你的架構中。



選擇功能


原則9:想要準確知道用戶如何使用我們的產品是很難的。所以我們要推行MVP(最小可行產品)。該理念的核心在于:先制定一些用例,完成用例所涉及的相關功能,立即發布產品,然后根據反饋和經驗對產品進行優化。

原則10:盡可能減少功能,如有疑問則將其刪除。許多功能可能從未使用,你只需為其留一個擴展接口即可。

原則11:聽取客戶的意見,看他們想要什么功能。

原則12:當客戶要求的功能影響到其他模塊時,要勇于和客戶辯論。從大局出發,嘗試找到另一種方法來處理問題。就像 Fords 所說的那樣“每當我問顧客需要什么的時候,他們總是會說需要跑得更快的馬”。請記住,你才是專家。你應該主導一切,做出正確和專業的決定。雖然用戶可能當時有些疑惑,但最終他們會感謝你的。


服務器設計與并發


原則13:從硬件、操作系統到你使用的編程語言等多方面深入了解服務器的工作原理。優化 IO 操作的效率是一個良好架構的首要任務。

原則14:遵循 Amdhal 的同步定律。線程之間共享的可變數據會降低程序速度。如果可以,請使用并發數據結構,并且僅在必要時使用同步。盡可能少地使用鎖。如果你打算在線程鎖期間阻塞,請確保自己足夠了解具體細節,因為這里存在極大的隱患。

原則15:如果你的設計是基于事件驅動的非阻塞架構,那就不要阻塞線程或者在線程中執行 IO 操作。一旦這樣做,系統將慢如蝸牛。


分布式系統


原則16:無狀態系統具有良好的擴展性。我們要盡可能了解和使用無分享架構。

原則17:除非你能夠掌控客戶端和服務器的所有代碼,否則消息傳遞失敗的情況在所難免。盡量減少你的系統依賴的因素(例如使用原則18)。

原則18:盡可能實施冪等操作。這樣它就很容易恢復,你至少可以保證交付沒問題。

原則19:了解 CAP 定理。擴展事務很難。盡可能使用補償,基于 RDBMS 的事務很難擴展。

原則20:分布式系統共識不支持擴展,也無法進行組通信,不支持群集范圍內的可靠消息傳遞。其最大節點限制大約是八個節點。

原則21:你很難隱藏分布式系統中的延遲和故障。(參見分布式計算的謬誤解釋 )。


用戶體驗


原則22:了解你的用戶以及他們的目標:他是新手、專家還是臨時用戶?他對計算機科學了解多少?極客看重擴展功能,開發人員關注示例和腳本,普通人則更在乎界面。

原則23:最好的產品應當不需要用戶手冊,用戶應該一看就會用。

原則24:當你無法在兩個選項之間做出決定時,請不要通過配置選項的方式來呈現問題。這會給用戶和架構師帶來麻煩。對于系統如何運作的細節,他們沒有你了解,他們怎么能做出決定呢?最好的方案是找到一個每次都有效的選擇;其次是自動做出選擇;第三個方案是添加配置參數并設置合理的默認值。

原則25:始終具有合理的配置默認值。

原則26:設計不良的配置會制造麻煩。始終配置幾個示例值。

原則27:詢問用戶配置值的時候,注意選擇用戶無需即可設置的值(例如,不要問用戶需要的最大緩存條目數量,而是要問他想要用于緩存的內存數量)

原則28:如果發現未知配置,則拋出錯誤。永遠不要忽視它。在調試過程中,無提示的配置錯誤會浪費我們很多調試時間。


難點


原則29:嘗試新語言很容易,但要正確使用卻很難。除非公司愿意組建一個十人團隊并花一年的時間來學習,否則盡量不要這樣做。如果你仍不死心,請閱讀有關語言設計的五個問題 后再做定奪。

原則30:可組合的拖放 UI 很難實現,除非團隊準備投入10人年的資源,否則不要去做。

最后,讓我談一些隨著時間的推移我的主意發生變化的事情。在理想情況下,一個平臺應當由多個組件組成,每個組件負責一個方面(例如,安全性、消息傳遞、注冊、調解、分析,等等)。使用這些功能構建的系統將是最佳的。

不幸的是,嚴格執行這一點可能是一個錯誤,特別是在新功能的初始狀態,其中簡單的功能可能導致大的變化,因為我們試圖使一切都是垂直的。有時我們發現我們添加的功能沒用,然后所有額外的工作都沒有用。最后,如果這需要多個團隊之間的協商,該功能可能永遠都無法完成。

現在來看,我愿意接受重復。治療帶來的結果可能會比疾病導致后果更嚴重。


結論


作為架構師,我們應該像園丁一樣思考、塑造、策劃和去除雜草而不是定義和構建。

在短期內,由一位架構師來制定架構的確既快捷又實惠。但是,從長遠來看,團隊的力量才是最強的。

如果你不夠投入和細心,你只指出錯誤,但是不道明錯誤原因,那么你的意見可能會讓團隊感到困惑。避免這種情況的一種方法是擁有一套普遍接受的原則,這些原則是討論架構時遵循的基本點,也是初學者學習架構的好資源。

原文:https://hackernoon.com/first-do-no-harm-30-principles-that-helped-me-avoid-fly-by-architecture-reviews-e8952ac632a

作者:Srinath Perera ,是一位計算機科學家、軟件架構師、作家,他是 apache 的核心成員,擁有 15 年分布式系統編程經驗,設計了 Apache Axis2 以及 WSO2 流處理器。

譯者:安翔,責編:胡巍巍



架構師好文回顧

??牛逼的架構師是怎么煉成的?

??李艷鵬:史上最全的架構師圖譜

??架構師,是否需要寫代碼

??架構大咖言傳身教:從程序員到架構師

??聽說過全棧工程師,那全棧架構師又是什么鬼?


#專注技術人的成長#

總結

以上是生活随笔為你收集整理的30条架构原则:助你成为大牛架构师的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 波多野结衣激情视频 | 北条麻妃在线一区二区 | 欧美日韩一区二区在线视频 | 国产精品99久 | 成人爽a毛片一区二区 | 国产激情网| 日韩乱码人妻无码中文字幕 | 国产精品高清无码在线观看 | 人妻熟人中文字幕一区二区 | 91av久久久 | 18视频在线观看男男 | 国产精品无码一区 | 日韩成人在线播放 | 精品日日夜夜 | 午夜资源 | 国产在线视频卡一卡二 | 狠狠97 | 一个人在线免费观看www | 亚洲国产日韩欧美在线观看 | 久久久久久久国产视频 | 欧美精品一区二区三区四区 | 日本精品在线播放 | 黄色肉肉视频 | 日本精品专区 | 黄色大片黄色大片 | 国产suv精品一区二区883 | 日日插夜夜爽 | 极品videosvideo喷水 | 婷婷开心激情网 | 国产精品久久久久久一区二区 | av嫩草 | 激情av网站 | 黄色网在线看 | 探花系列在线观看 | 91污网站 | 亚洲草逼视频 | 精品肉丝脚一区二区三区 | 男人的天堂视频网站 | 中国毛片在线 | 三级视频网站 | 大尺度激情吻胸视频 | 亚洲精品你懂的 | 黄瓜视频在线免费看 | 亚洲视频精品 | 最新中文字幕免费视频 | 国产乱淫av麻豆国产 | 免费看污的网站 | 国产一区二区在线免费观看 | 日韩午夜免费视频 | 国产区网址 | 最新网址av | 日本理论片午伦夜理片在线观看 | 欧美人与按摩师xxxx | 色综合天天综合综合国产 | 亚洲国产精品人人爽夜夜爽 | 午夜视频h | 狠狠干狠狠干狠狠干 | 国产天堂网 | 欧美一级片在线视频 | 国产中文字幕视频 | 香蕉视频A| 摸一摸操一操 | 国产精品815.cc红桃 | 日本大奶子视频 | 亚洲一区a | 精品午夜一区二区三区在线观看 | 大胸美女无遮挡 | 国产精品无码免费专区午夜 | 久久久888 | 伊人tv | 伊人精品一区二区三区 | 欧美成人做爰猛烈床戏 | 亚洲一区在线观 | 国产在线观看一区二区三区 | 国产18禁黄网站免费观看 | 精品国产欧美一区二区三区成人 | 抱着老师的嫩臀猛然挺进视频 | 日韩在线视频中文字幕 | av网站在线观看不卡 | 在线观看1区 | 久久精品一区二区三区四区 | 亚洲理论电影在线观看 | 国产精品伦一区二区三区免费看 | 国产一区二区激情视频 | 97在线观看免费视频 | 一级做a爰片 | 欧美视频一区在线 | 日韩精品在线观看一区 | a免费观看| 国产精品国产三级国产aⅴ下载 | 久久五月综合 | 亚洲第一看片 | 六月激情综合 | 丰满少妇aaaaaa爰片毛片 | 九九综合久久 | 亚洲福利电影网 | 亚洲在线综合 | 99视频免费在线观看 | 国产强被迫伦姧在线观看无码 |