01代碼整潔之道3天版課件_第1頁(yè)
01代碼整潔之道3天版課件_第2頁(yè)
01代碼整潔之道3天版課件_第3頁(yè)
01代碼整潔之道3天版課件_第4頁(yè)
01代碼整潔之道3天版課件_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

CleanCode代碼整潔之道一、為什么需要該課程軟件質(zhì)量不但依賴于架構(gòu)設(shè)計(jì)以及項(xiàng)目管理而且與代碼質(zhì)量緊密相關(guān)這一點(diǎn)無(wú)論你使用什么開發(fā)技術(shù)都不得不承認(rèn)代碼是程序員溝通最直接的手段,代碼是技術(shù)交流的手段,代碼是需求交流的途徑。重視代碼,回歸本源,曾經(jīng)我們遠(yuǎn)離代碼,談架構(gòu)設(shè)計(jì),談UM開發(fā)流程。如今我們落地找回軟件的本源,徹徹底底看清代碼、深入思考代碼。那些一流的研發(fā)中心非常重視代碼,Face典的Codewinsgumen碼贏得爭(zhēng)論在Faceboder占50對(duì)代碼質(zhì)量負(fù)有一定責(zé)任甚至代碼質(zhì)量高于一切FacebookCodere是重點(diǎn)K核的對(duì)象,實(shí)行連坐制,如果因?yàn)榇a質(zhì)量問(wèn)題,那么產(chǎn)生的K任包括領(lǐng)導(dǎo)3%、程序員5%、審核人員2%。但是我們的管理者經(jīng)常聽到開發(fā)人員這樣抱怨“不能再增加功能了!我們得停下來(lái)重寫代碼。軟件代碼一團(tuán)糟,就像紙糊的老虎,根本應(yīng)付不了持續(xù)增加的用戶需求。我們實(shí)在維護(hù)不下去了!最好推倒重寫吧”這一幕在很多公司上演過(guò),現(xiàn)在依然在不斷重演。一旦公司陷入這種困境,以前版本的開發(fā)者往往淪為替罪羊。新的開發(fā)者一般就會(huì)罵前人怎么寫這么爛的代碼。他們準(zhǔn)備推倒重來(lái),準(zhǔn)備重寫系統(tǒng)。在重寫代碼的過(guò)程中,用戶無(wú)法看到產(chǎn)品的任何改進(jìn)。你可能認(rèn)為重寫代碼至多也就幾個(gè)月,但是實(shí)際花費(fèi)的時(shí)間無(wú)一例外要多得多。你只能坐在一旁,眼睜睜看著用戶投奔競(jìng)爭(zhēng)對(duì)手,而這個(gè)時(shí)候,競(jìng)爭(zhēng)對(duì)手恰恰在不斷地改進(jìn)產(chǎn)品。。最開始,團(tuán)隊(duì)會(huì)編寫代碼,做出產(chǎn)品,并用它來(lái)賺錢,但是,之后團(tuán)隊(duì)?wèi)?yīng)該盡可能地尋找減少代碼的方法和使代碼盡量整潔,從而降低成本。軟件界有一個(gè)真理,你擁有的代碼越多,維護(hù)代碼所要付出的成本就越高。如果你的代碼結(jié)構(gòu)越好,你做了越多的單元測(cè)試,你的代碼質(zhì)量越好、越小、耦合越松,那么添加新代碼所需要付出的成本就越少因此大師Craigan好維護(hù)的代碼就是沒有代碼,好的程序員的代碼產(chǎn)量是負(fù)的,因?yàn)樗ㄟ^(guò)減少代碼來(lái)增加功能對(duì)比現(xiàn)實(shí)中,很多人以為L(zhǎng)OC(linefcode的fea寫L越多的程序員越牛。這其實(shí)是極其錯(cuò)誤的觀念.因此我們必須有全面的管理制度讓我們保持代碼少而整潔。所以Michael道如何有策略地刪除代碼的公司。持有代碼的成本要比我們想象的大意識(shí)到這一點(diǎn)的公司更具有競(jìng)爭(zhēng)優(yōu)勢(shì)。1為了切實(shí)幫助軟件企業(yè)降低企業(yè)項(xiàng)目開發(fā)成本,大面積提高軟件工程師編程能力和代碼質(zhì)量管理能力我們特別推出實(shí)戰(zhàn)訓(xùn)練營(yíng)分享多家大型研發(fā)中心代碼管理經(jīng)驗(yàn)給大家.該課程適應(yīng)于各個(gè)階段的技術(shù)人員初級(jí)工程師能夠透過(guò)大師的眼睛來(lái)看待編程了解編程的價(jià)值觀和原則具有豐富經(jīng)驗(yàn)的設(shè)計(jì)師和架構(gòu)師可以通過(guò)實(shí)現(xiàn)模式進(jìn)行反思探究成功實(shí)踐背后的意義把價(jià)值觀原則和開發(fā)實(shí)踐結(jié)合管理者通過(guò)學(xué)習(xí)業(yè)界著名研發(fā)中心的管理經(jīng)驗(yàn)和失敗的教訓(xùn)來(lái)制定自己公司的代碼管理策略質(zhì)量管理相關(guān)人員學(xué)習(xí)如何定制代碼質(zhì)量指標(biāo),通過(guò)哪些工具進(jìn)行監(jiān)控,怎樣管理代碼質(zhì)量。二、誰(shuí)已經(jīng)選擇了我們的咨詢和培訓(xùn)我們已經(jīng)為幾十家企業(yè)提供了多次培訓(xùn)和咨詢服務(wù),以下企業(yè)已經(jīng)選擇了我們的內(nèi)訓(xùn)課程互聯(lián)網(wǎng)研發(fā)企業(yè)比如百度研發(fā)中心次阿里巴巴次騰訊暢唐科技獵豹移動(dòng)原金山移動(dòng))電信研發(fā)企業(yè),比如思科研發(fā)中心5次,阿爾卡特朗訊研發(fā)中心,華為研發(fā)中心,摩托羅拉研發(fā)中心次,大唐電信研發(fā)次,廣州從興電子,億陽(yáng)通信次,愛立信研發(fā)中心次,鼎橋通信技術(shù)次艾默生深圳研發(fā)中心次南京中興通信廣電行業(yè):廣州誠(chéng)毅科技研發(fā)中心,企業(yè)軟件研發(fā)企業(yè),比如Ado國(guó)研發(fā)中心,北京久其研發(fā)中心,博古中國(guó)研發(fā)中心,金蝶深圳研發(fā)中心EM中國(guó)研發(fā)中心北京和上海),嵌入式軟件企業(yè),比如阿爾卑斯中國(guó)研發(fā)中心,德國(guó)M&MSofware西門子研發(fā)中心,So發(fā)中心,金立智能研究院,南車研發(fā)中心,德塞西威,霍尼韋爾研發(fā)中心東芝中國(guó)研發(fā)中心匯川科技,外包類企業(yè),聯(lián)盟計(jì)算機(jī)服務(wù)(天津)有限公司ACS。金融行業(yè)恒生電子華騰中國(guó)人民銀行研發(fā)中心工商行研發(fā)中心,平安科技研發(fā)中心建行研發(fā)中心深圳登記結(jié)算研發(fā)中心花旗銀行中國(guó)研發(fā)中心我們已經(jīng)為幾十期公開課,已經(jīng)有100多家企業(yè)已經(jīng)選擇了我們的公開課程騰(深圳有限公司,EM中國(guó)研發(fā)中心華為終端有限公司、斯倫貝謝技術(shù)通用電氣醫(yī)療系(中國(guó)有限公司華為技術(shù)有限公司,2廣州從興電子開發(fā)有限公司福建星網(wǎng)銳捷股份有限公司廣州菲特網(wǎng)絡(luò)科技有限公司盛立金(杭州軟件公司索尼中國(guó)研發(fā)中心,愛德萬(wàn)上海金慧軟件有限公司珠海世紀(jì)鼎利通信科技股份蘭吉爾儀表系統(tǒng)有限公司珠海飛企軟件有限公司廣東佳和通信技術(shù)有限公司,珠海一多監(jiān)測(cè)科技有限公司,遠(yuǎn)光軟件股份有限公司三、你可以參加嗎?各類軟件企業(yè)和研發(fā)中心的程序員、軟件設(shè)計(jì)師、架構(gòu)師項(xiàng)目經(jīng)理質(zhì)量部門員工。如果你不重視代碼質(zhì)量請(qǐng)不要參加本課程面向重視代碼質(zhì)量的管理者.如果你不認(rèn)為寫好代碼是一件重要困難并且有趣的事情請(qǐng)你不要參加.本課程面向追求卓越的程序員我們認(rèn)為編程是一種態(tài)度.如果你已經(jīng)多年不寫代碼最好不要參加本課程面向一線還在編程的程序員設(shè)計(jì)師架構(gòu)師四、你的角色和收獲課程根據(jù)著名編程大師的理論:編程是一種態(tài)度,編程是一種技藝,編程是一種習(xí)慣。面向以下不同的人群,有不同收獲。角色技術(shù)負(fù)責(zé)人技術(shù)總監(jiān)項(xiàng)目經(jīng)理項(xiàng)目管理人員架構(gòu)師/測(cè)試部門質(zhì)量管理部門

收獲了解業(yè)內(nèi)先進(jìn)的代碼審查的形式、技術(shù)、技巧和流程的成功經(jīng)驗(yàn),優(yōu)化現(xiàn)有開發(fā)中心代碼審核方法;掌握業(yè)內(nèi)成熟的自動(dòng)化審核審查工具及方法,提升開發(fā)人員在代碼結(jié)構(gòu)分析、代碼質(zhì)量度量、代碼覆蓋率分析等方面的能力,并有效運(yùn)用到項(xiàng)目研發(fā)工作中。學(xué)習(xí)其他研發(fā)機(jī)構(gòu)的代碼管理思想代碼管理手段代碼管理相關(guān)流程和相關(guān)工具代碼監(jiān)控代碼審查代碼檢查列表代碼管理手段代碼管理制度的建立3資深開發(fā)人員一般開發(fā)人員

掌握代碼編碼規(guī)范、代碼評(píng)審要點(diǎn)等知識(shí),引導(dǎo)開發(fā)人員養(yǎng)成正確的代碼編寫習(xí)慣;編程技藝和相關(guān)編程實(shí)踐重構(gòu)手段編程技藝和相關(guān)編程實(shí)踐重構(gòu)手段代碼壞味道五課程內(nèi)容安(該內(nèi)容為3天版本實(shí)際課程根據(jù)課前溝通進(jìn)行定制)第一篇:編程是一種態(tài)度-----價(jià)值觀主題 培訓(xùn)內(nèi)容 備注第1單元代碼內(nèi)容一:代碼是債務(wù)就是債務(wù) 1.代碼認(rèn)識(shí)是務(wù).務(wù)好.越高.通過(guò)讓能:5.通過(guò)國(guó)際研發(fā)中心電信計(jì)費(fèi)系統(tǒng)演示代碼是債務(wù)的思想10多年國(guó)外研發(fā)團(tuán)隊(duì)設(shè)計(jì)與研發(fā)第一版本目前幾百人在維護(hù)通過(guò)項(xiàng)目演示通過(guò)重構(gòu)如何減少了一半的代碼維的人的少失咎的糕需而敗還少數(shù)因理們?cè)?,所魁碼?大叔堅(jiān)信糟糕的代碼所帶來(lái)的成本之大足夠讓一個(gè)項(xiàng)失敗。內(nèi)容二軟件界要以新視角看待代碼1.的的識(shí).碼碼行為.往為.溫為必代碼.軟件設(shè)計(jì)與代碼的關(guān)系—真正好的設(shè)計(jì)是在編碼階段一步而,代碼行演化46.編程真的是簡(jiǎn)單的勞動(dòng)嗎?.種誤解,我們提出了從3種新角度來(lái)觀察代碼,a) 從管理者的角度我們僅僅觀察代碼的運(yùn)行時(shí)行為導(dǎo)致代碼的靜態(tài)結(jié)構(gòu)混亂的根源就代碼的冰山原理,大量垃圾代碼隱藏在冰山之下。b) 設(shè)計(jì)師的角度認(rèn)為只要有好的設(shè)計(jì)軟件質(zhì)量就可以保證其實(shí)我們認(rèn)為代碼是真正唯一可以精確描述的設(shè)計(jì)文檔。c) 程序員的視角編程真的很難通過(guò)某一個(gè)項(xiàng)目案例分析,20多人一周的工作量就為幾行代碼問(wèn)題第2單元編程價(jià)內(nèi)容一:編程價(jià)值觀值觀 1.編程學(xué).什么是好的我為Goodcodeisnotbadcode!”3.編程價(jià)值觀通,單活.價(jià)觀行為.優(yōu)秀代碼的評(píng)價(jià)標(biāo)準(zhǔn),什么是高質(zhì)量編碼?特征是什?6.代性.代的展性.糟代特征.劣代代價(jià).大師代準(zhǔn)11.碼識(shí)第二篇:編程是一種技藝-----實(shí)踐篇第3單元高質(zhì)量?jī)?nèi)容一:高質(zhì)量函過(guò)程函數(shù)(該內(nèi)容較多,根據(jù)實(shí)際情況調(diào)整)

1.為么函數(shù).函復(fù)度量.雜量.函數(shù)抽象層次單一抽象層次原則SLP(ileLevelfn).函實(shí)式—數(shù)(oodMh)6.萬(wàn)惡之源數(shù)長(zhǎng).函的職責(zé).函數(shù)第一原則:是要短小,函數(shù)第二原則:是還要短小,函數(shù)第則小.函數(shù)重構(gòu)之道—抽取方法(ExtractMethod象數(shù).函名函名11.通過(guò)大量項(xiàng)目代碼分析,函數(shù)的遇到的各種問(wèn)題,如何5編程高質(zhì)量函數(shù)內(nèi)容二:函數(shù)易理解與溝通1.函數(shù)體流2.函的處理.函數(shù)主題流法1手法.助的場(chǎng)景.助方效果.函數(shù)主題流法2數(shù)對(duì)象MetodObec)7.性活展--接縫. 歷史遺留代碼維護(hù)問(wèn)題. 某電信研發(fā)中心的維護(hù)問(wèn)題—率問(wèn)。. 增加一個(gè)功能特性的成本并不單單是為這些功能編所費(fèi)間本包障成。. 代碼的可維護(hù)成本分析通析a) 要分難) 有少c) 其大. 如何實(shí)現(xiàn)代碼的易擴(kuò)展函接縫. 接縫(seam,指程序中的一些特殊的點(diǎn),在這些點(diǎn)上你無(wú)需做任何修改就可以達(dá)到改動(dòng)程序行為的目的7. 通過(guò)案例分析,如何實(shí)現(xiàn)函數(shù)的靈活擴(kuò)展。內(nèi)容四:函數(shù)參數(shù)1.函數(shù)長(zhǎng).最理想的參數(shù)數(shù)量是零,其次是一,再次是二,有足夠的理由才能使用三個(gè)以上參數(shù)..函數(shù)參數(shù)重構(gòu)之道-引入?yún)?shù)對(duì)象(introduceperobjct4.函參順..要當(dāng)量量.數(shù)式-cltgpamtr7.函數(shù)回值8.通過(guò)大量項(xiàng)目代碼是函數(shù)參數(shù)問(wèn)題9.演示函參數(shù)的重構(gòu)內(nèi)容五:變量1. 了計(jì)用了設(shè)”Da. 什需變—變理由. 變途. 變與方法65. 變作用域6. 初化7. 析,函數(shù)的變量如何處理與控制。內(nèi)容六:函數(shù)代碼重復(fù)1.重復(fù)危害2.強(qiáng)加的重復(fù)/無(wú)意重復(fù)/無(wú)耐心的重復(fù)/發(fā)者之的重復(fù)3.不要己—ttfe.MakeIttoReuse).魔法數(shù)(Mcm).重復(fù)代碼(ld).接口不同的相似類(eClassswhDtItefce)8.系分注點(diǎn).統(tǒng)通件10.通過(guò)某項(xiàng)目代碼是介紹重復(fù)編碼問(wèn)題11.演示研發(fā)過(guò)程之中的常見重復(fù)問(wèn)題及如何解決內(nèi)容七:條件表達(dá)式1.表化.E該寫.Swic/ase寫.表害.過(guò)分深層的縮進(jìn),或者“嵌套,已經(jīng)困擾了計(jì)算機(jī)界達(dá)25罪魁首之一6.復(fù)雜表達(dá)式重構(gòu)之道—引入解釋變量/分解條件/抽取計(jì)件.表驅(qū)動(dòng)法嵌套IF句然道.動(dòng)則.險(xiǎn)用析10.通過(guò)大量項(xiàng)目代碼演示條件表達(dá)式編碼問(wèn)題11.復(fù)雜表達(dá)式的注意事項(xiàng)何解決內(nèi)容八:利用多態(tài)解決復(fù)雜表達(dá)式1.面向?qū)ο蠖鄳B(tài)技術(shù)的新認(rèn)識(shí).減少使用if句,態(tài).以代類型代碼4.引入NullObjct5.以Cod替序.轉(zhuǎn)移聚集操到r.到Der8.通過(guò)大量項(xiàng)目代碼演示多態(tài)可以解決的編程問(wèn)題7內(nèi)容九:函數(shù)組織1.構(gòu)維性來(lái)響。.把函分”.選擇一個(gè)有它.該組只事情.織嵌應(yīng)疊.系統(tǒng)應(yīng)該由許多短小的函數(shù)而不是少量巨大的大函組!.系統(tǒng)應(yīng)該由許多短小的類而不是少量巨大的大類組成!8.雜只點(diǎn)其。.必。重點(diǎn)是要降低你需要在頭腦中同時(shí)考慮的項(xiàng)目的數(shù)程。10.通過(guò)大量真實(shí)案例的代碼進(jìn)行分析函數(shù)的代碼的組織技術(shù)內(nèi)容十:函數(shù)的錯(cuò)誤處理和異常管理1.函的處理.使而回碼.依賴磁鐵(Dependenymaet)4.主體流體.異常流主體的表達(dá)6.標(biāo)準(zhǔn)的異常理9種法.通過(guò)大量真實(shí)案例的代碼進(jìn)行分析函數(shù)的錯(cuò)誤處理和異常處理第三篇:編程是一種習(xí)慣-----管理篇第4單元

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論