大話代碼架構:項目實戰版( 簡體 字) | |
作者:田 偉 郎小嬌 著 | 類別:1. -> 程式設計 -> 綜合 |
出版社:機械工業出版社 | 3dWoo書號: 47558 詢問書籍請說出此書號! 有庫存 NT售價: 345 元 |
出版日:8/1/2017 | |
頁數:316 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787111577010 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
序言
前言 引言 1 一個架構師的例子 1 背景及人物介紹 3 我們的目標 3 第1篇 需求與三層架構 第1章 故事從一個電商網站開始 6 1.1 需求?需求! 6 1.2 敏捷開發簡介 8 1.3 UI——用戶界面 9 1.3.1 從UE說起 9 1.3.2 HTML 5 & CSS 3 9 1.3.3 微信 10 1.4 數據庫 10 1.4.1 PowerDesigner設計工具 11 1.4.2 關于SQL語句 12 第2章 為什么是三層 14 2.1 MOL帶兄弟們去吃飯 14 2.2 動手寫一個三層結構 16 2.2.1 DAL層的實現 17 2.2.2 BLL層的實現 18 2.2.3 UI層的實現 19 2.3 簡說MVC 20 2.3.1 糾正一下老師的說法 20 2.3.2 MVC的第一個程序 21 2.3.3 為什么要用MVC之我見 25 2.4 向三層代碼中加入面向對象 25 2.4.1 實例化數據庫表 26 2.4.2 增加數據庫操作類 29 2.4.3 加強版的數據庫操作類 30 2.5 小說代碼管理 33 2.5.1 什么是代碼管理軟件 34 2.5.2 TFS管理軟件 36 2.5.3 SVN管理軟件 40 2.5.4 Git管理軟件 41 2.6 小結 51 第3章 ORM實體關系映射 52 3.1 說說OCP開放封閉原則 52 3.2 解耦第一步——接口要上位 53 3.2.1 代碼結構的前提 53 3.2.2 創建接口層 56 3.3 解耦第二步——工廠模式解決new的問題 58 3.4 Spring.NET橫空出世 61 3.4.1 酒文化發展史 61 3.4.2 神奇的IOC 62 3.4.3 引出Spring.NET 64 3.5 我不想寫SQL語句 67 3.5.1 什么是ORM 68 3.5.2 ORM之iBATIS.NET 70 3.5.3 ORM之NHibernate 75 3.5.4 ORM之EF 86 3.5.5 懶人無敵 93 3.5.6 完成查詢操作 106 3.5.7 數據庫先行、模型先行、代碼先行 109 3.6 小結 110 第2篇 NoSQL和測試 第4章 換個數據庫試試 112 4.1 客戶總有一些非分的想法 112 4.2 MongoDB簡介 113 4.2.1 安裝&配置 114 4.2.2 可視化工具 116 4.2.3 MongoDB的基本操作 119 4.3 .NET操作MongoDB 121 4.4 讓NoSQL面向對象 123 4.4.1 實體抽象 124 4.4.2 操作抽象 132 4.5 NoSQL題外話 135 4.6 關于日志 136 4.6.1 為啥要寫日志 136 4.6.2 如何寫日志 138 4.6.3 注意事項 144 4.7 小結 145 第5章 越俎代庖搞搞測試 146 5.1 簡單說測試 146 5.2 冒煙測試 147 5.3 黑盒測試 148 5.4 單元測試 149 5.4.1 單元測試是什么 150 5.4.2 如何進行單元測試 150 5.4.3 測試驅動開發 161 5.5 白盒測試 162 5.6 壓力測試 163 5.7 其他測試 163 5.8 小結 163 第3篇 高精尖技術 第6章 神奇的緩存 166 6.1 網站崩潰了 166 6.2 緩存是什么 168 6.3 微軟提供了緩存 170 6.4 自己做緩存 173 6.5 第三方緩存 176 6.5.1 MemCache緩存 178 6.5.2 Redis緩存 189 6.5.3 把緩存抽象出來 197 6.5.4 讀寫分離 198 6.6 利用模板引擎生成靜態頁面 198 6.6.1 初識NVelocity 200 6.6.2 使用NVelocity生成靜態頁面 207 6.6.3 靜態頁面帶來的問題 211 6.7 CDN的加入會大大減少服務器的壓力 212 6.8 小結 213 第7章 程序員眼中的前端 215 7.1 常見的前端框架 216 7.2 嘗試EasyUI 220 7.2.1 基礎框架 220 7.2.2 常用的控件 232 7.2.3 小說權限分配 247 7.3 其他的前端框架 264 7.3.1 Bootstrap框架 264 7.3.2 jQuery UI框架 265 7.4 小說HTML 5 265 7.5 小結 266 第8章 人生中的第一次高并發 267 8.1 網站又崩潰了! 267 8.2 從相親說起 268 8.3 簡述消息隊列 270 8.3.1 串行設計 270 8.3.2 多線程設計 271 8.3.3 消息隊列設計 274 8.4 常見的消息隊列 275 8.4.1 MSMQ消息隊列 275 8.4.2 RabbitMQ消息隊列 282 8.5 小結 288 第9章 微信公眾號 289 9.1 李老板出場,請熱烈鼓掌 289 9.2 初探微信公眾號 290 9.2.1 申請訂閱號 291 9.2.2 小機器人 294 9.2.3 把晉商卡掛到微信公眾平臺上 298 9.3 微信小程序 299 9.3.1 微信小程序是什么 299 9.3.2 寫一個簡單的Demo 300 9.4 微服務 310 9.5 MongoDB數據庫 312 9.6 大數據 314 9.7 小結 316 內容簡介
你是否還在為了“三層”而“三層”?甚至不知道為什么分層。 你是否還在為項目中難以維護的SQL語句而頭疼不已? 你是否還不知道MongoDB這樣的非關系型數據庫也可以使用ORM框架? 你是否對前端或測試這些領域也一無所知? 你是否面對高并發時手足無措? …… 本書將以輕松幽默的風格解決你所面臨的這些問題。 本書以一個真實的項目案例——“晉商卡”從無到有的整個開發過程為主線,用大話的語言風格,風趣幽默地講解了代碼架構的相關知識。本書通過5個人物角色,模擬實際的項目開發過程,以對話形式拋出問題,然后解決問題,讓你在身臨其境中輕松愉快地掌握代碼架構的知識。 本書涵蓋的主要內容有敏捷開發的方法論、項目開發流程、傳統的三層架構、源代碼管理、幾種常見的實體關系模型、使用IoC和接口、使用緩存和靜態頁面減少服務器壓力、在項目中使用消息隊列、嘗試使用前端框架、微信公眾號開發及小程序開發。 本書適合對代碼架構感興趣的初學者和愛好者閱讀。另外,高校學生和參加軟件開發的培訓學員也可將本書作為興趣讀物。對于初入職場還比較迷茫的程序員,本書可以作為一本提高讀物來閱讀。建議閱讀本書的讀者具有一定的C#語言基礎。 架構(Architecture)是什么?可能每個人給出的答案都不同。業界流行一句笑話:
Architecture is like teenage sex, everybody talks about it,nobody really knows what it is. 當然,MOL也不可能給出一個關于架構的準確定義。MOL更愿意把架構歸為哲學的范疇。架構本身其實和軟件開發并無太大關系。一個國家有自己的管理體系;一個公司有自己的組織架構;一個家庭也有獨特的男權或女權的特色,小到一個人;也是可以分為自我、本我和超我的。每個事物都是由一個個更小的事物組合而成的,而這些其實都與架構相關。 在宏觀世界里,所有的國家公民構成了一個國家主體,國家主體對每個公民進行管理和約束,這是架構。 在微觀世界里,電子繞著原子核高速轉動,始終不會脫離原子核的管轄范圍。而原子核和電子又組成一個原子。原子對電子、質子、中子的管理就是架構。 本書的讀者一定是軟件行業的高手或菜鳥,那我們就回到軟件編程的世界里。 每個軟件項目都是由代碼和服務器構成的,如何統籌安排代碼和服務器,就是架構的范疇了。 一個項目可能要使用多臺服務器,如Web服務器、數據庫服務器、文件服務器、CDN……如何針對不同的要求對服務器進行選型,這是架構;如何統一管理這些服務器,這是架構;如何讓這些服務器平穩運行,這也是架構。 開發項目使用什么語言,是Java還是Node.js?選用什么數據庫,是Oracle還是MongoDB?這是架構。 具體到開發過程中,某個模塊應該如何安排,是交給DBA(數據庫管理員)用存儲過程來實現,還是讓C#程序員訪問數據庫實現?這是架構。 在寫C#代碼的時候,采用三層架構,還是MVC?這是架構。 如何寫日志,是使用I/O讀寫文件?還是采用log4net?或者是AOP切片寫日志?這是架構。 甚至具體到某種技術的時候,也有架構。比如MOL規定項目要使用MVC架構,那么使用微軟的MVC,還是Spring的MVC?這都是架構。 可見,架構涉及的范圍非常之廣。弱水三千,MOL只給一瓢。本書將從代碼架構的角度來讓大家一窺架構的真面目。 C#是一門非常優雅的編程語言(當然MOL并無編程語言的偏見),所以本書中所有的代碼都以C#語言來描述。 本書特色 1.風趣幽默 MOL一直比較反對平鋪直敘的講解方式,所以本書的語言風格是比較幽默的。在本書的內容中將出現3個與MOL并肩作戰的兄弟(公司老大鄧總不在此列),以對話形式拋出問題并解決問題。 2.案例分析 本書中只有一個項目“晉商卡”,但MOL會帶著大家見證“晉商卡”從無到有的過程,大家可以在這個過程中獲得很多意想不到的收獲。 3.向循規蹈矩說NO 正如MOL在結語中所說,2017年是一個強調“工匠精神”的一年。幾乎所有的人都在精益求精地做自己的事情。但MOL要分享給大家的是一種懶人精神,我們不愿意日復一日地重復昨天的自己,我們要站在更高的層面,做更少的事情,卻有更多的收獲。 本書內容及體系結構 第1篇 需求與三層架構(第1~3章) 本篇詳細介紹了項目開發的前置節點——需求,并對常見的三層架構給出了分析。在第1篇中提出了面向對象的重點概念,并讓大家初步認識抽象的過程。 相信很多人一定被書中大段的SQL代碼搞得云里霧里,不用擔心,在第3章中MOL將帶領大家完成懶人的第一步——如何不寫SQL代碼。 第2篇 NoSQL和測試(第4、5章) NoSQL是現在比較流行的一個話題和技術。在第4章中將通過講解MongoDB來介紹NoSQL如何使用,并且糾正大家的一個錯誤觀念:NoSQL和ORM不能搭配使用。 第5章分享了測試的工作,并講解了單元測試、黑盒測試、白盒測試……讓大家在收獲的同時,也能理解測試工程師在工作中所要面臨的一些痛苦。 第3篇 高精尖技術(第6~9章) 任何一個網站項目,似乎都繞不開“緩存”這個神奇的空間。緩存用得好,可以加快系統的反應速度。如果緩存用得不好,不僅用戶體驗差,還可能造成服務器宕機。第6章就分享了如何使用緩存。 每個程序員都有一個全棧的夢想,而前端又是全棧中必不可少的一部分,第7章講解了如何使用EasyUI來搭建前端。 現在越來越多的電商網站都會做一些搶購或促銷活動,當然這就使得網站不可避免地面臨高并發。如何處理高并發呢?第8章將通過講解消息隊列,來說明如何應對高并發。 微信已經成了人們生活中必不可少的一部分。在2017年3月27日這一天,微信小程序也對個人用戶開放了。我們如何把“晉商卡”掛到微信公眾平臺上,又如何開發微信小程序呢?這些問題都將在第9章中解決。 本書讀者對象 * 對代碼架構感興趣的初學者; * 對代碼架構感興趣的愛好者; * 高校學生和相關培訓學校的學員; * 初入職場需要提高開發水平的開發人員。 因為書中所有的代碼都以C#語言來描述,所以本書讀者如果有一定的C#語言基礎更佳。 本書配套資源及獲取方式 為了方便讀者高效地學習,本書特意提供了以下配套資源: * 本書源代碼文件; * 本書涉及的一些開發工具的安裝包。 這些配套資源需要讀者自行下載。請讀者登錄機械工業出版社華章公司的網站www.hzbook.com,然后搜索到本書頁面,按照頁面上的說明進行下載。 本書作者 本書主要由田偉(就是筆者MOL)和郎小嬌主筆編寫。其他參與編寫的人員還有李小妹、周晨、桂鳳林等。 讀者閱讀本書時若有疑問,可以發郵件以獲得幫助。 |