發表於2024-12-24
[按需印刷]編寫高質量代碼:改善C#程序的157個建議 計算機與互聯網 …|198625 pdf epub mobi txt 電子書 下載
書[0名0]: | 編寫高質量代碼:改善C#程序的157個建議[按需印刷]|198625 |
圖書定價: | 59元 |
圖書作者: | 陸敏技 |
齣版社: | 機械工業齣版社 |
齣版日期: | 2011-10-01 0:00:00 |
ISBN號: | 9787111356493 |
開本: | 16開 |
頁數: | 347 |
版次: | 1-1 |
作者簡介 |
陸敏技,資深軟件工程師、項目經理和架構師,從事軟件開發工作近10年。尤其精通微軟技術,對C#、WPF、WCF、ASP.NET和.NET技術有十分深入的研究,曾參與和主導瞭[0大0]量的相關項目的架構和開發工作,積纍瞭豐富的經驗。此外,他還非常擅長於分布式開發技術,而且有豐富的培訓和授課經驗。活躍於博客園等技術社區,樂於分享,有較高的[0知0][0名0]度和社區影響力。 |
內容簡介 |
《編寫高質量代碼:改善C#程序的157個建議》是C#程序員進階修煉的必讀之作,包含的全部都是C#編碼的[zui]佳實踐,從語言本身、程序的設計和架構、編碼規範和編程習慣等三[0大0]方麵對C#程序員遇到的經典問題給齣瞭經驗性的解決方案,為C#程序員如何編寫更高質量的C#代碼提供瞭157條[0極0]為寶貴的建議。對於每一個問題,不僅以建議的方式給齣瞭被實踐證明為十分[0優0]秀的解決方案,而且還給齣瞭經常被誤用或被錯誤理解的不好的解決方案,從正反兩個方麵進行瞭分析和對比。 《編寫高質量代碼:改善C#程序的157個建議》一共三個部分,[1[0第0]1]一部分專注於C#語言本身,一共89條建議,涵蓋瞭C#語言基本要素、集閤、LINQ、泛型、委托、事件、資源管理、序列化、異常處理、異步、多綫程、任務和並行編程等與C#語[0法0]相關的核心內容;[1[0第0]1]二部分重點講解瞭C#程序的設計和架構,一共32條建議,涉及成員設計、麵嚮對象的類型設計、安全性設計等重要方麵的內容;[1[0第0]1]三部分探討瞭C#的編碼規範及編程習慣,一共36條建議,包含C#命[0名0]規範、如何使代碼更整潔以及如何規範開發行為等方麵的內容。 《編寫高質量代碼:改善C#程序的157個建議》是一本關於如何編寫高質量C#代碼的工具書,列舉的問題非常典型,給齣的建議也非常實用,其中的每一條建議都有可能在我們編寫下一行代碼的時候被用到。你可以將此書擱置在案頭,以便有需要的時候隨時查閱。 |
目錄 |
《編寫高質量代碼:改善C#程序的157個建議》 前言 [1[0第0]1]一部分 語言篇 [1[0第0]1]1章 基本語言要素 / 2 建議1:正確操作字符串 / 2 建議2:使用默認轉型方[0法0] / 6 建議3:區彆對待強製轉型與as和is / 9 建議4:TryParse比Parse好 / 12 建議5:使用int?來確保值類型也可以為null / 15 建議6:區彆readonly和const的使用方[0法0] / 16 建議7:將0值作為枚舉的默認值 / 19 建議8:避免給枚舉類型的元素提供顯式的值 / 20 建議9:習慣重載運算符 / 22 建議10:創建對象時需要考慮是否實現比較器 / 23 建議11:區彆對待==和Equals / 27 建議12:重寫Equals時也要重寫GetHashCode / 29 建議13:為類型輸齣格式化字符串 / 32 建議14:正確實現淺拷貝和深拷貝 / 36 建議15:使用dynamic來簡化反射實現 / 40 [1[0第0]1]2章 集閤和LINQ / 43 建議16:元素數量可變的情況下不應使用數組 / 43 建議17:多數情況下使用foreach進行循環遍曆 / 45 建議18:foreach不能代替for / 51 建議19:使用更有效的對象和集閤初始化 / 53 建議20:使用泛型集閤代替非泛型集閤 / 54 建議21:選擇正確的集閤 / 57 建議22:確保集閤的綫程安全 / 61 建議23:避免將List 建議24:迭代器應該是隻讀的 / 67 建議25:謹慎集閤屬性的可寫操作 / 68 建議26:使用匿[0名0]類型存儲LINQ查詢結果 / 70 建議27:在查詢中使用Lambda錶達式 / 73 建議28:理解延遲求值和主動求值之間的區彆 / 75 建議29:區彆LINQ查詢中的IEnumerable 建議30:使用LINQ取代集閤中的比較器和迭代器 / 80 建議31:在LINQ查詢中避免不必要的迭代 / 83 [1[0第0]1]3章 泛型、委托和事件 / 86 建議32:總是[0優0]先考慮泛型 / 86 建議33:避免在泛型類型中聲明靜態成員 / 88 建議34:為泛型參數設定約束 / 90 建議35:使用default為泛型類型變量指定初始值 / 92 建議36:使用FCL中的委托聲明 / 94 建議37:使用Lambda錶達式代替方[0法0]和匿[0名0]方[0法0] / 96 建議38:小心閉包中的陷阱 / 99 建議39:瞭解委托的實質 / 103 建議40:使用event關鍵字為委托施加保護 / 106 建議41:實現標準的事件模型 / 108 建議42:使用泛型參數兼容泛型接口的不可變性 / 109 建議43:讓接口中的泛型參數支持協變 / 111 建議44:理解委托中的協變 / 112 建議45:為泛型類型參數指定逆變 / 114 [1[0第0]1]4章 資源管理和序列化 / 116 建議46:顯式釋放資源需繼承接口IDis [p1o1s] able / 116 建議47:即使提供瞭顯式釋放方[0法0],也應該在終結器中提供隱式清理 / 119 建議48:Dis [p1o1s] e方[0法0]應允許被多次調用 / 120 建議49:在Dis [p1o1s] e模式中應提取一個受保護的虛方[0法0] / 121 建議50:在Dis [p1o1s] e模式中應區彆對待托管資源和非托管資源 / 123 建議51:具有可釋放字段的類型或擁有本機資源的類型應該是可釋放的 / 124 建議52:及時釋放資源 / 125 建議53:必要時應將不再使用的對象引用賦值為null / 127 建議54:為無用字段標注不可序列化 / 131 建議55:利用定製特性減少可序列化的字段 / 136 建議56:使用繼承ISerializable接口更靈活地控製序列化過程 / 137 建議57:實現ISerializable的子類型應負責父類的序列化 / 140 [1[0第0]1]5章 異常與自定義異常 / 144 建議58:用拋齣異常代替返迴錯誤代碼 / 144 建議59:不要在不恰[0當0]的場閤下引發異常 / 147 建議60:重新引發異常時使用Inner Exception / 150 建議61:避免在fin[0all0]y內撰寫無效代碼 / 151 建議62:避免嵌套異常 / 157 建議63:避免“吃掉”異常 / 160 建議64:為循環增加Tester-Doer模式而不是將try-catch置於循環內 / 161 建議65:總是處理未捕獲的異常 / 162 建議66:正確捕獲多綫程中的異常 / 166 建議67:慎用自定義異常 / 168 建議68:從System.Exception或其他常見的基本異常中派生異常 / 170 建議69:應使用fin[0all0]y避免資源泄漏 / 172 建議70:避免在調用棧較低的位置記錄異常 / 175 [1[0第0]1]6章 異步、多綫程、任務和並行 / 177 建議71:區分異步和多綫程應用場景 / 177 建議72:在綫程同步中使用信號量 / 180 建議73:避免鎖定不恰[0當0]的同步對象 / 184 建議74:警惕綫程的IsBackground / 188 建議75:警惕綫程不[0會0]立即啓動 / 189 建議76:警惕綫程的[0優0]先級 / 191 建議77:正確停止綫程 / 193 建議78:應避免綫程數量過多 / 194 建議79:使用ThreadPool或BackgroundWorker代替Thread / 196 建議80:用Task代替ThreadPool / 198 建議81:使用Par[0all0]el簡化同步狀態下Task的使用 / 202 建議82:Par[0all0]el簡化但不等同於Task默認行為 / 204 建議83:小心Par[0all0]el中的陷阱 / 205 建議84:使用PLINQ / 208 建議85:Task中的異常處理 / 209 建議86:Par[0all0]el中的異常處理 / 214 建議87:區分WPF和WinForm的綫程模型 / 216 建議88:並行並不總是速度更快 / 220 建議89:在並行方[0法0]體中謹慎使用鎖 / 222 [1[0第0]1]二部分 架構篇 [1[0第0]1]7章 成員設計 / 226 建議90:不要為抽象類提供公開的構造方[0法0] / 226 建議91:可見字段應該重構為屬性 / 226 建議92:謹慎將數組或集閤作為屬性 / 227 建議93:構造方[0法0]應初始化主要屬性和字段 / 228 建議94:區彆對待override和new / 229 建議95:避免在構造方[0法0]中調用虛成員 / 235 建議96:成員應[0優0]先考慮公開基類型或接口 / 236 建議97:[0優0]先考慮將基類型或接口作為參數傳遞 / 237 建議98:用params減少重復參數 / 237 建議99:重寫時不應使用子類參數 / 238 建議100:靜態方[0法0]和實例方[0法0]沒有區彆 / 239 建議101:使用擴展方[0法0],嚮現有類型“添加”方[0法0] / 240 [1[0第0]1]8章 類型設計 / 243 建議102:區分接口和抽象類的應用場閤 / 243 建議103:區分組閤和繼承的應用場閤 / 245 建議104:用多態代替條件語句 / 248 建議105:使用私有構造函數強化單例 / 251 建議106:為靜態類添加靜態構造函數 / 253 建議107:區分靜態類和單例 / 255 建議108:將類型標識為sealed / 255 建議109:謹慎使用嵌套類 / 256 建議110:用類來代替enum / 257 建議111:避免[0[0雙0]0]嚮耦閤 / 260 建議112:將現實世界中的對象抽象為類,將可復用對象圈起來就是命[0名0]空間 / 262 [1[0第0]1]9章 安全性設計 / 264 建議113:聲明變量前考慮[zui][0大0]值 / 264 建議114:MD5不再安全 / 265 建議115:通過HASH來驗證文件是否被篡改 / 268 建議116:避免用非對稱算[0法0]加密文件 / 269 建議117:使用SSL確保通信中的數據安全 / 273 建議118:使用SecureString保存密鑰等機密字符串 / 284 建議119:不要使用自己的加密算[0法0] / 289 建議120:為程序集指定強[0名0]稱 / 289 建議121:為應用程序設定運行[0權0]限 / 291 [1[0第0]1]三部分 編碼規範及習慣 [1[0第0]1]10章 命[0名0]規範 / 296 建議122:以 建議123:程序集不必與命[0名0]空間同[0名0] / 296 建議124:考慮在命[0名0]空間中使用復數 / 297 建議125:避免用FCL的類型[0名0]稱命[0名0]自己的類型 / / 297 建議126:用[0名0]詞和[0名0]詞組給類型命[0名0] / 298 建議127:用形容詞組給接口命[0名0] / 299 建議128:考慮讓派生類的[0名0]字以基類[0名0]字作為後綴 / 300 建議129:泛型類型參數要以T作為前綴 / 300 建議130:以復數命[0名0]枚舉類型,以單數命[0名0]枚舉元素 / 301 建議131:用PascalCasing命[0名0]公開元素 / 302 建議132:考慮用類[0名0]作為屬性[0名0] / 302 建議133:用camelCasing命[0名0]私有字段和局部變量 / 303 建議134:有條件地使用前綴 / 304 建議135: 考慮使用肯定性的短語命[0名0]布爾屬性 / 305 建議136:[0優0]先使用後綴錶示已有類型的新版本 / 306 建議137:委托和事件類型應添加上級後綴 / 307 建議138:事件和委托變量使用動詞或形容詞短語命[0名0] / 308 建議139:事件處理器命[0名0]采用組閤方式 / 309 [1[0第0]1]11章 代碼整潔 / 311 建議140:使用默認的訪問修飾符 / 311 建議141:不[0知0]道該不該用[0大0]括號時,就用 / 312 建議142:總是提供有意義的命[0名0] / 314 建議143:方[0法0]抽象級彆應在同一層次 / 315[按需印刷]編寫高質量代碼:改善C#程序的157個建議 計算機與互聯網 …|198625 下載 mobi epub pdf txt 電子書 [按需印刷]編寫高質量代碼:改善C#程序的157個建議 計算機與互聯網 …|198625 pdf epub mobi txt 電子書 下載 用戶評價
評分
評分
評分
評分
評分
評分
評分
評分
評分
類似圖書 點擊查看全場最低價
[按需印刷]編寫高質量代碼:改善C#程序的157個建議 計算機與互聯網 …|198625 pdf epub mobi txt 電子書 下載 分享鏈接
去京東購買
去淘寶購買
去噹噹購買
去拼多多購買
相關圖書
|