《架構漫談》系列讀後感前端
這幾天,讀了老師推薦有關架構的一篇系列文章《架構漫談》,其中通俗易懂的語言,風趣幽默的風格,形象明瞭的對比形式讓我對架構有了更進一步的瞭解。架構
何爲架構?最先期社會咱們一我的就能夠徹底獨立生活完成衣食住行全部事情,隨着需求的增長,好比說人類延續,人們開始羣居。接下來人們發現各自有各自的長處,有的人種田厲害,有的人制做工具厲害,有些地方適合產出糧食,這就致使分工,各自作擅長的事情。因爲每一個人的精力,時間,能力皆有限,當須要完成一個大的工程的時候,人們必須各取所長合做完成,人們如何組織這項工程,如何安排合適的人作合適的事,在最高效最穩定的狀況下交付既定任務,這樣「架構」就應運而生了。總結而言,架構就是:1.根據要解決的問題,對系統的邊界進行界定。2.並對目標系統按某個原則進行劃分。劃分的原則,要便於不一樣的角色,對切分出來的部分,並行或串行開展工做,通常並行才能減小時間。3.並對這些切分出來的部分,設立李溝通機制。4.根據3,使得這些部分之間可以進行有機的聯繫,合併組裝成爲一個總體,完成目標系統的全部工做。工具
怎麼初識架構?認識概念,咱們從前面知道,架構是爲了解決人的問題,那麼溝通便顯得尤其重要,中華文化博大精深,每一句話可能有多重理解,因此咱們要對概念有一個初步的把控,最主要的固然就是識別概念,識別別人提出的問題。好比有人提出要求「我須要一個錘子」,在不清楚具體問題的狀況下,咱們是沒法定奪怎麼恰到其份地解決問題,若是他是釘釘子能夠只提供一個小錘子,若是他是裝修砸牆那麼須要提供專用大錘。架構師初步要解決的是識別問題並提供解決方案。性能
如何作好架構呢?切分,咱們要對整個項目需求進行切分,還要把控對於利益的調整。一旦確認問題的主體,咱們接下來會發現以下問題,某個或者某些利益相關人負載過重,或者時間上空間上負載過重,或者某個,某些利益相關人的權利和義務不對等。因此咱們須要在必定原則上進行切分,第一是天然就沒法切分的部分,第二是不違反人性。隨後就是一系列建模和組織架構了。spa
初識軟件,軟件的歷史,實際上能夠說是用機器模擬人的歷史。簡而言之,能夠說是在成本保證的狀況下,爲了簡化某些工做而讓計算機代替人執行一些特定任務,提升生產力的產品。也正是因爲源源不斷的需求,使得軟件規模不斷擴大,給軟件的使用性能形成影響,因此軟件架構也隨勢而生,其根本目的也是一樣,提高參與人的利益,減低成本。部署
那軟件架構要解決的「性能問題」是什麼問題?業務?計算機自己?爲了進行分辨,咱們必須瞭解虛擬化業務必須完成的事情是什麼,代碼是如何運營的,以後就是針對問題提出並實施解決方案,在這些的前提之下,咱們必須有一個根深蒂固的概念,那就是架構老是爲了簡化問題的,而不是使得問題複雜化,因此軟件架構又被定義爲軟件由於流量增大而分拆成不一樣的運行單元,在不一樣的機器上部署所造成的架構,屬於軟件架構。每一個運行單元爲了讓不一樣角色的人,好比前端,業務,數據存儲等可以並行工做,所分紅的代碼架構,也屬於軟件架構。產品
架構師,首先,架構師的前提條件,那就是發現問題並提出有效解決方案處理問題的人,架構師必定擁有豐富的經驗和技術,並且他是調整利益平衡利益的人。以後,從架構的角度寫代碼,核心是分層,將業務,技術,邏輯處理分紅各自耦合度相對下降的層次,讓軟件的運營成本降至最低,並且利於維護。最後就是理清技術、業務和架構的關係了。技術是爲了解決業務的問題而產生的,沒有了業務,技術就沒有了存在的前提。有了更好的技術,效率更差的技術就會被淘汰,一切都聽從人類的利益訴求—也就是業務。再者,在解決同一個業務的問題的前提下,更高效,更低成本的技術將代替其餘技術。因此架構師應該承擔起解決業務問題的角色,也須要具有識別技術採起技術相應的能力。效率