課程簡(jiǎn)介
課程內(nèi)容:課程圍繞“字符串與內(nèi)存處理”這一問題,通過一系列環(huán)環(huán)相扣的有趣的故事場(chǎng)景,揭示C/C++語言中容易讓人犯錯(cuò)或是誤用的“陷阱”,并從逐步的問題解決中演化出方案、總結(jié)出應(yīng)對(duì)規(guī)則。
目標(biāo)收益
課程中的理論和經(jīng)驗(yàn)來自于對(duì)大量開發(fā)人員常犯錯(cuò)誤與所遇問題的歸納、分析與總結(jié)。并有針對(duì)性的給出解決方法。學(xué)員經(jīng)過課程已經(jīng)可以充分理解在特定的場(chǎng)景下如何提升代碼的質(zhì)量,并可以根據(jù)課程中總結(jié)的規(guī)則,對(duì)自己的代碼進(jìn)行檢查,以培養(yǎng)良好的編碼風(fēng)格,和嚴(yán)謹(jǐn)?shù)木幋a習(xí)慣。
培訓(xùn)對(duì)象
各類IT/軟件企業(yè)和研發(fā)機(jī)構(gòu)的軟件設(shè)計(jì)師、程序員。對(duì)于對(duì)自己的代碼不自信,常常被Bug折磨的人非常有效。
課程大綱
編寫高質(zhì)量C代碼 (3~4小時(shí)) |
內(nèi)容一:什么樣的代碼是高質(zhì)量的代碼 1.理解高質(zhì)量代碼需要考慮的各種因素 2.嘗試結(jié)合各種因素編寫一個(gè)高質(zhì)量的strcpy() 3.這樣的strcpy()可能會(huì)遇到什么樣的問題 4.該如何一步步解決這些問題 內(nèi)容二:利用現(xiàn)有工具提升代碼的品質(zhì) 1.如何保證參數(shù)的合法性 2.如何提高程序的健壯性 3.如何優(yōu)化代碼,減少冗余邏輯 內(nèi)容三:如何確保代碼的安全性 1.什么樣的代碼會(huì)有安全問題 2.安全問題可能造成的危害 3.什么是緩沖區(qū)溢出,原理是什么 4.如何避免/應(yīng)對(duì)緩沖區(qū)溢出 內(nèi)容四:如何檢查/避免代碼中的內(nèi)存泄露 1.內(nèi)存泄露該如何檢查 2.應(yīng)對(duì)內(nèi)存泄露的方法 3.權(quán)衡,內(nèi)存泄露時(shí)應(yīng)該考慮的對(duì)策 內(nèi)容五:雜項(xiàng) 1. 高階參數(shù)檢查 2. 局部變量不初始化的危害 |
編寫高質(zhì)量C++代碼(3~4小時(shí)) |
內(nèi)容六:將代碼從C過渡到C++ 1.C++中高質(zhì)量代碼需要考慮的問題 2.C++中的內(nèi)存泄露與C中的區(qū)別 3.如何在C++中防止數(shù)組形式的內(nèi)存泄露 內(nèi)容七:C++字符串類中鮮為人知的秘密 1. 為什么有時(shí)候需要重載拷貝構(gòu)造函數(shù)/賦值運(yùn)算符 2. 該怎么確定賦值運(yùn)算符的返回類型 3. 為什么要檢查自賦值的情況 4. 避免傳回C++類中的內(nèi)部handler 內(nèi)容八:高效C++語言,避免C++中的陷阱 1. 區(qū)別對(duì)待指針和引用 2. 為什么需要使用標(biāo)準(zhǔn)的轉(zhuǎn)型操作符 3. 不要以多態(tài)的形式處理數(shù)組 4. ++操作符的前后置區(qū)別 5. 內(nèi)存的分配與釋放機(jī)制 內(nèi)容九:如何正確的處理C++中的異常 1. 利用析構(gòu)函數(shù)避免資源泄露(智能指針) 2. 如何高效的拋出/捕獲異常 3. 為什么在構(gòu)造函數(shù)中阻止資源泄露 4. 為什么在析構(gòu)函數(shù)中要阻止異常流出 |
編寫高質(zhì)量C代碼 (3~4小時(shí)) 內(nèi)容一:什么樣的代碼是高質(zhì)量的代碼 1.理解高質(zhì)量代碼需要考慮的各種因素 2.嘗試結(jié)合各種因素編寫一個(gè)高質(zhì)量的strcpy() 3.這樣的strcpy()可能會(huì)遇到什么樣的問題 4.該如何一步步解決這些問題 內(nèi)容二:利用現(xiàn)有工具提升代碼的品質(zhì) 1.如何保證參數(shù)的合法性 2.如何提高程序的健壯性 3.如何優(yōu)化代碼,減少冗余邏輯 內(nèi)容三:如何確保代碼的安全性 1.什么樣的代碼會(huì)有安全問題 2.安全問題可能造成的危害 3.什么是緩沖區(qū)溢出,原理是什么 4.如何避免/應(yīng)對(duì)緩沖區(qū)溢出 內(nèi)容四:如何檢查/避免代碼中的內(nèi)存泄露 1.內(nèi)存泄露該如何檢查 2.應(yīng)對(duì)內(nèi)存泄露的方法 3.權(quán)衡,內(nèi)存泄露時(shí)應(yīng)該考慮的對(duì)策 內(nèi)容五:雜項(xiàng) 1. 高階參數(shù)檢查 2. 局部變量不初始化的危害 |
編寫高質(zhì)量C++代碼(3~4小時(shí)) 內(nèi)容六:將代碼從C過渡到C++ 1.C++中高質(zhì)量代碼需要考慮的問題 2.C++中的內(nèi)存泄露與C中的區(qū)別 3.如何在C++中防止數(shù)組形式的內(nèi)存泄露 內(nèi)容七:C++字符串類中鮮為人知的秘密 1. 為什么有時(shí)候需要重載拷貝構(gòu)造函數(shù)/賦值運(yùn)算符 2. 該怎么確定賦值運(yùn)算符的返回類型 3. 為什么要檢查自賦值的情況 4. 避免傳回C++類中的內(nèi)部handler 內(nèi)容八:高效C++語言,避免C++中的陷阱 1. 區(qū)別對(duì)待指針和引用 2. 為什么需要使用標(biāo)準(zhǔn)的轉(zhuǎn)型操作符 3. 不要以多態(tài)的形式處理數(shù)組 4. ++操作符的前后置區(qū)別 5. 內(nèi)存的分配與釋放機(jī)制 內(nèi)容九:如何正確的處理C++中的異常 1. 利用析構(gòu)函數(shù)避免資源泄露(智能指針) 2. 如何高效的拋出/捕獲異常 3. 為什么在構(gòu)造函數(shù)中阻止資源泄露 4. 為什么在析構(gòu)函數(shù)中要阻止異常流出 |