色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

架構師需了解的一些知識

jf_78858299 ? 來源:元閏子的邀請 ? 作者:元閏子 ? 2023-05-10 17:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

當你點開一個招聘APP,篩選條件選擇互聯網技術,在列出來的一大堆職位上,往往有那么幾個帶有“ 架構師 ”三個字眼的高薪職位。當你被它的高薪所吸引而點擊查看職位詳情時,又會被它的高要求所勸退。它們往往要求工作年限在5年以上,需要求職者有過3年以上的系統設計經驗,精通各種架構模式和系統框架,反觀自己卻一個條件都不滿足。

軟件架構師就是這么一個讓人向往,但又讓人望洋興嘆的一個職位。就像建筑設計師總有成為總設計師的夢想,航天工作者總有成為總工程師的壯志,相信每一個軟件工程師都有過成為軟件架構師的想法。引用維基百科里的定義, 軟件架構師的職責就是在軟件系統研發中,負責依據需求來確定主要的技術選擇、設計系統的主體框架結構,并負責搭建實施 。然而,架構師所需的技能遠遠不止于技術選擇和系統設計。本文主要介紹軟件架構的定義,以及要成為一個軟件架構師所需具備的一些技能,讓你對軟件架構師這一職位有一個更深的了解。

文中大部分的觀點來自于《Fundamentals of Software Architecture》一書,想了解更多詳情推薦閱讀原書。

軟件架構的定義

對于 軟件架構 (Software Architecture),我們通常將它看成是軟件系統的藍圖(blueprint),但是如果要給出一個精確的定義,往往很難。維基百科里對軟件架構的定義為, 有關軟件整體結構與組件的抽象描述,用于指導大型軟件系統各個方面的設計 。但是,這種定義也是片面的,軟件架構并不僅僅是系統的整體結構和組件,光有這些還不足以指導設計出好的軟件系統。

Mark Richards和Neal Ford在書中,從四個維度上對軟件架構進行了描述,分別是 StructureArchitecture characteristicsArchitecture decisionsDesign principles

圖片

軟件架構的描述

Structure

Structure描述的是軟件系統所使用的架構風格 ,比如最常見的分層架構(layered architecture)、事件驅動架構(event-driven architecture)、微核架構(microkernel architecture)、微服務架構(microservices architecture)等等。當你去問架構師一個軟件系統使用什么架構時,如果他告訴你,“系統使用的是微服務架構”,那么也他僅僅闡明了系統的架構風格而已。若想了解整個系統的軟件架構,對architecture characteristics、architecture decisions和design principles都要有深入的認識。

圖片

Structure

Architecture characteristics

Architecture characteristics也就是我們常說的非功能需求 ,比如有可用性(Availability)、可擴展性(Scalability)、可靠性(Reliability)等。Architecture characteristics往往容易被軟件新手所忽略,但是它對于軟件系統而言卻是非常的重要。如果說功能需求決定了一個軟件系統的下限,那么非功能需求則決定了它的上限。

圖片

Architecture characteristics

Architecture decisions

Architecture decisions描述了開發軟件系統時所必須遵循的規則 ,比如圖中例子,對于一個分層架構風格的系統而言,開發工程師需要遵循以下規則:只有業務層才能直接訪問服務層,表現層不能直接訪問服務層。Architecture decisions更多的只是一種約束,違反了這種約束可能并不會對系統的功能造成影響,但是卻是系統架構腐化的源頭。

圖片

Architecture decisions

Design principles

Design principles指的是系統設計的原則 ,用于引導開發團隊選擇更符合系統特點的技術方案。Design principles只會給出一個方向,而不是具體的實現方案。比如圖中例子給出的系統設計原則就是:微服務之間應該盡可能通過異步通信來提升系統的性能。至于開發團隊通過REST或者RPC的方式進行異步通信實現,設計原則并未進行限制。

圖片

Design principles

成為架構師所需的技能

就像軟件架構不僅僅是系統的整體結構和組件一樣,要成為一個軟件架構師,只會技術選型是遠遠不夠的。一個合格的軟件架構師應該具備以下的幾種技能:

進行架構決策

An architect is expected to define the architecture decisions and design principles used to guide technology decisions within the team, the department, or across the enterprise.

這是一個架構師所需具備的最基本的技能,需要為開發團隊給出系統設計的原則和系統開發的約束。 架構師在這里的角色更多的是一個引導者,而不是具體技術方案的制定者 。比如,開發團隊要進行前端框架的選型,作為架構師應該給出的建議是選擇Reactive風格的前端框架(引導團隊在React.js、Angular、Vue.js或者其他Reactive風格的前端框架之間進行選擇),而不是直接建議選擇React.js框架。前者屬于架構決策,而后者則是技術決策。

持續對系統架構進行分析

An architect is expected to continually analyze the architecture and current technology environment and then recommend solutions for improvement.

就像一個軟件系統的生命周期并不止于開發階段的結束,軟件架構也不是一錘子買賣。這就要求架構師能夠持續對系統架構進行分析,并提出改進的建議,使得系統在面對業務和技術的雙重變化時,仍然能夠保持架構良好。

保持對技術和業界的發展趨勢的敏感

An architect is expected to keep current with the latest technology and industry trends

作為一個架構師必須時刻保持對技術和業界發展趨勢的敏感。在敏捷開發的潮流下,軟件的特性會頻繁的發生變化,但是軟件的基礎架構往往是很少改變的。架構師如果不能把握當前技術和業界發展的趨勢,從而導致設計出來的軟件架構不能夠應付未來幾年的業務和技術變化,這對于一個軟件系統而言將會是災難性的。

確保團隊按照既定的規則進行開發

An architect is expected to ensure compliance with architecture decisions and design principles.

架構師不僅僅需要制定設計原則和開發約束,還需要確保團隊能夠一直按照這些規則進行軟件開發。這就要求架構師對開發人員提交的核心代碼進行Code Review,否則系統的架構很容易就腐化掉了。

擴展知識的廣度

An architect is expected to have exposure to multiple and diverse technologies, frameworks, platforms, and environments.

對于一個架構師而言,他并不需要精通每一種框架、平臺和語言,但至少要盡可能多的了解它們,這樣才能更好的支撐架構決策。這就要求架構師能夠持續的學習新的知識,不斷地跳出自己的舒適區。最好的情況就是精通2~3種語言和框架,并且熟悉業界各種常用的語言和框架,這樣的知識深度和廣度的結合才能設計出更好的軟件架構。

擁有一定的領域知識

An architect is expected to have a certain level of business domain expertise.

所有的技術都是服務于既有的業務,剝離了業務的軟件技術毫無價值 。架構師無需像領域專家一樣精通系統的各種業務,但至少也要有一定的業務積累。軟件是用來解決問題的,不懂業務的架構師來做軟件架構設計,就相當于還沒讀懂題目就開始解題,結果往往適得其反。比如一個需要低時延的業務,交給一個不懂業務的架構師來進行系統設計,可能得出來的是一個高吞吐量的架構。

人際交往的能力

An architect is expected to possess exceptional interpersonal skills, including teamwork, facilitation, and leadership.

對于大部分的開發工程師和架構師而言,這可能是最難的一條了要求了。他們很擅長,也很樂意去解決技術上的問題,但是對于與人相關的問題則相當的抵觸。但這對于一個合格架構師來說所必須克服的一點,因為架構師不僅僅需要制定技術規則,更重要的是領導團隊按照既定規則進行開發,這不可避免地就涉及到領導力和人際交往的能力。

當一個開發工程師決定在一次需求開發中采用單例模式,可能團隊里的其他人并不會有太多的關注。但是當一個架構師決定采用微服務架構來設計系統時,可能就會受到團隊內各類人員的挑戰,比如版本經理可能覺得微服務架構太復雜,會不會影響交付的節奏;開發人員可能覺得分層架構更好實現。這種情況下就要求架構師能夠有很好的人際交往能力,說服各類人員,這樣項目才能更好的進行下去。

總結

軟件架構是一個很抽象的東西,目前對它的定義大部分都是一些很寬泛的描述。《Fundamentals of Software Architecture》從四個維度上對軟件架構進行了描述,讓軟件架構有了一個更加清晰的視圖。在此基礎上,書中也提出了一個合格的軟件架構師所需要具備的幾種技能。總的來說,就是 想要設計出一個好的軟件架構很難,要成為一個好的軟件架構師更難

另外,書中還提出了軟件架構的兩個準則,很有道理,就是有點抽象。不過沒關系, 不要試圖理解它,要去感受它

1、Everything in software architecture is a trade-off.

2、Why is more important than how.

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 系統設計
    +關注

    關注

    0

    文章

    164

    瀏覽量

    22108
  • 軟件架構
    +關注

    關注

    0

    文章

    64

    瀏覽量

    10499
  • 架構師
    +關注

    關注

    0

    文章

    47

    瀏覽量

    4783
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Tenstorrent 首席架構師:未來 RISC-V 會是計算機的主流

    強,適合定制化需求等。在 7 月 17 日第五屆(2025)RISC-V 中國峰會的主論壇上,Tenstorrent 首席架構師 Wei-Han Lien 表示,Tenstorrent 投入了大量人力
    發表于 07-17 11:26 ?1055次閱讀

    關于芯片設計的一些基本知識

    芯片的設計理念眾所周知,芯片擁有極為復雜的結構。以英偉達的B200芯片為例,在巴掌大的面積上,塞入了2080億個晶體管。里面的布局,堪稱個異次元空間級的迷宮。英偉達B200芯片如此復雜的架構
    的頭像 發表于 06-11 12:16 ?258次閱讀
    關于芯片設計的<b class='flag-5'>一些</b>基本<b class='flag-5'>知識</b>

    Debian和Ubuntu哪個好一些

    兼容性對比Debian和Ubuntu哪個好一些,并為您揭示如何通過RAKsmart服務器釋放Linux系統的最大潛能。
    的頭像 發表于 05-07 10:58 ?347次閱讀

    如何添加一些網絡上的庫到mpy固件的說明或手冊教程?

    下有沒有關于如何添加一些網絡上的庫到mpy固件的說明或手冊教程? 問題2: 關于mpy的image庫在哪里能了解學習內部代碼,只了解一些python,想知道怎么從c轉換成mpy能調用的
    發表于 04-29 08:16

    硬件系統工程寶典—完整版

    資料介紹: 這是本硬件工程的必備書,介紹了硬件工程所必須的一些知識,例如EMC、SI、PI等知識
    發表于 03-22 15:47

    個優秀的嵌入式軟件“架構師” — AWFlow

    在大型項目的軟件開發過程中,模塊化開發面臨著接口設計不合理、代碼沖突以及模塊間不兼容等問題,導致團隊協作效率低下。為了解決這些問題,嵌入式軟件“架構師”—AWFlow,應運而生!在大型項目
    的頭像 發表于 02-10 16:44 ?540次閱讀
    <b class='flag-5'>一</b>個優秀的嵌入式軟件“<b class='flag-5'>架構師</b>” — AWFlow

    獨立服務器和云服務器哪個快一些

    獨立服務器和云服務器哪個快一些?在數字服務部署中,獨立服務器與云服務器的速度差異并非絕對,結合資源配置與應用場景綜合判斷。以下是UU云對獨立服務器和云服務器的核心維度對比分析:
    的頭像 發表于 02-05 10:08 ?418次閱讀

    英特爾前Xeon首席架構師加盟高通

    步。 Kottapalli在英特爾度過了長達28年的職業生涯,期間他擔任了Xeon處理器首席架構師及高級研究員等關鍵職務。在英特爾,他以其深厚的專業知識和卓越的領導能力,成為該公司服務器芯片設計的核心人物之。 對于此次加盟高通
    的頭像 發表于 01-15 15:30 ?507次閱讀

    云服務器還是服務器好用一些

    云服務器還是服務器好用一些?云服務器與服務器各有優勢。服務器作為獨立物理設備,適合高性能、物理控制和安全性高的場景;而云服務器基于云計算技術,提供靈活資源分配、按需付費、便捷管理和豐富服務,更適合快速響應、大規模數據處理和低
    的頭像 發表于 12-26 10:08 ?509次閱讀

    硬件工程需要掌握的硬件基礎知識

    示波器 方法/步驟 電路知識,模擬電子線路知識:作為個合格的硬件工程,模擬電路知識是基礎,從了解
    的頭像 發表于 12-02 09:22 ?1796次閱讀
    硬件工程<b class='flag-5'>師</b>需要掌握的硬件基礎<b class='flag-5'>知識</b>

    一些常見的動態電路

    無論是模電還是數電,理論知識相對來說還是比較枯燥,各種電路原理理解清楚不算容易,換種生動形象的方式或許會增加一些趣味性,也更容易理解這些知識。下面整理了
    的頭像 發表于 11-16 09:26 ?1149次閱讀
    <b class='flag-5'>一些</b>常見的動態電路

    分享一些常見的電路

    理解模電和數電的電路原理對于初學者來說可能比較困難,但通過一些生動的教學方法和資源,可以有效地提高學習興趣和理解能力。 下面整理了一些常見的電路,以動態圖形的方式展示。 整流電路 單相橋式整流
    的頭像 發表于 11-13 09:28 ?840次閱讀
    分享<b class='flag-5'>一些</b>常見的電路

    LED驅動器應用的一些指南和技巧

    電子發燒友網站提供《LED驅動器應用的一些指南和技巧.pdf》資料免費下載
    發表于 09-25 11:35 ?0次下載
    LED驅動器應用的<b class='flag-5'>一些</b>指南和技巧

    架構師的自述:在尚未踏入的世界成為你自己

    計算、流式計算、交互式計算的通用化數據應用構建,降低大數據計算的使用門檻。 在此,我跟大家分享下我的個人經歷和一些思考。 ? ? 好玩兒 成長經歷,說來話長,有多長呢? 上世紀80年代末,我參與了計算機輸入指令的歸化:把穿孔
    的頭像 發表于 09-23 15:25 ?582次閱讀
    <b class='flag-5'>一</b>位<b class='flag-5'>架構師</b>的自述:在尚未踏入的世界成為你自己

    想要了解下大模型知識

    工作需要,想要了解下大模型算力建設知識
    發表于 08-20 15:31
    主站蜘蛛池模板: 亚洲视频在线观看不卡 | 亚洲一二三产品区别在哪里 | 欧美整片华人play | 嘟嘟嘟在线视频免费观看高清中文 | 99精品视频一区在线视频免费观看 | 毛片免费观看的视频在线 | 蜜柚视频网在线观看免费 | 中国女人内谢69xxxxxx直播 | 打卡中国各地奋斗第一线 | 午夜DV内射一区二区 | 中国xxxxxx片免费播放 | 国产欧美国产综合第一区 | 国产不卡视频在线观看 | 丰满五十六十老熟女HD60 | 亚洲精品高清AV在线播放 | 亚洲精品成人无码A片在线 亚洲精品成人久久久影院 亚洲精品成人a在线观看 | 刘梓晨啪啪啪 | 成人无码精品1区2区3区免费看 | 高清国产在线播放成人 | 久久综合色一综合色88 | 国产日韩成人内射视频 | 99久久国产露脸精品国产麻豆 | 十分钟免费视频大全在线 | 先锋影音 av | 久久 这里只精品 免费 | 久久91精品国产91久久户 | 亚洲色欲H网在线观看 | 俄罗斯女人Z0Z0极品 | TUBE69CHINESE学生 TUBE19UP老师学生 | 799是什么意思网络用语 | 亚洲免费无码av线观看 | 花蝴蝶在线观看免费8 | 亚洲人成网77777色在线播放 | 日本后进式猛烈xx00动态图 | 亚洲国产中文在线视频 | 欧美乱妇日本无乱码特黄大片 | 久久综合丁香激情久久 | 国产中文字幕乱码免费 | 国产精品第十页 | 黄色三级三级免费看 | 在线免费观看国产精品 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品