国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

一個程序員對架構的認識

darcrand / 1759人閱讀

摘要:架構的含義小石最近加入了一家生鮮電商公司。所以可以認為所謂的框架就是確定了一些業內規范,從某種程度上對大家形成約束或者形成都能理解的規定。沒有完美的架構只有合適的架構。

最近訂閱了一些架構方面的資料,閱讀后獲益匪淺,想著整理一些自己的體會與思考,形成架構方面的讀書筆記,一來與大家交流,二來通過文字的形式檢查自己到底收獲多少!

“我們系統是MVC架構的”

“淘寶的架構好屌”

“最近在學習MySQL的架構”

“這個系統開發我們要用MVC框架來進行開發”

-

我們常常聽到上面關于架構的各種描述,那么架構到底是指什么?系統、框架、架構三者之間是一個什么樣的關系?下面讓我們結合實際的例子一起來探究下。

架構的含義

小石最近加入了一家生鮮電商公司。公司現在的首要任務是把電商系統給做出來,讓用戶能夠通過PC、App購買公司的生鮮產品。

關鍵詞:系統,所謂系統可以簡單理解為我們平時所說的應用,當然系統可以包含多個小系統,這里為了簡單起見,我們就先假設只開發這樣一個單體應用,包含了用戶下單購買的基本功能。

小石通過分析其他電商系統,知道至少需要 用戶注冊登錄模塊用戶信息模塊商品模塊訂單模塊 系統才能夠進行運轉。

系統的功能確定了,該選擇用什么樣的語言進行開發呢?選擇什么樣的方式進行開發呢?與大家一起討論后,大家認為現在階段的首要目標是快速做出系統來,因此大家決定采用PHP來開發,并決定使用 Yii2 框架,數據庫方面使用 MySQL,WebService使用Nginx。

關鍵詞:框架,為了快速完成系統的開發,我們會采用一些已被業內實踐確認的規范來進行,比如這里采用 YII2 框架,也就是采用了業內的 MVC 規范。所以可以認為所謂的框架就是確定了一些業內規范,從某種程度上對大家形成約束或者形成都能理解的規定。

從開始到現在,還沒有寫一行代碼,一直在進行設計與討論,討論需要哪些功能,設計采用什么 結構,而這里的結構主要包括了兩方面:邏輯的結構與物理的結構。所謂邏輯結構就是指系統是按照什么樣的流程來運轉,需要哪些功能來支持。所謂物理,就是當編碼完成所有的邏輯后,系統采用什么形式來部署運行。

那么到底什么是架構呢?我理解的架構:在系統誕生之初,對系統進行的邏輯設計與物理設計。他是系統的草圖,可以類比為建筑領域的設計圖。這張圖需要確定:

業務需要的功能模塊劃分(建筑設計需要劃分區域功能)

技術選型,用什么框架、什么存儲、什么緩存(建筑領域也要確認框架結構還是框剪結構)

架構是進化的

一個架構的0.1版本絕對不會是完美的,世界上也不存在完美的架構。像上面的小故事,我們采用最簡單的架構,如下圖(物理角度):

我們把所有的功能寫在一份代碼里,所有的數據存在一個庫里,所有的代碼部署在同一個Nginx上,甚至還可能我們的Nginx、MySQL都部署在同一臺機器上。

公司業務得以發展,人員得以增加,系統變得更加復雜。這個時候原來的架構,一無法滿足業務快速發展,二無法讓多人開發變得愉快。因為幾十個人在同一份代碼里進行編碼,想一下都是頭大。文件沖突、功能依賴、bug排查、測試功能,這些都無法愉快的解決。這時就得根據新的情況重新設計架構。

我們將代碼功能進行拆分,將以前的模塊拆分成獨立的系統,將MySQL進行主從設計,利用Nginx做負載等等。

那么為什么不一上來就進行拆分呢?因為一開始人手不足,拆分過細,開發周期慢,業務也不需要如此細致的劃分。

總結

架構是一個系統的草圖(邏輯+物理角度),它是有生命的,隨著業務的變化會不斷演進。沒有完美的架構只有合適的架構。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11886.html

相關文章

  • 一文帶你重新認識 Docker 與 Kubernetes

    摘要:公司始于名為的平臺即服務供應商。跨多個機器之間協調這些容器需要額外的工具,這稱之為容器編排。的核心優勢是為應用程序開發人員提供了用于編排無狀態容器的強大工具。有無數的文章都在討論和比較Docker、Kubernetes 以及Mesos。如果你是初學者,那么你可能會認為這三個開源項目正為了稱霸容器界而殊死搏斗。雖然這三種技術都使得使用容器部署、管理和伸縮應用成為可能,但實際上它們各自解決了不同...

    baishancloud 評論0 收藏0
  • #yyds干貨盤點#帶你統一認識一下系統架構及分析和總結

    摘要:缺點系統依賴復雜,給開發測試部署帶來不便,分布式數據一致性和分布式事務支持困難,一般通過最終一致性簡化解決。微服務架構分成三種實現模式。事件驅動架構事件是狀態發生變化時,軟件發出的通知。事件驅動架構的四個部分事件隊列接收事件的入口。 架構的規劃誰架構就是對系統中的實體以及實體之間的關系所進行的抽象描述,是決策。...

    warkiz 評論0 收藏0
  • ELSE 技術周刊(2017.10.16期)

    摘要:前端中的計算機領域的通常認為起源于。并對其主要內容作了自己的解讀。搬到另一個地區會導致名氣降低。年度報告,年最受歡迎的編程語言年上最流行的種編程語言及前十最火熱的項目排行榜,分別由及登頂。技術周刊由小組出品,匯聚一周好文章,周刊原文。 showImg(https://segmentfault.com/img/bVWHC4?w=1000&h=710); 本期推薦 反擊爬蟲,前端工程師的腦...

    0xE7A38A 評論0 收藏0
  • React 重要一次重構:認識異步渲染架構 Fiber

    摘要:在之前的叫,是新的,這次更新到架構是一次重量級的核心架構的替換,為了完成這次替換已經準備了兩三年的時間了。因此團隊引入了異步渲染這個概念,而采用架構可以實現這種異步渲染的方式。官方目前已經把和標記為,并使用新的生命周期函數和進行替換。 Diff 算法 熟悉 react 的朋友都知道,在 react 中有個核心的算法,叫 diff 算法。web 界面由 dom 樹組成,不同的 dom 樹...

    cppowboy 評論0 收藏0
  • Simon Brown:架構師與序員區別

    摘要:從根本上講,架構師是一個技術領導者的角色,這就是最大的區別。對于這個問題來說,沒錯,有一些相關主題沒有出現在這本書中,這些主題可以構成一本與程序員必讀之軟件架構相互補的書。我從軟件架構的視角特別能注意到這件事。 非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/178034 Simon Brown 是全球知...

    Turbo 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<