發表於2024-11-26
程序員必讀之軟件架構 pdf epub mobi txt 電子書 下載
通常,人們對軟件架構師持兩種錯誤的看法。有人認為軟件架構師是一種高高在上的職位;有人認為軟件架構師完全不懂開發,隻是會畫條條框框的指揮傢。《程序員必讀之軟件架構》將打破這些傳統的認知,模糊軟件開發和架構在流程中的界限,進而為軟件架構正名。《程序員必讀之軟件架構》是一本強調實踐、注重實效、輕量級、麵嚮開發者的軟件架構指南。
如果你是一名想成為軟件架構師的程序員,那麼《程序員必讀之軟件架構》就是為你準備的。
SimonBrown,全球知名軟件架構獨立谘詢師、講師,創辦瞭專門討論軟件架構問題的網站“編碼架構”(codingthearchitecture.com)。他自稱是寫代碼的軟件架構師和明白架構的軟件開發者。自2008年以來的7年時間裏,Simon在全球28個國傢做過有關軟件架構、技術領導力及其與敏捷的平衡等主題的百餘場演講,並於2012年8月在中國舉辦的ArchSummit全球架構師峰會上以“鬱悶的架構師”和“如何設計安全的架構”為主題發錶演講,深受與會者好評。Simon已為全球20多個國傢的軟件團隊提供谘詢和培訓,他的客戶既有小型技術初創企業,也不乏全球傢喻戶曉的品牌公司。
★“這是一本‘指南’型圖書。作者會給你一個圖景以及達到它的關鍵技術指引,你可以得到一個思考問題的框架,而非一條道路或一套方法。但對於架構師來說,這樣就足夠瞭。”
——周愛民,現任豌豆莢架構師,前盛大網絡平颱架構師、支付寶業務架構師
架構師真正要學會的事情
要學會去看,然後忘掉
有一本書叫《觀止》,寫的是微軟研發WindowsNT的一段故事。“觀止”在這裏的意思是說“看到這些,就無需再看瞭”,因為世上之物亦無過於此。20多年過去,如今微軟在操作係統上麵臨著的種種挑戰與睏境,其實與《觀止》所敘的研發方法、理念與目標有著與生俱來的血緣關係。
另一個與“看”相關的詞匯是“所見即可得”(WYSIWYG)。這個詞以及與此相關的WIMP(Windows,Icon,MenuandPointer)曾經主導瞭整個人機交互的設計理念。也是在20多年前,Borland為Windows桌麵係統成功地設計瞭跨語言的VCL,由此“所見即所得”成為Borland對“如何更便捷地構建UI”的基本假想,以至於這傢偉大的公司在互聯網時代來臨時決定“用VCL描述界麵的方式來解決‘網站設計’的問題(RadPHP)”。
然而,互聯網上的網頁是沒有WIMP的;移動設備上的操作係統也不再采用與WindowsNT類似的方式開發。
Borland在幾年之前將整個開發工具産品綫都賣掉瞭。當時盛大的一個Delphi圈子發起瞭一次“緬懷活動”,組織者說:“愛民,你應該會為那個時代寫點什麼吧?”
我在那個緬懷網頁上寫下瞭五個字:所見即所礙。
2.要學會去聽,然後忘掉
我通常說架構是一種能力,架構角色則是要求你在具體事務中行使某些行為,而架構師則是用來標識這些能力與行為的一個職務。
當一些人將個人成長定義為“職業發展”時,就錶現為“怎樣成為架構師”這樣的問題。對此有三種解決方案,第一種是印一張寫著這樣頭銜的名片,而“是與不是”架構師並不重要;第二種是直接否定這個職務的意義,比如聲稱敏捷天生就是反架構的,於是“架構師”變成瞭要打倒的對象,所以成不成為這個將被打倒的對象也就不重要瞭;第三種則乾脆聲稱“人人都是架構師”,既然人人都是瞭,那麼“如何成為”也自然就不重要瞭。
我們大多數人都具有架構的能力,並且也或多或少地行使某些架構角色的行為,唯一缺乏的隻是一個叫做“架構師”的頭銜而已。問題齣在我們總是期望彆人通過這樣的頭銜來認可自己。於是我們為自己貼上這樣或那樣的標簽,然後跟彆人持有的同種標簽去比對,期求齣現一緻或找齣某種差彆。於是我們聽到種種聲音:某某某真的是/不是、像/不像架構師;如果是架構師,那麼就要這樣那樣,以及怎樣怎樣;其實這個架構、這樣的架構,或某種架構應該怎麼做;以及架構是什麼,架構師是什麼,等等。迴顧“三種解決方案”,仍是睏在這樣的認可求同之中,與之在做著種種鬥爭罷瞭。
其實不單是你的所見阻礙瞭你自己,你還被彆人的所見阻礙著。
3.要學會去做,然後忘掉
朋友跟我聊他傢的兩歲小孩:我剛把桌子收拾好,一轉眼杯子碗筷什麼的都全摔地上瞭。我問:“怎麼瞭?”他說:“小孩子什麼也不懂啊,她看到桌布覺得喜歡,就一把抓過去……”
小孩子沒能看到桌子上還有杯子,但正因為他們的視綫裏沒有杯子,他們的行動纔簡單直接,纔直達需求,纔迅速。而我們的眼睛裏有杯子、桌子、桌布等一切,我們經年纍月地維護著其中的次序與關係直到這些東西混成一體,然後我們便日日坐守在它們的麵前,而又無覺他們的存在。
正是我們自己不知不覺地設定瞭這些事物之間的界綫,並把這些界限、層次與邏輯井然的東西稱為“係統”。當我們從那些無序的事物中識彆齣瞭這樣的“係統”並用一些概念、名詞去定義瞭它們之後,我們對此的一切知識也就固化瞭。當這種秩序被建立起來之後,我們也就得到瞭對有序和無序(沒有你所設定的“這種秩序”)價值的識彆與肯否;當我們設定瞭種種價值、觀念、觀察與係統的模型概念之後,也就完成瞭這個係統的架構。
但這一過程,包括完成這一架構——它可以命名為“世界觀”——的方法以及結果,在本質上不過是讓你從一個格子跳到瞭另一個格子而已。我們處在種種界限之中,再也無法迴到兩歲小孩的、一切無礙的視角:在那個視角下,根本就沒有所謂的界綫。你之所以時時在尋求跨界,其實是源自你假設瞭“存在界綫”,這就如同全棧的含義其實是“沒有棧”,而當有人信心滿滿地要“成為全棧工程師”時,他的眼裏便又有個“這個棧”的存在。
所謂跨界不是指你能力與方法上的變化,你的作為取決於你的格局,你的格局取決於你的所見。
4.要學會超越
架構師需要超越自己與彆人的所見,因為你觀察與架構的對象稱為“係統”,你看到係統多少的真相,決定瞭你用怎樣的影像去錶現它,並進而推進與實現這種影像,亦即是架構。我們既已知道的、理解的、明白的,形成瞭我們的知識與行為的一切,卻也正是阻礙著我們前進的東西。這些障礙正是你以為你最珍視的、最不可放棄的、最鮮血淅瀝體驗過的那些經驗與成就。在這些所得與所礙中掙紮與決策,就是架構師的全部職責。因此作為架構師,你需要能夠超越自已對係統的既有認識,看到你在光明中——顯而易見之處——所未見的,這是你驅動係統架構進化的主要動力。
所以架構中最難超越的並不是某個大師或前輩,而是你以及你為自己所作的設定。當你設定瞭“架構師”這個目標,便設定瞭這個目標所錶達的某種影像(角色),你最終可能變得跟這個影像完全一緻——成為所謂的“真正的架構師”,但你仍不過是睏囿於對這個“角色”的一個假設/設定而已。唯一破局的方法是:超越彆人對某個角色的定義,將自己做成這個角色。
至此,你是否還在這個角色之中,就是你的覺悟瞭。
周愛民
現任豌豆莢架構師
前盛大網絡平颱架構師、支付寶業務架構師
給自己買的東西,充充電,謝謝京東!
評分還沒來得及看,書感覺還是不錯的,京東快遞很給力!
評分東西不錯東西不錯東西不錯
評分沒有發票,我的發票呢,發票呢,發票呢???
評分還行
評分在網上查的評價,特意買瞭。
評分不錯,值得購買,快遞很及時
評分好好好好好好好,學編寫軟件工程入門基礎!
評分IT公司購買,便於員工日常學習。
程序員必讀之軟件架構 pdf epub mobi txt 電子書 下載