發表於2024-12-22
通常,人們對軟件架構師持兩種錯誤的看法。有人認為軟件架構師是一種高高在上的職位;有人認為軟件架構師完全不懂開發,隻是會畫條條框框的指揮傢。《程序員必讀之軟件架構》將打破這些傳統的認知,模糊軟件開發和架構在流程中的界限,進而為軟件架構正名。《程序員必讀之軟件架構》是一本強調實踐、注重實效、輕量級、麵嚮開發者的軟件架構指南。
如果你是一名想成為軟件架構師的程序員,那麼《程序員必讀之軟件架構》就是為你準備的。
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.要學會超越
架構師需要超越自己與彆人的所見,因為你觀察與架構的對象稱為“係統”,你看到係統多少的真相,決定瞭你用怎樣的影像去錶現它,並進而推進與實現這種影像,亦即是架構。我們既已知道的、理解的、明白的,形成瞭我們的知識與行為的一切,卻也正是阻礙著我們前進的東西。這些障礙正是你以為你最珍視的、最不可放棄的、最鮮血淅瀝體驗過的那些經驗與成就。在這些所得與所礙中掙紮與決策,就是架構師的全部職責。因此作為架構師,你需要能夠超越自已對係統的既有認識,看到你在光明中——顯而易見之處——所未見的,這是你驅動係統架構進化的主要動力。
所以架構中最難超越的並不是某個大師或前輩,而是你以及你為自己所作的設定。當你設定瞭“架構師”這個目標,便設定瞭這個目標所錶達的某種影像(角色),你最終可能變得跟這個影像完全一緻——成為所謂的“真正的架構師”,但你仍不過是睏囿於對這個“角色”的一個假設/設定而已。唯一破局的方法是:超越彆人對某個角色的定義,將自己做成這個角色。
至此,你是否還在這個角色之中,就是你的覺悟瞭。
周愛民
現任豌豆莢架構師
前盛大網絡平颱架構師、支付寶業務架構師
程序員必讀之軟件架構 下載 mobi pdf epub txt 電子書 格式 2024
程序員必讀之軟件架構 下載 mobi epub pdf 電子書還沒來得及看,書感覺還是不錯的,京東快遞很給力!
評分好好好好好好好,學編寫軟件工程入門基礎!
評分給自己買的東西,充充電,謝謝京東!
評分還好還好還好!!!!
評分痛狗肉 my
評分翻譯的很爛…感覺譯者英語很爛,不會意譯…
評分very good
評分還沒看,不知道咋樣,希望可以
評分很好的書,值得一看。
程序員必讀之軟件架構 mobi epub pdf txt 電子書 格式下載 2024