自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我所理解的架構(gòu),看這篇就對了

開發(fā) 架構(gòu)
  個人所理解的架構(gòu)的含義應(yīng)該是:定義一個完整系統(tǒng)中所需的組件以及實(shí)現(xiàn)組件間的交互策略。那么很明顯,架構(gòu)設(shè)計(jì)應(yīng)該是考慮如何定義和劃分好每個組件,然后考慮它們是如何基于不同的交互策略來實(shí)現(xiàn)我們業(yè)務(wù)需要的場景?!?

 什么是架構(gòu)?

個人所理解的架構(gòu)的含義應(yīng)該是:定義一個完整系統(tǒng)中所需的組件以及實(shí)現(xiàn)組件間的交互策略。那么很明顯,架構(gòu)設(shè)計(jì)應(yīng)該是考慮如何定義和劃分好每個組件,然后考慮它們是如何基于不同的交互策略來實(shí)現(xiàn)我們業(yè)務(wù)需要的場景。

[[278349]]

什么是組件?

個人認(rèn)為,只要是隸屬于完整系統(tǒng)中的組成部分,都可以看成是組件。這就意味著,架構(gòu)中不僅要考慮的是我們常見的基礎(chǔ)組件,包括應(yīng)用服務(wù),數(shù)據(jù)庫,網(wǎng)絡(luò),物理機(jī)等,還有很大的可能需要引入包括緩存,MQ,容器,Nginx等技術(shù)組件來支撐業(yè)務(wù)的完整描述。

什么是框架?

框架可以理解為組件實(shí)現(xiàn)的一種規(guī)范,比如我們經(jīng)常說的開源框架,這是可以拿來直接使用的或者在此基礎(chǔ)上進(jìn)行二次開發(fā)的,這些應(yīng)該是關(guān)乎代碼層面的,規(guī)范著組件的具體實(shí)現(xiàn)方式。

設(shè)計(jì)架構(gòu)的出發(fā)點(diǎn)?

對于設(shè)計(jì)而言,我們首先需要知道,設(shè)計(jì)的這個架構(gòu)是做什么的?所以對于我們而言,首先要明確架構(gòu)的作用是什么?

架構(gòu)是系統(tǒng)的骨架,通過各個組件的交互鏈接,支撐起對所有業(yè)務(wù)的整體抽象描述。所以在個人的理解中,所有架構(gòu)的出發(fā)點(diǎn)都是為業(yè)務(wù)服務(wù),所以我們的架構(gòu)設(shè)計(jì)的一個出發(fā)點(diǎn)是 - 業(yè)務(wù)!

從日PV上千到日PV上億的業(yè)務(wù)數(shù)量級演變,驅(qū)動著單體式系統(tǒng)到分布式系統(tǒng)的架構(gòu)技術(shù)演變,技術(shù)不會平白無故的出現(xiàn)和自驅(qū)動發(fā)展的,都是受到不同的刺激因素的影響進(jìn)行發(fā)展,就好比如果不是人類看到了火,才知道可以取火,那么人類是永遠(yuǎn)不會平白無故發(fā)明火。而我們架構(gòu)的發(fā)展恰好是基于業(yè)務(wù)的驅(qū)動。

什么才是好的架構(gòu)設(shè)計(jì)?

上面已經(jīng)說了,在架構(gòu)設(shè)計(jì)過程中當(dāng)我們系統(tǒng)已經(jīng)明確了所有的組件,那么剩下的就是考慮的是組件和組件間的交互。

這里的交互不僅僅是理解為基于不同的網(wǎng)絡(luò)協(xié)議通訊,還有比如組件間的緩存如何交互(分布式緩存),消息隊(duì)列進(jìn)行數(shù)據(jù)交互,是分布式調(diào)用還是進(jìn)程間調(diào)用。組件如何能進(jìn)行良好的交互呢?這就是好的架構(gòu)設(shè)計(jì)體現(xiàn)了。

那么好的架構(gòu)設(shè)計(jì)是什么呢?

1、能解決當(dāng)下業(yè)務(wù)問題

2、能以優(yōu)雅且可復(fù)用的方式解決當(dāng)下所有業(yè)務(wù)問題

3、能在未來一段時間都能以第2種方式滿足業(yè)務(wù)

這其實(shí)就是健壯的系統(tǒng)體現(xiàn)的特性了,高可用、高性能,安全性、可擴(kuò)展性、可維護(hù)性、可伸縮性,而這恰好是一個架構(gòu)設(shè)計(jì)需要考慮的東西。

  • 高性能:用戶量的保證前提
  • 前端優(yōu)化
  • 應(yīng)用優(yōu)化
  • 數(shù)據(jù)庫優(yōu)化
  • 高可用:保證服務(wù)器不宕機(jī)
  • 數(shù)據(jù)備份
  • 自動發(fā)布
  • 灰度發(fā)布
  • 監(jiān)控報(bào)警
  • 可擴(kuò)展:分布式系統(tǒng),集群
  • 負(fù)載均衡
  • 緩存負(fù)載均衡
  • 分布式消息
  • 服務(wù)化
  • 安全性:預(yù)防網(wǎng)站的各種攻擊
  • XSS攻擊
  • SQL注入緩存負(fù)載均衡
  • CSRF攻擊
  • 防火墻漏洞

什么是差的架構(gòu)?

差的架構(gòu)其實(shí)大家都可以顯而易見,就是如果大家都抱怨很多地方有牽一發(fā)而動全身,那這里的設(shè)計(jì)肯定有問題,耦合性這些是可以通過很多設(shè)計(jì)思想和原則來避免的。

我最想提到的是風(fēng)險這點(diǎn),是很重要也是很容易被大家忽略的一點(diǎn),而且是起到指數(shù)級作用的。選擇的方案再好,如果都是一些掌控不住的技術(shù),那么風(fēng)險就是無窮大,導(dǎo)致減號右側(cè)無限趨近于0,最終的結(jié)果就是收益是負(fù)數(shù),投入的成本打水漂,甚至還要加上其它額外的付出。

我所理解的架構(gòu),看這篇就對了

架構(gòu)師是做什么的?

架構(gòu)師應(yīng)該是基于自己對該行業(yè)的理解,對所要設(shè)計(jì)的系統(tǒng)能夠給出總體設(shè)計(jì)進(jìn)而進(jìn)行全局把控的人,并能解決關(guān)鍵問題、指導(dǎo)其他人員落實(shí)設(shè)計(jì)。

好的架構(gòu)師最重要的并不僅僅是在技術(shù)方面的深厚積累,更多的是需要懂得在各種情況權(quán)衡各種影響因素之后選擇合適的技術(shù)實(shí)現(xiàn)業(yè)務(wù)。架構(gòu)師不會在確定了架構(gòu)藍(lán)圖之后任務(wù)就結(jié)束了,因?yàn)榧軜?gòu)不是空中樓閣和水中鏡月,架構(gòu)是要落地的,如果架構(gòu)師不著手去主導(dǎo)實(shí)現(xiàn)自己提出的恢宏藍(lán)圖,那這些好看的藍(lán)圖能否能穩(wěn)當(dāng)落地呢?

在我的個人觀察下,市面上比較多公司的架構(gòu)師可能都比較局限于某些開源框架的應(yīng)用以及個人的一個技術(shù)棧影響而對架構(gòu)定了型,我碰到過這樣的架構(gòu)師,憑著對技術(shù)的狂熱,把市面上流行的技術(shù)輕易引入項(xiàng)目中,這就會容易引入風(fēng)險,這是我們所有后續(xù)要往技術(shù)方面進(jìn)階的同學(xué)都要注意的地方。

總結(jié)

我們需要知道,沒有完美的架構(gòu),只有合適的架構(gòu),架構(gòu)是需要演變的。在當(dāng)前的業(yè)務(wù)驅(qū)動下,架構(gòu)的設(shè)計(jì)出發(fā)點(diǎn)是解決現(xiàn)有需求和問題,那么我們的架構(gòu)設(shè)計(jì)就止于此了嗎?不是的,雖然我們不提倡過度設(shè)計(jì),但是如果作為架構(gòu)師在這個業(yè)務(wù)所屬的行業(yè)中沒一點(diǎn)前瞻性的話,其實(shí)是不合格的,公司需要的是架構(gòu)師的技術(shù)能力以及經(jīng)驗(yàn),從而不會每次當(dāng)業(yè)務(wù)進(jìn)行演變時,導(dǎo)致架構(gòu)翻天覆地的變化。

責(zé)任編輯:華軒 來源: 博客園
相關(guān)推薦

2024-04-22 00:00:00

配置鏈接穩(wěn)定性

2018-10-12 09:42:00

分布式鎖 Java多線

2020-10-19 10:35:18

數(shù)據(jù)庫監(jiān)控 系統(tǒng)

2018-09-26 11:02:46

微服務(wù)架構(gòu)組件

2021-09-30 07:59:06

zookeeper一致性算法CAP

2019-08-16 09:41:56

UDP協(xié)議TCP

2022-03-29 08:23:56

項(xiàng)目數(shù)據(jù)SIEM

2021-05-07 07:52:51

Java并發(fā)編程

2022-08-18 20:45:30

HTTP協(xié)議數(shù)據(jù)

2023-12-07 09:07:58

2021-12-13 10:43:45

HashMapJava集合容器

2021-04-21 07:53:12

Java限流器管理

2024-08-27 11:00:56

單例池緩存bean

2017-03-30 22:41:55

虛擬化操作系統(tǒng)軟件

2021-09-10 13:06:45

HDFS底層Hadoop

2023-09-25 08:32:03

Redis數(shù)據(jù)結(jié)構(gòu)

2023-10-04 00:32:01

數(shù)據(jù)結(jié)構(gòu)Redis

2023-11-07 07:46:02

GatewayKubernetes

2021-07-28 13:29:57

大數(shù)據(jù)PandasCSV

2023-11-03 08:53:15

StrconvGolang
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號