阅读王概凯老师架构漫谈系列总结
這學(xué)期在學(xué)軟件體系架構(gòu)的課程,老師推薦了王概凱老師的架構(gòu)漫談系列專欄,在閱讀專欄之后,對于什么是架構(gòu),怎樣做好架構(gòu),軟件架構(gòu)如何落地,如何寫好程序等問題有了較深的理解,在此簡單記錄一下閱讀之后的感想
架構(gòu)漫談第一篇主要在介紹什么是架構(gòu)以及為什么會產(chǎn)生架構(gòu),在沒有閱讀文章以前,在學(xué)習(xí)中或許用到過架構(gòu)的思想,但也是模棱兩可,并不知道什么是架構(gòu),更不清楚是怎么產(chǎn)生架構(gòu)的。王概凱老師提到,架構(gòu)是把一個整體切分成不同的部分,由不同角色來完成這些分工,并通過建立不同部分相互溝通的機(jī)制,使得這些部分能夠有機(jī)的結(jié)合為一個整體,并完成這個整體所需要的所有活動。在不嚴(yán)格角度來講,就像我們學(xué)習(xí)中有很多情況下是在分工合作,與同學(xué)組成的團(tuán)隊一起做項目,想要合理的分工,并最終將軟件做好,就需要做好架構(gòu),將每塊部分功能分解,識別問題,拆分出來的各個部分和合并所對應(yīng)的角色和所需要的核心能力等去有目的,主動的識別問題,并進(jìn)行分解,合并,結(jié)果這個問題。
架構(gòu)漫談第二篇主要介紹了概念的內(nèi)容,如何有效的去認(rèn)識概念,明白概念背后的含義,以及如何利用對概念的理解,快速的進(jìn)行學(xué)習(xí)。概念很重要,如果沒有辦法理清一些基礎(chǔ)概念,混淆,會導(dǎo)致實際做架構(gòu)時,角色溝通,工作安排會出現(xiàn)很多問題,自然工作結(jié)果也就不會樂觀。每個概念實際上解決的,還是人遇到的某個特定的問題,我們把解決問題的解決方案,給定了一個名字,這個名字就是對應(yīng)的某個特定的概念。不管是處于一個怎樣的身份和地位,想要做好架構(gòu),就必須要正確的認(rèn)識概念,能夠發(fā)現(xiàn)概念背后所代表的問題,,進(jìn)而才能認(rèn)識目標(biāo)領(lǐng)域所需解決的問題。在這個問題上我需要努力的還有太多!
架構(gòu)漫談第三篇在講如何做好架構(gòu)之識別問題,王概凱老師認(rèn)為能夠識別出需要解決的問題,問題就已經(jīng)解決了80%了,這個能力基本決定了架構(gòu)師的水平。而識別問題的一大前提就是要搞清楚是誰的問題,這個搞清楚了,問題的邊界也就確定了,再去討論問題才有意義。一個合格的架構(gòu)師應(yīng)該問的第一個正確的問題是:目標(biāo)問題是誰的問題。如果我們發(fā)現(xiàn)在工程項目中,正在致力于完成自己的工作,要馬上警惕起來,因為這樣下去會演變成沒有ownership的工作態(tài)度,在面對概念的時候,也會不求甚解,最終導(dǎo)致沒有理解正確概念。總之總結(jié)在正確認(rèn)識問題的角度上,需要問兩個問題,是誰的問rr‘’題,有什么問題。讀到這里我開始有些不明白,這是誰的問題,在我現(xiàn)在看來很難判定,比如談到切土豆這個問題,想要一把錘子這個問題,就反復(fù)理解很多次,也還只是模棱兩可。
架構(gòu)漫談第四篇主要講是如何做好架構(gòu)之架構(gòu)切分。維護(hù)自己的利益每個人不能逃避的一點(diǎn),隨著社會的發(fā)展,分工是必然的,每個人都想將自己的利益最大化,所以需要分工,用自己擅長的東西去換取別人擅長的東西。如果需要在這個社會上立足,判斷標(biāo)準(zhǔn)就變成了如何給這個社會提供更好更有質(zhì)量的服務(wù),提供更多更好的服務(wù),自然就能夠換取更多更好的生活必需品,和我們做人的道理是一樣的。我們要舍棄自己的一些東西,去和別人交換,如果不想依賴別人,不愿與別人交換,他就會辛苦很多,生活會差的多。
架構(gòu)漫談第五篇主要是將什么是軟件。軟件的歷史,實際上可以說是用機(jī)器人模擬人的歷史,我們在有意無意的在計算機(jī)上模仿人類的行為,從馮諾依曼結(jié)構(gòu)開始,程序邏輯開始脫離硬件,采用二進(jìn)制編碼。加上存儲。軟件開發(fā)就開始有分工了,行業(yè)知識和業(yè)務(wù)的識別,會交給BA,系統(tǒng)的設(shè)計會交給架構(gòu)師,設(shè)計的實現(xiàn)交給架構(gòu)師,實現(xiàn)的檢驗交給測試,還有很多其他角色的配合,為了組織這些角色的工作,還有項目驚雷,這就把原來一個人的連續(xù)工作,拆分成了不用角色人的連續(xù)配合,演化成了不同的軟件開發(fā)的模式,然后慢慢演變成專門為別人開發(fā)軟件的的軟件公司。軟件架構(gòu)的出現(xiàn)也是同樣的。一開始是懵懵懂懂的去寫軟件,后來就慢慢有意識的去拆分,演變成了不同的架構(gòu),這個背后的動力也是一樣的,就是提升參與的人的利益,降低成本。導(dǎo)火索也是軟件工程師的任務(wù)太重,我們需要把很多工作拆分出來。拆分的原則也是一樣的,如何讓權(quán)責(zé)一致,這個拆分也需要架構(gòu)對的調(diào)整,來保證架構(gòu)的落地。
架構(gòu)漫談第七篇講了怎樣成為架構(gòu)師的前提條件,如何發(fā)現(xiàn)是誰的問題,架構(gòu)師的權(quán)利和義務(wù)話題。架構(gòu)師必須是一個組織的領(lǐng)導(dǎo)人,有權(quán)利調(diào)動這個組織的架構(gòu),才能夠更好的發(fā)揮架構(gòu)師的作用,更好的把利益的調(diào)整落到實處。架構(gòu)師要去平衡別人的利益,甚至?xí){(diào)整別人的利益,一旦架構(gòu)師是全心全意的為別人的利益服務(wù),自然而然的架構(gòu)師就擁有了強(qiáng)有力的影響力,肯定會是一個leader。但是只是民意上的leader是沒有用的,不能完全發(fā)揮架構(gòu)師的能量。
架構(gòu)漫談的第八篇講了從架構(gòu)的角度看如何寫好代碼,當(dāng)我們有了好的架構(gòu),那就需要考慮如何將架構(gòu)落地,而這個時候,代碼就顯得無比重要了,千萬不要讓代碼成為架構(gòu)擴(kuò)展的瓶頸。軟件架構(gòu)實際上包括了代碼架構(gòu),以及承載代碼運(yùn)行的硬件部署架構(gòu),實際上,硬件部署架構(gòu)最終還是由代碼的架構(gòu)來決定,因為代碼架構(gòu)不合理,是無法把一個運(yùn)行單元分拆出多個來的。
架構(gòu)漫談第九篇講了理清技術(shù)、業(yè)務(wù)、架構(gòu)的關(guān)系,技術(shù)總是在人類解決對業(yè)務(wù)要求不斷提高的情況下產(chǎn)生,目的也是為了獲取更大的利益。業(yè)務(wù)是技術(shù)的前提,技術(shù)與技術(shù)有相互制約的關(guān)系,按照前面的架構(gòu)定義,這個時候其實已經(jīng)產(chǎn)生了架構(gòu),一般先有技術(shù),才會有架構(gòu)。
閱讀完王概凱老師的架構(gòu)漫談自己真的成長了很多,要多閱讀,多積累,加深自己對軟件行業(yè)的理解!
轉(zhuǎn)載于:https://www.cnblogs.com/ggrm/p/10521662.html
總結(jié)
以上是生活随笔為你收集整理的阅读王概凯老师架构漫谈系列总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 相同字符串的string对象不等
- 下一篇: 英国萨里大学金耀初教授:进化计算在人工智