|
-- 會員 / 註冊 --
|
|
|
|
聊聊架構 ( 簡體 字) |
作者:王概凱 | 類別:1. -> 程式設計 -> 綜合 |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 48965 詢問書籍請說出此書號!【缺書】 NT售價: 345 元 |
出版日:4/1/2017 |
頁數:248 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121311222 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:序 在軟件行業,架構師和軟件工程師是非常辛苦的職業。一方面新技術層出不窮,另一方面業務需求也層出不窮,讓人疲于應付。導致的后果就是常常加班,生活質量低下。只有曾經身在其中的人,才能夠體會其中的酸甜苦辣。
在軟件行業經歷過這么多年,也看到了軟件行業普遍存在的一些問題,總覺得自己應該為這個行業貢獻一點點力量。不期望能夠改變這個行業,能夠引起一點點思考也是好的,如果能夠幫助提升一些軟件從業者的工作和生活質量,就超出期望值了。
把自己的想法寫出來的過程是痛苦的,從來沒有寫文字的習慣,也沒打算過寫書,因此愈發艱難。年初時基于以上同樣的想法,在 InfoQ 投稿寫了《架構漫談》專欄,和大家分享一下自己對軟件架構的思考,以為算是交差了。不料 InfoQ 的郭蕾多次和我約稿,希望我能夠把架構漫談擴展成一本書。拒絕了很多次,但是臉皮實在是薄,禁不住郭蕾三番五次的游說,狠狠心答應了下來。
把文字寫下來傳播出去,是要承擔很大的責任的,一旦說得不對,傷害的是一大片人。不愿寫東西的原因大部分在此。但是想想人非圣賢,總有犯錯的時候,把自己的錯誤暴露出來給大家,也是幫助大家學習。話雖如此,還是鄭重聲明,本書的內容都是個人的思考和個人的觀點,并非學術的結論,請各位讀者不要當作結論全盤接受。反而讀者應該質疑書中的各種觀點,盡量自行思考,如此才會有所收獲。本書的目的也僅僅是為了引發大家的思考。
思及自身水平有限,文字功底也差,難免傷人慧命,深感慚愧和惶恐!望各位讀者,鑒其愚誠,不吝慈悲指正!
王概凱 Kevin
前言 現代的軟件從業者,都受過良好的計算機和軟件方面的教育。但是現代的計算機和軟件方面的教育,基本上都是從科學研究領域脫胎出來的,教育的目的也理所當然的主要是為科學研究領域服務。而隨著社會的發展,軟件不斷地滲透到不同的業務領域,涉及到普通人生活的方方面面。以科學研究為目的的軟件教育,和日益深入人們生活的軟件應用,產生了很大的隔閡。以致于很多計算機和軟件專業畢業的學生,進入企業工作后,總是感嘆學校所學習的知識派不上用場,必須得重新學起,才能夠達到企業的要求。
而這些重新學習的內容,又往往是以技術為主的。技術的更新換代太快,往往也導致想跟上新技術的我們力不從心。技術和業務的關系是如何的?業務又是怎么運作的?很少有人去問這些問題。即使有人問了,也很難有人可以提供建議。
軟件技術學習到一定的地步,又會發現軟件架構是一個門檻。一直以來,在軟件行業,對于什么是架構有很多的爭論,每個人都有自己的理解。甚至于很多架構師一說架構,就開始談論應用架構、硬件架構、數據架構等。而事實上,架構在軟件發明時的很多年以前就已經存在了。眾說紛紜,莫衷一是,這也給大家帶來了很多困擾。
業務和架構,是壓在軟件從業人員身上的兩座大山。而軟件從業人員手上卻只有一個武器:技術。可是這個武器還時靈時不靈,就好像金庸小說《天龍八部》中段譽的六脈神劍,并不總是能夠解決問題,有時還會帶來麻煩。
軟件并不是虛無縹緲的東西,它和現實生活是緊密相關的。業務和架構都是處理人的問題。而技術人員最討厭處理的就是人的問題,心里面厭惡,但卻又無法逃避。因為這個排斥的心理,工作中始終想避開和人有關系的地方。因此在技術之前,還需要做一些準備工作,用來連接現實生活,聯系上人,讓大家知道處理人的問題并不可怕。建立了這個相關性,每個人就都可以自行思考了。
不僅人類受限于自身的生命周期,凡事都有其生命周期。理解了生命周期,就可以看到很多隱藏在背后的規律,以及這些規律之間的聯系。因此,本書試圖從生命周期入手,描繪出一張整體的畫卷,幫助包括技術人員在內的大家定位自己處于什么地方,自己在起什么作用,別人又在什么地方,他們又在起什么作用。
明白了自己的位置和別人的位置,自然也就清楚自己有什么,缺什么,要往哪個地方走,從哪些地方入手了。所謂“知己知彼,百戰百勝”,知道這些后中,面對人打交道時也就有了自己的思考方式,能夠進行獨立思考,對業務也不再厭惡以致于逃避,而是為能幫助業務人員分析及解決問題而自豪。
本書雖然不是技術書籍,不談技術,但卻是以幫助技術人員為出發點。本書的內容可以作為連接技術人員和現實世界的橋梁,用來使技術人員不再懸在空中使不出力。對于非技術人員而言,本書可以幫助其理解軟件開發的特殊性,拉近與技術人員的距離,能夠更有針對性地與技術人員合作。
當然,讀完本書不會使讀者突然學會神功,打通任督二脈。因為每個人的成長,最終還是要靠自己的思考和實踐。本書的思考也不能夠代替讀者自己的思考,在解決某個業務問題時也無法從書中直接找到答案。本書可以提供給大家的是一個思考的出發點,一個思考的方向,一個思考的角度,使得大家不再懼怕或排斥業務,并可以像業務人員一樣思考,和架構師一樣思考,不再受困于業務和架構,甚至是技術本身。如果本書能夠幫助大家跨過這個門檻,并從這里開始展開思考,那么目的就達到了。 |
內容簡介:架構是如何運作并影響人們的日常生活的,在軟件行業中架構是如何運作的?架構又是如何指導代碼編寫的,如何把架構應用在軟件工程實踐上?帶著這些疑問,本書通過大量的實例一步一步揭示出架構背后的原理,以及架構在軟件行業的發展,并通過企業實例來展示軟件架構的實際應用。本書沒有高深的詞匯,不僅適合IT從業人員閱讀,也適合其他行業的人士閱讀。尤其對于想從事架構工作的人而言,是一本不可多得的參考材料。 |
目錄:第一部分 認識架構 第 1 章 生命周期 1.1 生命周期的識別 1.2 核心與非核心生命周期 1.3 生命周期與分工 第 2 章 時間 第 3 章 為什么會產生架構 3.1 分工 3.2 分工和生命周期 第 4 章 什么是架構 4.1 架構產生的條件 4.2 什么是架構 4.3 架構的生命周期 第 5 章 架構和樹 5.1 樹與增長 5.2 架構和樹 第 6 章 概念 6.1 何為名相 6.2 究竟什么才是相 6.3 概念是溝通的基礎 6.4 把握概念的力量 聊聊架構 第 7 章 什么是抽象 7.1 個性與共性 7.2 個性是基礎 第 8 章 識別問題 8.1 面對問題有哪些困難 8.2 如何識別問題 8.3 尋找問題主體 第 9 章 切分的原則 9.1 切分就是利益的調整 9.2 為什么需要切分 9.3 切分的原則 9.4 樹和分層 9.5 切分與建模 9.6 切分的輸出和組織架構 第 10 章 架構與流程 10.1 什么是流程 10.2 流程和架構拆分的關系 第 11 章 什么是架構師 11.1 架構師做什么 11.2 架構師也是人 11.3 人人都是架構師 11.4 架構師和權利 第二部分 軟件架構 第 12 章 什么是軟件 12.1 以模擬人為目標的馮諾依曼結構和圖靈機 12.2 成本為王 12.3 天空才是極限 12.4 軟件的作用 目錄 IX 第 13 章 軟件的生命周期 13.1 軟件的開發生命周期 13.2 軟件開發的增長 13.3 軟件開發的迭代 13.4 軟件的運行生命周期 第 14 章 什么是軟件架構 14.1 要解決什么問題 14.2 分別是誰的問題呢 14.3 分別有什么問題 14.4 分析問題 14.5 會生成哪些架構 14.6 什么是軟件架構 第 15 章 什么是軟件架構師 15.1 軟件架構師的區別 15.2 軟件架構師的困境 15.3 生命周期的思考 15.4 軟件架構師的權力 15.5 軟件架構師和技術人員對技術的態度區別 15.6 架構師是技術的使用者 15.7 如何保障架構落地 第 16 章 業務、架構和技術三者的關系 16.1 什么是技術 16.2 業務和架構及技術之間的關系 16.3 技術人員和業務人員的關系 16.4 重新發明輪子 16.5 開源技術 第 17 章 軟件研發 17.1 軟件工程師的興起和使命 17.2 分工的困境 17.3 軟件的迭代 17.4 軟件開發的分工 聊聊架構 X 17.5 軟件開發模式和架構 17.6 軟件工程師的支持者 第 18 章 軟件的架構拆分 18.1 軟件拆分的原動力 18.2 軟件開發團隊的拆分 18.3 軟件的拆分 18.4 軟件開發的基礎技術 18.5 軟件拆分的第二動力 18.6 架構一步到位 第 19 章 如何寫好代碼 19.1 什么叫業務邏輯 19.2 業務邏輯分散的危害 19.3 業務邏輯內聚的好處 19.4 代碼架構實例 19.5 代碼誤解 19.6 軟件的拆分 第 20 章 單元測試 20.1 什么是單元測試 20.2 單元測試的困境 20.3 單元測試測什么 20.4 如何改造代碼 20.5 為什么要做單元測試 20.6 如何做單元測試 第 21 章 軟件架構和面向對象 21.1 什么是面向過程 21.2 什么是面向對象 21.3 生命周期和面向對象及面向過程 21.4 架構和面向對象及面向過程 21.5 面向對象的誤區 21.6 對象和生命 目錄 XI 第 22 章 軟件架構與設計模式 22.1 模式以及模式的意義 22.2 什么是設計模式 22.3 軟件設計模式 22.4 設計模式和架構 22.5 設計模式的誤區 第 23 章 軟件架構和軟件框架 23.1 訪問類框架 23.2 業務類框架 23.3 什么是框架 23.4 框架的特點 第 24 章 軟件運維 24.1 軟件運行生命周期 24.2 什么是軟件運維 24.3 運維的業務模型 24.4 控制變化 24.5 監控變更 24.6 預警變更 24.7 主導變更 24.8 提升變更質量 24.9 運維的架構拆分 第 25 章 軟件訪問生命周期 25.1 軟件訪問的業務模型 25.2 軟件訪問路徑的架構拆分 25.3 大規模軟件訪問的架構拆分 25.4 集群 25.5 數據中心 第 26 章 軟件架構和大數據 26.1 什么是大數據 26.2 如何做好大數據 26.3 軟件大數據 聊聊架構 XII 第 27 章 軟件架構和建筑架構 27.1 軟件架構和建筑架構的目標之異同 27.2 軟件和建筑的架構擴展之異同 第三部分 軟件架構的應用 第 28 章 交易 28.1 什么是交易 28.2 貨幣的出現 28.3 企業的實質 28.4 軟件對交易的影響 28.5 軟件的交易 28.6 企業的核心 第 29 章 產品 29.1 什么是產品 29.2 什么是商品 29.3 識別產品 29.4 產品系統 29.5 產品列表 29.6 產品詳情 29.7 商品的規則 第 30 章 用戶 30.1 什么是用戶 30.2 為什么需要用戶 30.3 客戶的出現 30.4 用戶的生命周期 30.5 用戶的識別 第 31 章 訂單 31.1 什么是訂單 31.2 訂單的生命周期架構拆分 31.3 訂單支付 31.4 訂單生命周期 第 32 章 交易系統 32.1 企業的架構拆分 32.2 軟件系統的建模 32.3 訪問業務模型 32.4 交易軟件系統的架構拆分 32.5 服務的產生和粒度 32.6 用戶系統的拆分 第 33 章 事務 33.1 什么是事務 33.2 軟件中的事務 33.3 數據庫事務的濫用 33.4 數據庫的正確使用方式 33.5 服務調用 |
序: |
|