曾經有面試官問我:」你真的喜歡程式設計麼?」,面對這問題,我百感交集,卻不知何以言表.
答案不言而喻,我是個夢想成為架構師的人.
嚴謹的行事風格和習慣,我知道我無法證明,於是我久久沉默不語…
當自己成為面試官,也希望知道初次蒙面的人是不是乙個喜歡程式設計的人.
我並未提出」你喜歡程式設計麼?」這樣的問題,
相反,我會問我自己:什麼樣的人才是喜歡程式設計的人?
你我都是打工的程式設計師,其實是去實現產品人員的想法,是乙個執行者.
即便你可以跟策劃討論產品實現,最終還是要去敲**,將想法變為可見.
之後,你拿到需求文件,看到了需求中的邏輯,卻看不到該需求的架構.
於是,你可以按照邏輯程式設計,也可以思索如何設計,讓**更加優雅.
這就是程式設計師的兩類人,至於那種只會動嘴不會動手(注意,說的是不會動手;而不是簡單的不動手)的,根本算不上程式設計師.
沒人願意承認自己是第一種程式設計師,但如果你真的是第二種,那我願意相信你熱愛程式設計,並且架構一直在你身邊.
舉個例子,舉個王者榮耀中的例子.
牛頭衝鋒將亞瑟擊飛.
那程式設計中如何表示亞瑟的狀態?
於是,我們用了乙個變數fly = 1表示亞瑟處於空中.
亞瑟被擊飛後,又落到了地上,程式又該如何表示?
於是,我們用了乙個變數onfloor = 1表示亞瑟在地面上,並將fly設定為0.
一切按照邏輯,可以實現,有什麼問題?
對計算機的計算來說,都可以.但對人來說,變數太多,不利於擴充套件和維護.
於是,你會說,為什麼不用乙個變數代表狀態.0表示在地上,1表示在空中,2表示被擊退等?
對的,這就是架構,有些人會認為這跟架構扯不上關係,這就算是基礎.
我同意這種觀點,但我更傾向於認為這是架構思維的萌芽.
就是這種思考的習慣,讓人知道,互斥的狀態可以用列舉搞定,
有相同屬性不同動作的類可以做成多型,可以使用工廠模式等.
你一直有乙個思考的習慣.
漸漸的,你的專案需要有多少類?同一時刻該類的例項物件有多少?
分別在哪幾個執行緒?哪幾個程序?你均知曉.
漸漸的,漸漸的你寫出了優雅的**,做了一些別的程式設計師用得到的東西,同行不排斥看(很多情況是不願意看).
漸漸的,有人願意跟你分享技術觀點,願意跟你維護同一套**.
漸漸的,你設計了對整個產品的架構,分了若干個服務,每個服務放在了哪台物理機的哪個程序中…
… …
於是,你可以驕傲的回答開篇提的那個問題:我是乙個熱愛程式設計的人!
寫在最後,珍惜每次程式設計的機會,將**寫的優雅,更優雅,再優雅.
架構,一直在你身邊.
我對架構師的理解(如何成為乙個合格的架構師)
我對架構師的理解 如何成為乙個合格的架構師 從該物件 如何訪問其他物件 全域性函式 應用文件模板 呼叫cdoctemplate getfirstdocposition cdoctemplate getnextdoc來遍歷所有對應文件 文件呼叫cdocument getfirstviewpositio...
關於成為一名軟體架構師的思考
還不成熟的思考,不過我的職業目標是成為一名軟體架構師。不應該簡單做好作為coder的工作,還應該從更高的視角來領悟。比如目前做的模組化軟體架構,裡面使用了idl ecom等技術,由於是老 並且這些技術已經有相當悠久的歷史,那麼現在來看有沒有更佳的替代設計方案,對於從設計 開發 維護等各種視角來看是否...
如何成為乙個優秀的SOA架構師
什麼是soa架構設計師的職責?那什麼是企業級soa架構設計師的具體角色呢?什麼是soa架構設計師與設計和開發人員之間的差別呢?相信這些都是使大家最容易產生迷惑的問題。舉個實際的例子來說,當構建乙個基於soa架構的系統的時候,針對乙個具體的 service,系統設計人員主要應該關注的是這個servic...