導航:首頁 > 軟體問題 > 如何做軟體架構

如何做軟體架構

發布時間:2022-11-28 06:20:32

❶ 如何成為軟體架構師

架構師首先必須具有豐富的開發經驗,是個技術主管。因為他必須清楚什麼是可以實現的,實現的方式有哪些,相應的難度怎麼樣,實現出來的系統面對需求變化的適應性等一系列指標。另外,需要對面向過程、面向對象、面向服務等設計理念有深刻的理解,可以快速的察覺出實現中的問題並提出相應的改進(重構)方案(也就是通常說的反模式)。這些都需要長期的開發實踐才能真正的體會到,單從書本上很難領會到,就算當時理解了也不一定能融會到實踐中去。在技術能力上,軟體架構師最重要也是最需要掌握的知識是構件通信機制方面的知識,包括進程內通信(對象訪問、函數調用、數據交換、線程同步等)以及進程外(包括跨計算機)的通信(如RMI、DCOM、Web Service)。在WEB應用大行其道的今天,開發者往往對伺服器間的通信關注的比較多,而對進程內的通信較少關注。進程外跨機器通信是構建分布式應用的基石,它是架構設計中的鳥瞰視圖;而進程內的通信是模塊實現的骨架,它是基石的基石。如果具體到一個基於.Net企業級架構設計,首先需要的是語言級別的認識,包括.NET的CLR、繼承特性、委託和事件處理等。然後是常用解決方案的認識,包括ASP.NET Web Service、.NET Remoting、企業服務組件等。總之,豐富的開發實踐經驗有助於避免架構師紙上談兵式的高來高去,給代碼編寫人員帶來實實在在的可行性。其次,具有足夠的行業業務知識和商業頭腦也是很重要的。行業業務知識的足夠把握可以給架構師更多的擁抱變化的能力,可以在系統設計的時候留出一些擴展的餘地來適應可能來臨的需求變化。有經驗的設計人員可能都碰到過這樣的事,一廂情願的保留介面在需求變化中的命中率非常低。也就是說,在系統設計之初為擴展性留下來的系統介面沒能在需求變化的洪流中發揮真正的作用,因為需求的變化並沒有按照預想的方向進行,到最後還是不得不為變化的業務重新設計系統。這就是因為對業務知識的理解和對市場或者商業的判斷沒有達到一個實用的、可以為架構擴展性服務的水平。再次,架構設計師對人的關注必須提升到架構設計之初來納入考慮的范圍,包括溝通以及對人員素質的判斷。軟體過程是團隊協作共同構建系統的過程,溝通能力是將整個過程中多條開發線粘合在一起的膠水。大家都應該碰到過事後說「原來是這樣啊,我不知道啊」或者某個開發人員突然高聲呼喊「為什麼這里的數據沒有了」之類的。溝通的目的就是盡量避免多條開發線的混亂,讓系統構建過程可以有條理的高效進行。另外,對人的關注還表現在對團隊成員的素質判斷上,比如哪些開發人員對哪些技術更熟悉,或者哪些開發人員容易拖進度等。只有合理的使用人力資源,讓合適的人做合適的事情才能讓整個軟體過程更加高效。架構師應時刻注意新軟體設計和開發方面的發展情況,並不斷探索更有效的新方法、開發語言、設計模式和開發平台不斷很快地升級,軟體架構師需要吸收這些新技術新知識,並將它們用於軟體系統開發工作中。但對新技術的探索應該在一個理性的范圍內進行,不能盲目的跟風。解決方案提供商永遠都希望你能使用它提供的最新技術,而且它們在推廣自己的解決方案的時候往往是以自己的產品為中心,容易給人錯覺。比如資料庫,往往讓人覺得它什麼都能做,只要有了它其它什麼都不重要了。但事實上並不是如此,對於小型應用可以將許多業務邏輯用script的方式放入資料庫中,但很少看到大型應用採用這樣的做法。對於新東西需要以一種比較的觀點來判斷,包括橫向的比較和縱向的比較,最後得出一些性能、可移植性以及可升級等指標。另外,新入行的開發人員往往關心新技術動向而忽略了技術的歷史,而從DOS時代一路殺過來的開發者就對現在的技術體系有較全面的把握。

❷ 架構師成長之路:到底什麼是架構設計該如何理解架構設計

架構設計是一個大家耳熟能詳的詞,基本都爛大街了。

可是,到底什麼是架構設計呢?估計很多人就回答不上來了。

下面就來詳細聊聊什麼是架構設計,以及對架構設計的一些基本認識。

軟體架構設計指的是:對一個軟體系統進行的架構定義、文檔編寫、維護和改進、並驗證實現的一系列活動,架構設計的產物就是一個系統的架構。

架構設計實際上是一個過程,圍繞著軟體系統,對它的架構,進行定義、文檔編寫、維護和改進、並驗證實現等,把這一系列活動組合起來,就是我們所說的架構設計。

架構設計的產物,也就是結果,就是架構,這也是架構和架構設計的關系。

架構設計是一門科學,這個已經是業界共識。但是作為一門科學來講,它一定要有它自己的基礎理論,基礎方法,也會有一些實現的方法論。

架構設計作為一門科學來說,還很不成熟。目前架構設計的基礎理論還不是很完善,方法論上,更是百花齊放,大家都還處於一個探索的階段。

從科學上來講,架構設計主要關注架構設計過程當中的:技術、流程、資源、方法;以及如何去完善並改進架構。

剛講到架構設計這門科學還很不成熟,再加上技術領域更新很快,新技術、新思想、新方法 層出不窮。

我們總會面對很多新興的、沒有先例的系統,可能會應用新的框架、新的技術、新的解決方案來實現系統。

因此,做架構設計的時候,是需要一定的創造力的。當然,藝術細胞缺乏的人員也不用太擔心,架構設計上還是有很多是有章可循的,多半是在已有的架構體繫上去做一些微調,微創新,並不是完全從零開始。

架構設計不是一蹴而就的,通常也是由粗到精,剛開始,可能只有一個粗略的架構設計,然後不斷迭代和演化,逐步推進,去完善和細化,這樣的過程。

這個可能有些人不太理解,認為說,軟功過程裡面,不是有專門的概要設計、詳細設計的時間嗎?架構設計不就是在這些設計階段去完成的嗎?做完設計了,把文檔發下去,不就沒事了嗎?

有些公司也是這么乾的,實際上這是有問題的。

架構設計會跨越軟工的完整流程,對於一些大型的或者是重要的項目,可能立項期間,架構師就要參與,做一些粗略的架構規劃,有兩個基本的原因:

1:能不能做得了這件事
2:按照粗略的架構規劃做下去,大致的成本會有多大

立項的時候,就要去考慮你的成本,風險和投資收益。

也就是說,立項的時候,架構師可能就需要參與,那就更不用說需求階段、設計階段了,架構師是肯定要參與的,前面講需求分析的時候已經講過了,這里就不多啰嗦。

到了編碼階段,有些人可能認為架構師是不參與的,這是不對的。架構師需要參與,只是參與的少一些,主要是一些重點、難點的地方,或者是公共基礎功能,由架構師來實現。

另外在編碼階段,架構師還有一個重要的任務,就是確保開發人員按照架構設計去實現,不要亂做。這就需要兩個基本的方式,一個是架構師要把架構設計的成果,跟開發人員講解清楚,並不斷溝通;另外一個就是要不斷檢查,Review,以確保架構設計的落地實現不出大的偏差。

後面的測試、部署、運維等階段,架構師要做一些技術咨詢,或者是技術指導的工作。架構設計裡面,本來就包含部署架構的設計,因此,架構師也會參與這些階段,只是參與的少一些。

總之,架構設計需要關注所有利益相關者的要求,參與系統設計實現的所有人員,也都是系統的利益相關者,自然而然的,架構設計就需要貫穿軟工的整個流程了。

一個系統,要關注的方方面面是很多的,利益相關者也很多,大家關注點各有不同。

這就意味著,在做架構設計的時候,需要不斷去做決策,在眾多關注點中去尋求平衡,所以有人說,做架構設計,就是一種玩平衡的藝術。

比如:從技術上講,A+B的方式是性能最高的;但是從成本上來看,A+C是最合適的。可能最後綜合權衡後,B+C是各方都能接受的方案。

這種需要考慮的平衡很多,比如:技術和成本的平衡;方案適用性年限的平衡,是滿足1-3年就夠了,還是要考慮8-10年;技術方案和當前開發人員技能的平衡;性能和成本的平衡等等,非常多。

架構設計是一個過程,需要在這個過程中,不斷去考慮各利益相關者的要求,並不斷折中平衡,因此架構設計的產物,也就是架構,自然就是各方利益相關者的共識了。

要做出好的架構設計,經驗是不可或缺的,不會每次都是從零開始。

比如以前做過類似的系統;或者是學習到的一些好的架構模式,設計模式,一些現成的組件;或者是一些開源的框架等等的,這些我們都可以看成是可重用的資源。

我們做架構設計的時候,需要不斷去積累這樣子的可重用資源,形成自己的工具箱。這樣當我們在做一個系統的架構設計的時候,就有了很多備用的工具或手段。

有了這些經驗和資源的積累,會使得新系統的架構設計變得更容易。

❸ 如何成為軟體架構師

【原創回答】我本人是一名軟體架構師,這個問題非常大,不太好回答。我總結一下,軟體架構師的能力大概分為三個方面:1.技術,這個應該沒懸念,如果沒有過硬的開發技術,就不要期望做架構師了;設計模式,系統模式,架構模型,系統理論,甚至編程語言,演算法,操作系統,網路,資料庫,都需要有扎實的掌握。 2.是業務知識,也即領域知識。軟體架構師實際上是把業務需求落實成開發藍圖的總設計師,如果你對業務一竅不通,空有一身技術也只能望業務興嘆。3.就是溝通表達的能力,架構師需要推進自己的架構設計理念給開發團隊,所以也需要這方面的能力,當然最重要的還是前兩部分的能力。

❹ 如何學好軟體系統架構

學好軟體架構,主要在於多做大型復雜需求,在做需求中體會別人設計的架構的優缺點,最後嘗試優化這個架構,這是學好架構的不二法門。

架構不是看書聽課學得會的。面對同一行字同一句話,有實踐和沒實踐的人,完全是不同的理解,沒實踐的人甚至連問題都問不出來。

軟體架構為軟體系統提供了一個結構、行為和屬性的高級抽象,由構件的描述、構件的相互作用、指導構件集成的模式以及這些模式的約束組成。軟體架構不僅顯示了軟體需求和軟體結構之間的對應關系,而且指定了整個軟體系統的組織和拓撲結構,提供了一些設計決策的基本原理。

❺ 軟體架構的設計

為了討論和分析軟體構架,必須首先定義構架表示方式,即描述構架重要方面的方式。在 Rational Unified Process 中,軟體構架文檔記錄有這種描述。
架構描述語言(ADL)用於描述軟體的體系架構。已有多種架構描述語言,如Wright (由卡內基梅隆大學開發),Acme (由卡內基梅隆大學開發),C2 (由UCI開發), Darwin (由倫敦帝國學院開發)。ADL的基本構成包括組件、連接器和配置。 構架
構架視圖的圖形描述稱為構架設計圖。對於以上描述的各種視圖,設計圖由以下統一建模語言圖組成 [UML99]:
邏輯視圖:類圖、狀態圖和對象圖。
進程視圖:類圖與對象圖(包括任務 - 進程與線程)。
實施視圖:構件圖。
部署視圖:配置圖。
用例視圖:用例圖描述用例、主角和普通設計類;順序圖描述設計對象及其協作關系。 軟體設計師中有一些技術水平較高、經驗較為豐富的人,他們需要承擔軟體系統的架構設計,也就是需要設計系統的元件如何劃分、元件之間如何發生相互作用,以及系統中邏輯的、物理的、系統的重要決定的作出。
這樣的人就是所謂的架構師(Architect)。在很多公司中,架構師不是一個專門的和正式的職務。通常在一個開發小組中,最有經驗的程序員會負責一些架構方面的工作。在一個部門中,最有經驗的項目經理會負責一些架構方面的工作。
但是,越來越多的公司體會到架構工作的重要性,並且在不同的組織層次上設置專門的架構師位置,由他們負責不同層次上的邏輯架構、物理架構、系統架構的設計、配置、維護等工作。

❻ 軟體架構的設計方法

在軟體中架構模式主要有兩種,一種是c/s模式,一種是b/s模式,這里一起探討下b/s架構怎麼設計,希望對大家有幫助,請幫忙點贊
第一步
b/s模式是瀏覽器--伺服器的模式,這中模式比c/s 客戶端-服務端的模式好,有點較多:
b/s模式可以隨時更新,用戶不用頻繁的升級客戶端
第二步
架構b/s模式,主要是服務端的架設,一般情況瀏覽量比較小的時候只需要一台伺服器
第三步
如果網頁需要與記錄客戶的一些信息,比如資料、訂單之類,需要涉及到資料庫,需要在伺服器端增減資料庫
第四步
當客戶較多時,需要做負載均衡,需要F5、或者ngxin:
第五步
當資料庫壓力比較大的時候,需要建立資料庫的集群:

❼ 架構類型以及軟體架構邏輯詳解

架構類型:分布式、SOA架構、單體式。

分布式架構

分布式應用架構中,相互獨立,代碼獨立開發,獨立部署,通過API介面互相通信。通訊協議一般使用HTTP,數據格式是JSON(是一種輕量級的數據交換格式),應用集成方式比較簡化。

優點: 應用內部高內聚,獨立開發、測試和部署,應用之間松耦合,業務邊界清晰,業務依賴明確,支持大項目並行開發。

缺點: API介面需求變化,應用就需要重新部署,通信可靠性和數據的封裝性相對於進程內調用比較差。

SOA架構[現在也流程SAAS服務模式架構也稱雲架構]

SOA也是分布式應用架構一種。

SOA架構提供配套的服務治理,包括服務注冊、服務路由、服務授權、服務降級、服務監控等等。

SOA架構既體現業務的拆分,又體現業務的整合,更多地從業務整體上考慮系統拆分。

優點:以服務層為主,聚焦核心業務,同時以提供整個系統共享,服務作為獨立的應用,獨立部署,介面清晰,很容易做自動化測試和部署,服務是無狀態的,很容易做水平擴展;通過容器虛擬化技術,實現故障隔離和資源高效利用。

缺點:系統依賴復雜,給開發/測試/部署帶來不便,分布式數據一致性和分布式事務支持困難,一般通過最終一致性簡化解決。

單體式應用

系統只有一個應用、打包成一個應用;部署在一台機器;在一個DB里存儲數據.

單體式應用採用分層架構,一般為表示層、業務層、數據訪問層、DB層,表示層負責用戶體驗,業務層負責業務邏輯,數據訪問層負責DB層的數據存取

優點:開發、編譯、調試一站式、一個應用程序包含所有功能點,容易測試和部署

缺點:系統逐漸龐大時,代碼復雜度高,難以維護,應用擴展水平低,業務和模塊職責區分不清晰。

軟體架構

一、 微服務架構

微服務架構(microservices architecture)是服務導向架構(service-oriented architecture,縮寫 SOA)的升級。

每一個服務就是一個獨立的部署單元(separately deployed unit)。這些單元都是分布式的,互相解耦,通過遠程通信協議(比如REST、SOAP)聯系。

微服務架構分成三種實現模式。

RESTful API 模式 :服務通過 API 提供,雲服務就屬於這一類

RESTful 應用模式 :服務通過傳統的網路協議或者應用協議提供,背後通常是一個多功能的應用程序,常見於企業內部

集中消息模式 :採用消息代理(message broker),可以實現消息隊列、負載均衡、統一日誌和異常處理,缺點是會出現單點失敗,消息代理可能要做成集群

優點

擴展性好,各個服務之間低耦合

容易部署,軟體從單一可部署單元,被拆成了多個服務,每個服務都是可部署單元

容易開發,每個組件都可以進行持續集成式的開發,可以做到實時部署,不間斷地升級

易於測試,可以單獨測試每一個服務

缺點

由於強調互相獨立和低耦合,服務可能會拆分得很細。這導致系統依賴大量的微服務,變得很凌亂和笨重,性能也會不佳。

一旦服務之間需要通信(即一個服務要用到另一個服務),整個架構就會變得復雜。典型的例子就是一些通用的 Utility 類,一種解決方案是把它們拷貝到每一個服務中去,用冗餘換取架構的簡單性。

分布式的本質使得這種架構很難實現原子性操作,交易回滾會比較困難。

二、 事件驅動架構

事件(event)是狀態發生變化時,軟體發出的通知。

事件驅動架構(event-driven architecture)就是通過事件進行通信的軟體架構。它分成四個部分。

事件隊列(event queue):接收事件的入口。

分發器(event mediator):將不同的事件分發到不同的業務邏輯單元。

事件通道(event channel):分發器與處理器之間的聯系渠道。

事件處理器(event processor):實現業務邏輯,處理完成後會發出事件,觸發下一步操作

對於簡單的項目,事件隊列、分發器和事件通道,可以合為一體,整個軟體就分成事件代理和事件處理器兩部分。

優點

分布式的非同步架構,事件處理器之間高度解耦,軟體的擴展性好;適用性廣,各種類型的項目都可以用;性能較好,因為事件的非同步本質,軟體不易產生堵塞;事件處理器可以獨立地載入和卸載,容易部署

缺點

涉及非同步編程(要考慮遠程通信、失去響應等情況),開發相對復雜難以支持原子性操作,因為事件通過會涉及多個處理器,很難回滾分布式和非同步特性導致這個架構較難測試。

三、分層架構。

分層架構(layered architecture)是最常見的軟體架構,也是事實上的標准架構。如果你不知道要用什麼架構,那就用它。

這種架構將軟體分成若干個水平層,每一層都有清晰的角色和分工,不需要知道其他層的細節。層與層之間通過介面通信。

雖然沒有明確約定,軟體一定要分成多少層,但是四層的結構最常見。

表現層(presentation):用戶界面,負責視覺和用戶互動。

業務層(business):實現業務邏輯。

持久層(persistence):提供數據,SQL 語句就放在這一層。

資料庫(database) :保存數據。

有的軟體在邏輯層和持久層之間,加了一個服務層(service),提供不同業務邏輯需要的一些通用介面。

用戶的請求將依次通過這四層的處理,不能跳過其中任何一層。

優點

1、結構簡單,容易理解和開發。

2、不同技能的程序員可以分工,負責不同的層,天然適合大多數軟體公司的組織架構

3、每一層都可以獨立測試,其他層的介面通過模擬解決

缺點

1、一旦環境變化,需要代碼調整或增加功能時,通常比較麻煩和費時

2、部署比較麻煩,即使只修改一個小地方,往往需要整個軟體重新部署,不容易做持續發布

軟體升級時,可能需要整個服務暫停

3、擴展性差。用戶請求大量增加時,必須依次擴展每一層,由於每一層內部是耦合的,擴展會很困難。

五、 微核架構。

微核架構(microkernel architecture)又稱為"插件架構"(plug-in architecture),指的是軟體的內核相對較小,主要功能和業務邏輯都通過插件實現。

內核(core)通常只包含系統運行的最小功能。插件則是互相獨立的,插件之間的通信,應該減少到最低,避免出現互相依賴的問題。

優點

1、良好的功能延伸性(extensibility),需要什麼功能,開發一個插件即可

2、功能之間是隔離的,插件可以獨立的載入和卸載,使得它比較容易部署,

3、可定製性高,適應不同的開發需要

4、可以漸進式地開發,逐步增加功能

缺點

1、擴展性(scalability)差,內核通常是一個獨立單元,不容易做成分布式

2、開發難度相對較高,因為涉及到插件與內核的通信,以及內部的插件登記機制。

五、 雲架構。

雲結構(cloud architecture)主要解決擴展性和並發的問題,是最容易擴展的架構。

它的高擴展性,主要原因是沒使用中央資料庫,而是把數據都復制到內存中,變成可復制的內存數據單元。然後,業務處理能力封裝成一個個處理單元(prcessing unit)。訪問量增加,就新建處理單元;訪問量減少,就關閉處理單元。由於沒有中央資料庫,所以擴展性的最大瓶頸消失了。由於每個處理單元的數據都在內存里,最好要進行數據持久化。

這個模式主要分成兩部分:處理單元(processing unit)和虛擬中間件(virtualized middleware)。

處理單元:實現業務邏輯

虛擬中間件:負責通信、保持sessions、數據復制、分布式處理、處理單元的部署。

❽ 北大青鳥設計培訓:如何成為一名軟體架構師

你必須不斷尋求改善。
這里有一些很不錯的書籍,可以提升你的技能:每一個軟體架構師都應該知道的97件事企業應用架構模式C#中的敏捷原則、模式與實踐企業集成模式Javascript:最精彩的部分修改代碼的藝術領域驅動設計企業架構戰略設計模式目標SOA設計模式SOA服務設計原則每一到兩年學習一門新的編程語言。
選擇一個重點領域,佳音北大青鳥http://www.kmbdqn.cn/建議盡可能對技術有一個高層次的理解。
針對你的重點領域,開始寫博客,並繼續擴大你的知識面,在你的重點領域中成為專家。
嘗試不同的技術、編程語言、設計模式、架構等。
向你的聽眾介紹技術,並努力讓每個聽眾都能理解。

❾ 如何成為一個架構師

1、技術能力

技術能力,不用置疑肯定是最重要的。技術能力弱的架構不是一個好架構。所以,你需要知道所有主流技術的基本原理、應用場景,及快速解決問題的能力。所以,架構師必須要有見識,所需知識面肯定是要不斷拓展的。

你需要清楚在什麼樣的場景用什麼樣的技術比較合適,並知道可能存在什麼樣的風險。來了需求,你腦袋是空的,不知道用什麼技術這是最可怕的。

2、架構能力

這個可以表現為抽象能力、整體規劃能力、及設計能力。你需要照在業務的角度進行系統分解、技術選型、架構搭建,以及規范制定。架構出來了至少可以滿足最近的發展,或者可以很方便對現有架構進行擴容。

3、溝通能力

作為一個優秀的架構師,你需要清楚的知道客戶的需求,需要不斷和需求人員進行溝通,以達到客戶真正的目的。不論是不是架構師,任何一個職場人,提高自己的溝通表達能力無疑是不可或缺的。

系統架構師的主要功能包括:

1、系統架構師是軟體項目的總體設計師,是軟體組織新產品的開發與集成、新技術體系的構建者。

2、系統架構師是在技術上對所有重要事情做出決定的人(系統架構師在整個軟體開發過程中都起著重要作用,並隨著開發進程的推進而其職責或關注點不斷地變化)。

3、需求階段,軟體架構師負責理解和管理非功能性系統需求,比如軟體的可維護性、性能、復用性、可靠性、有效性和可測試性等。

4、設計階段,架構師負責對整個軟體架構、關鍵構件、介面的設計。協助系統分析師完成《系統概要設計說明書》。

5、編碼階段,架構師則成為程序員的顧問,並且經常性地要舉行一些技術研討會、技術培訓班等。

6、測試及實施階段,隨著軟體開始測試、集成和交付,集成和測試支持將成為軟體架構師的工作重點。

❿ 怎麼成為一個軟體架構師

架構師是一個充滿挑戰的職業,知識面的寬窄往往決定著一個架構師的架構能力,所以在這一點上我比較贊成你的學習方式,就是要閱讀大量的技術書籍,但我希望你不要僅限於軟體相關的書籍,經常泡技術論壇,一方面可以結交朋友,一方面可以增加自己的知識面。

公司的大小往往決定了所做的項目規模,一般的大項目不太可能直接總包給小公司去做,但這並不妨礙小公司可以分包到大項目的一部分。在做小項目的同時也可以積累豐富的經驗,我自己就是一個這樣的例子。
我在小公司混跡了5年多,其中也偶爾有1兩個大公司,比如大唐電信,但是基本上都是小公司,從基層的程序要到公司的開發總監都做過,甚至自己還設計過包括LED顯示屏,密碼鍵盤在內的收費系統,自己聯系廠家OEM,當然這些今天已經廣泛應用了,當時我們的客戶用上之後還是非常震撼的。
知識面的寬廣對於一名出色的架構師來說是必不可少的技能,也許很多人對架構的理解還停留在設計模式,重構,SOA等等的軟體層面,然而這僅僅是非常基本的東西,架構師的腦子里不光需要知道讓軟體如何高效的運行,還需要知道如何去結合網路,存儲,甚至一些文件系統的特性,比如GFS,NFS,XFS,NTFS等等,而且架構師還需要知道一些編程語言的特性,C,C++,Java,PHP,Python,Lisp,JS等等,現在是一個混合編程的時代,只了解一種語言,即使再精通也會使你在架構系統的時候受到很大的局限性。
再有一點,架構師需要對資料庫技術有深刻的認識,因為現今是一個信息時代,大量的信息都是需要存儲並檢索的,資料庫設計的不好,將會嚴重影響系統的性能,而這一點往往會被我們的設計人員忽略,他們只知道遵守那些範式而不會結合數據的特性去設計資料庫。
看你的編程情況,你好像做PHP開發比較多,PHP比較適合B/S結構的應用開發,這會限制一個架構師的思路,我建議你再學習一門適合做C/S開發的語言,拓寬自己的視野。
從一個程序員到架構師是一個很大的變化,架構師需要從大的方面考慮,而不只是考慮這個模塊該用哪種設計模式去開發。不能急於求成,也許是我自己變化的比較慢,我用了10年的時間,這10年裡,我使用超過一年的編程語言包括了delphi,C++,Java,python,使用的資料庫包括了oracle,infomix,sybase,sqlserver,mysql,javadb,sqlite等等,使用過大型機,小型機,伺服器。unix,linux,windows都至少做過兩年以上的開發,這些使用和開發的經歷會大大增強一個人在做架構師這個職業時的技術素養。
總之,想要成為架構師,需要有耐心,不斷學習,拓寬自己的視野,不僅僅局限於自己眼前的項目,關注開源技術,關注熱門技術社區的新動向。

閱讀全文

與如何做軟體架構相關的資料

熱點內容
電腦上怎麼下載班智達的軟體 瀏覽:1151
無痕跡消除圖片軟體 瀏覽:715
免費小票軟體 瀏覽:948
華為在哪裡設置軟體停止運行 瀏覽:956
用電腦鍵盤調節聲音大小 瀏覽:1253
自動刷軟體賺錢 瀏覽:1256
古裝連續劇免費版 瀏覽:1409
工免費漫畫 瀏覽:1141
手機軟體專門儲存文件 瀏覽:1503
uos如何用命令安裝軟體 瀏覽:1311
有線耳機插電腦麥克風 瀏覽:642
侏羅紀世界3在線觀看完整免費 瀏覽:990
單個軟體怎麼設置名稱 瀏覽:715
鳳凰網電腦版下載視頻怎麼下載視頻怎麼下載 瀏覽:1380
明白之後如何免費獲得無人機 瀏覽:827
如何解禁軟體菜單 瀏覽:846
副路由器連接電腦視頻 瀏覽:1346
內置wifi電視如何裝軟體 瀏覽:1096
手機換零免費雪碧 瀏覽:1583
國行蘋果如何下載美版軟體 瀏覽:1203