-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

你真的會寫代碼嗎

( 簡體 字)
作者:[意]馬爾科·法埃拉(Marco Faella)類別:1. -> 程式設計 -> 綜合
譯者:
出版社:人民郵電出版社你真的會寫代碼嗎 3dWoo書號: 54816
詢問書籍請說出此書號!

缺書
NT售價: 450

出版日:7/1/2021
頁數:251
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787115566348
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

內容簡介:

《你真的會寫代碼嗎》的核心思想是通過對各方面的代碼質量進行比較,使讀者了解經驗豐富的開發者擁有的思維模式。為了展示軟件開發最佳實踐,作者對一個水容器示例進行多次重構,討論了18種實現,分別從7個方面改進代碼質量:時間效率、空間效率、監控與可靠性、測試與可靠性、可讀性、線程安全、可復用性。在此過程中,作者還探討了與計算機科學、Java編程以及軟件工程相關的專業話題,這些知識都有助于讀者寫出更好的代碼。
目錄:

第 一部分 準備工作
第 1章 軟件質量和待解決問題  2
1.1 軟件質量  2
1.1.1 內部質量與外部質量  3
1.1.2 功能性質量與非功能性質量  3
1.2 主要的外部軟件質量  4
1.2.1 正確性  4
1.2.2 穩健性  5
1.2.3 易用性  5
1.2.4 效率  5
1.3 主要的內部軟件質量  6
1.3.1 可讀性  6
1.3.2 可復用性  6
1.3.3 可測試性  6
1.3.4 可維護性  7
1.4 軟件質量之間的關系  7
1.5 特殊的質量  9
1.5.1 線程安全  9
1.5.2 簡潔性  9
1.6 演進示例:水容器系統  9
1.6.1 API  10
1.6.2 用例  11
1.7 數據的模型和表示  12
1.7.1 存儲水量  13
1.7.2 存儲連接  13
1.8 你好,容器(Novice)  15
1.8.1 字段和構造函數  15
1.8.2 getAmount和addWater方法  17
1.8.3 connectTo方法  17
1.9 小結  19
1.10 擴展閱讀  19
第 2 章 Reference 的實現  20
2.1 代碼(Reference)  21
2.1.1 內存布局圖  22
2.1.2 方法  25
2.2 內存需求  26
2.3 時間復雜度  30
2.4 學以致用  32
2.5 小結  33
2.6 小測驗答案和練習答案  34
2.7 擴展閱讀  36
第二部分 軟件質量
第3章 速度的要求:時間效率  40
3.1 常數時間內完成加水(Speed1)  41
3.2 常數時間內添加連接(Speed2)  43
3.2.1 用循環鏈表來表示容器組  43
3.2.2 延遲更新  46
3.3 最好的平衡:并查集算法(Speed3)  49
3.3.2 連接容器樹  52
3.3.3 最壞情況時間復雜度  53
3.3.4 攤銷時間復雜度  55
3.3.5 可調整大小數組的攤銷分析  56
3.4 比較各種實現  59
3.4.1 實驗  59
3.4.2 理論與實踐  60
3.5 來點兒新鮮的  61
3.5.1 快速插入  62
3.5.2 快速查詢  62
3.5.3 讓三個方法都變快  63
3.6 真實世界的用例  63
3.7 學以致用  64
3.8 小結  65
3.9 小測驗答案和練習答案  65
3.10 擴展閱讀  68
第4章 寶貴的內存:空間效率  70
4.1 稍微擠一下(Memory1)  70
4.2 普通數組(Memory2)  75
4.3 棄用對象(Memory3)  78
4.3.1 無對象的API  79
4.3.2 字段和getAmount 方法  81
4.3.3 用一個工廠方法來創建容器  82
4.3.4 通過ID 連接容器  84
4.3.5 空間復雜度和時間復雜度  87
4.4 黑洞(Memory4)  87
4.5 空間和時間的權衡  90
4.6 來點兒新鮮的  92
4.6.1 重復對象少的情況  92
4.6.2 重復元素多的情況  93
4.7 真實世界的用例  94
4.8 學以致用  94
4.9 小結  96
4.10 小測驗答案和練習答案  96
4.11 擴展閱讀  100
第5章 有自我意識的代碼:通過監控實現可靠性  102
5.1 契約式設計  102
5.1.1 前置條件和后置條件  102
5.1.2 不變式  104
5.1.3 正確性和穩健性  105
5.1.4 檢查契約  106
5.1.5 更廣泛的情況  108
5.2 基于契約設計水容器  109
5.3 檢查契約的容器(Contracts)  111
5.3.1 檢查addWater方法的契約  114
5.4 檢查不變式的容器(Invariants)  117
5.4.1 檢查connectTo方法的不變式  118
5.4.2 檢查addWater方法的不變式  120
5.5 來點兒新鮮的  120
5.5.1 契約  121
5.5.2 一個基線版本實現  121
5.5.3 檢查契約  122
5.5.4 檢查不變式  123
5.6 真實世界的用例  124
5.7 學以致用  125
5.8 小結  126
5.9 小測驗答案和練習答案  126
5.10 擴展閱讀  131
第6章 別對我撒謊:通過測試保證可靠性  132
6.1 測試的基本概念  132
6.1.1 測試的覆蓋率  133
6.1.2 測試和契約式設計  133
6.1.3 JUnit  134
6.2 測試水容器(UnitTests)  136
6.2.1 初始化測試  136
6.2.2 測試addWater  138
6.2.3 測試connectTo方法  143
6.2.4 運行測試  144
6.2.5 衡量代碼覆蓋率  145
6.3 可測試性(Testable)  146
6.3.1 可控性  146
6.3.2 可觀察性  147
6.3.3 隔離:切斷依賴關系  148
6.4 來點兒新鮮的  149
6.4.1 提高可測試性  150
6.4.2 一個測試套件  151
6.5 真實世界的用例  153
6.6 學以致用  154
6.7 小結  155
6.8 小測驗答案和練習答案  155
6.9 擴展閱讀  160
第7章 讓代碼說話:可讀性  161
7.1 關于可讀性的一些觀點  161
7.1.1 企業編碼風格規范  162
7.1.2 可讀性因素  163
7.2 結構性的可讀性特征  164
7.2.1 控制流語句  164
7.2.2 表達式和局部變量  166
7.3 外部可讀性特征  167
7.3.1 注釋  167
7.3.2 命名  168
7.3.3 空白及縮進  169
7.4 可讀的容器(Readable)  169
7.4.1 用Javadoc描述類的頭部  170
7.4.2 整理connectTo方法  173
7.4.3 整理addWater方法  177
7.5 可讀性的終極思考  178
7.6 來點兒新鮮的  179
7.7 真實世界的用例  181
7.8 學以致用  181
7.9 小結  183
7.10 小測驗答案和練習答案  183
7.11 擴展閱讀  186
第8章 多個廚師一鍋飯:線程安全  188
8.1 線程安全面臨的挑戰  188
8.1.1 并發級別  190
8.1.2 水容器的并發策略  192
8.2 處理死鎖  193
8.2.1 原子的鎖序列  194
8.2.2 有序的鎖序列  195
8.2.3 一個隱藏的競爭條件  196
8.3 線程安全的水容器(ThreadSafe)  198
8.3.1 同步connectTo方法  198
8.3.2 同步addWater和getAmount方法  199
8.4 不可變性(Immutable)  201
8.4.1 API  202
8.4.2 實現  204
8.5 來點兒新鮮的  206
8.6 真實世界的用例  208
8.7 學以致用  209
8.8 小結  210
8.9 小測驗答案和練習答案  211
8.10 擴展閱讀  213
第9章 請重復利用:可復用性  215
9.1 確立邊界  215
9.2 通用框架  216
9.2.1 屬性API  219
9.2.2 可變收集器  220
9.2.3 將Attribute適配到函數接口  224
9.3 一個通用容器的實現  225
9.4 通用的考慮  227
9.5 復原水容器(Generic)  228
9.5.1 更新用例  228
9.5.2 設計具體的屬性  228
9.5.3 定義具體的水容器類  230
9.6 社交網絡的帖子  230
9.7 來點兒新鮮的  231
9.7.1 參數函數的接口  233
9.7.2 一個通信模式  235
9.8 真實世界的用例  237
9.9 學以致用  238
9.10 總結  240
9.11 小測驗答案和練習答案  240
9.12 擴展閱讀  245
附錄A 代碼高爾夫:簡潔性  246
附錄B 終極水容器類  249
列表:每一章中主要的類  252
序: