版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件詳細(xì)設(shè)計(jì)-內(nèi)訓(xùn)2目錄1.上節(jié)回顧2.優(yōu)秀軟件設(shè)計(jì)過(guò)程3.高質(zhì)量軟件設(shè)計(jì)4.壞味道-重構(gòu)5.推薦書(shū)籍1.1什么是好的軟件設(shè)計(jì)?中體彩科技發(fā)展有限公司 |1.2現(xiàn)狀-噩夢(mèng)迷途軟件作用越來(lái)越小結(jié)構(gòu)越來(lái)越復(fù)雜維護(hù)成本高維護(hù)難度大1.3改變-設(shè)計(jì)師的技藝高質(zhì)量設(shè)計(jì)預(yù)先設(shè)計(jì)重構(gòu)到優(yōu)秀臨摹學(xué)習(xí)1.4壞味道-重構(gòu)整潔的代碼代碼壞味道重構(gòu)的時(shí)機(jī)重構(gòu)的著手點(diǎn)代碼的壞味道!優(yōu)秀軟件設(shè)計(jì)過(guò)程優(yōu)秀設(shè)計(jì)的簡(jiǎn)易三步驟1:讓你的軟件做客戶要他做的事情2:運(yùn)用基本的設(shè)計(jì)原則/模式來(lái)增加軟件靈活性3:努力實(shí)現(xiàn)可維護(hù)、可重用的設(shè)計(jì)優(yōu)秀軟件設(shè)計(jì)過(guò)程設(shè)計(jì)原則KISS原則Keep It Simple and Stupid 簡(jiǎn)單的設(shè)計(jì)
2、使得軟件產(chǎn)品易于開(kāi)發(fā),易于維護(hù)軟件有兩種方式。一種是設(shè)計(jì)得盡量簡(jiǎn)單,并且明顯沒(méi)有缺陷。另一種方式是設(shè)計(jì)得盡量復(fù)雜,并且沒(méi)有明顯缺陷優(yōu)秀軟件設(shè)計(jì)過(guò)程KISS原則考慮能夠工作的最簡(jiǎn)單的事情選擇一種我們能夠?qū)嶋H得到的、最簡(jiǎn)單的解決方案你將不需要他只有在有證據(jù),或者有十分明顯的跡象表明引入新的基礎(chǔ)結(jié)構(gòu)比現(xiàn)有軟件更合算時(shí),才引入這些基礎(chǔ)結(jié)構(gòu)一次,并且只有一次無(wú)論哪里發(fā)現(xiàn)的重復(fù)代碼,都要消除他們以上原則來(lái)源于極限編程理論優(yōu)秀軟件設(shè)計(jì)過(guò)程設(shè)計(jì)原則面向?qū)ο笤O(shè)計(jì)原則Solid原則單一職責(zé)原則(SRP)變化分離,即對(duì)一個(gè)類(lèi)而言,應(yīng)該僅有一個(gè)引起它變化的原因“開(kāi)-閉”原則(OCP)對(duì)可變性封裝,軟件應(yīng)該是可以擴(kuò)展的
3、,但是不可修改的里氏替換原則(LSP)如何進(jìn)行繼承,即子類(lèi)型必須能夠替換掉他們的基類(lèi)型接口隔離原則(ISP)恰當(dāng)?shù)膭澐纸巧徒涌谝蕾嚨怪迷瓌t(DIP)針對(duì)接口編程,抽象不應(yīng)該依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象優(yōu)秀軟件設(shè)計(jì)過(guò)程設(shè)計(jì)原則GRASP通用職責(zé)分配軟件模式(General Responsibility Software Patterns)創(chuàng)建者信息專(zhuān)家低耦合控制器高內(nèi)聚多態(tài)性純虛構(gòu)間接性防止變異優(yōu)秀軟件設(shè)計(jì)過(guò)程設(shè)計(jì)模式工廠模式單例模式策略模式模版方法裝飾模式迭代器模式 優(yōu)秀軟件設(shè)計(jì)過(guò)程設(shè)計(jì)模式的價(jià)值有經(jīng)驗(yàn)的面向?qū)ο笤O(shè)計(jì)者的確能做出良好的設(shè)計(jì),而新手則面對(duì)眾多選擇無(wú)從下手,這又是為什么呢有經(jīng)驗(yàn)
4、的設(shè)計(jì)者知道:不是解決任何問(wèn)題都要從頭做起。他們更愿意復(fù)用以前使用過(guò)的解決方案。當(dāng)找到一個(gè)好的解決方案,他們會(huì)一遍又一遍地使用優(yōu)秀軟件設(shè)計(jì)過(guò)程重構(gòu)何謂重構(gòu)(名詞)對(duì)軟件內(nèi)部結(jié)構(gòu)的一種調(diào)整,目的是在不改變軟件可觀察行為的前提下,提高其可理解性,降低其修改成本(動(dòng)詞)使用一系列重構(gòu)手法,在不改變軟件可觀察行為的前提下,調(diào)整其機(jī)構(gòu)優(yōu)秀軟件設(shè)計(jì)過(guò)程重構(gòu)為何重構(gòu)改進(jìn)軟件設(shè)計(jì)使軟件更容易理解幫助找到bug提高編程速度優(yōu)秀軟件設(shè)計(jì)過(guò)程重構(gòu)何時(shí)重構(gòu)三次法則事不過(guò)三,當(dāng)?shù)谌纬霈F(xiàn)相同或類(lèi)似的事情時(shí),重構(gòu)添加功能時(shí)重構(gòu)原有的設(shè)計(jì)無(wú)法輕松添加特性時(shí),重構(gòu)修補(bǔ)錯(cuò)誤時(shí)重構(gòu)如果代碼有錯(cuò)誤,而無(wú)法方便找到時(shí),重構(gòu)復(fù)審代碼時(shí)
5、重構(gòu)代碼不容易被別人理解時(shí),重構(gòu)優(yōu)秀軟件設(shè)計(jì)過(guò)程重構(gòu)重構(gòu)與模式重構(gòu)與設(shè)計(jì)重構(gòu)與性能優(yōu)秀軟件設(shè)計(jì)過(guò)程重構(gòu)代碼的壞味道重復(fù)代碼過(guò)長(zhǎng)函數(shù)過(guò)大的類(lèi)過(guò)長(zhǎng)的參數(shù)列發(fā)散式變化過(guò)多的注釋Switch夸夸其談未來(lái)性10.11.12.13.14.優(yōu)秀軟件設(shè)計(jì)過(guò)程重構(gòu)重構(gòu)方法提煉函數(shù)搬移函數(shù)搬移值域以多態(tài)取代條件語(yǔ)句將查詢函數(shù)和修改函數(shù)分離提煉超類(lèi)/子類(lèi)/接口以子類(lèi)取代型別碼以委托取代繼承其他重構(gòu)案例需求: 這是一個(gè)影片出租店的程序,計(jì)算每一位顧客的消費(fèi)金額并打印報(bào)表,操作者告訴程序:顧客租了哪些影片、租期多長(zhǎng),程序便根據(jù)租賃時(shí)間和影片類(lèi)型算出費(fèi)用。影片分為三類(lèi):普通片、兒童片和新片,除了計(jì)算費(fèi)用,還要為??陀?jì)算點(diǎn)
6、數(shù),點(diǎn)數(shù)會(huì)隨著【租片種類(lèi)是否為新片】而有不同。重構(gòu)案例評(píng)價(jià)新的需求客戶希望以HTML格式打印報(bào)表一般做法:編寫(xiě)全新的打印方法,大量重復(fù)原有打印代碼問(wèn)題:大量代碼重復(fù),不能服用計(jì)費(fèi)標(biāo)準(zhǔn)發(fā)生變化一般做法:同時(shí)修改兩個(gè)打印方法問(wèn)題:兩個(gè)方法修改內(nèi)容一樣,復(fù)制/粘貼造成潛在的威脅客戶希望改變影片分類(lèi)規(guī)則(還不知道怎么改)一般做法:修改影片類(lèi),增加影片類(lèi)型,在打印報(bào)表時(shí)增加判斷邏輯問(wèn)題:一點(diǎn)變化引起多處修改重構(gòu)案例分解并重組statement()搬移金額計(jì)算代碼提煉常客積分代碼去除臨時(shí)變量運(yùn)用多態(tài)取代與價(jià)格相關(guān)的條件邏輯高質(zhì)量軟件設(shè)計(jì)系統(tǒng)質(zhì)量屬性1:運(yùn)行時(shí)期的質(zhì)量屬性性能安全性易用性持續(xù)可用性互操作性可靠性2:開(kāi)發(fā)時(shí)期的質(zhì)量屬性易理解性可擴(kuò)展性可重用性可測(cè)試性可維護(hù)性可移植性高質(zhì)量軟件設(shè)計(jì)可用性策略錯(cuò)誤檢測(cè)命令/響應(yīng)心跳異常處理錯(cuò)
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年金剛石膜工具項(xiàng)目發(fā)展計(jì)劃
- 加工模具保密協(xié)議(2024版)
- 四年級(jí)數(shù)學(xué)(四則混合運(yùn)算)計(jì)算題專(zhuān)項(xiàng)練習(xí)與答案匯編
- 美金購(gòu)銷(xiāo)合同范本
- 2024年地質(zhì)勘探和地震專(zhuān)用儀器項(xiàng)目合作計(jì)劃書(shū)
- 2024年紫外光固化油墨項(xiàng)目合作計(jì)劃書(shū)
- 郵品代銷(xiāo)合同范本
- 幼兒園小班音樂(lè)《可愛(ài)的小螞蟻》教案
- 電爐維修合同范本
- 鹽城工學(xué)院《常微分方程》2021-2022學(xué)年第一學(xué)期期末試卷
- 中藥項(xiàng)目投資合同范例
- 2024年秋新人教版7年級(jí)上冊(cè)語(yǔ)文教學(xué)課件 第5單元19《大雁歸來(lái)》
- 2024-2025學(xué)年上海市普陀區(qū)八年級(jí)(上)期中數(shù)學(xué)試卷
- 假期補(bǔ)課協(xié)議書(shū)
- 電子商務(wù)支付結(jié)算系統(tǒng)開(kāi)發(fā)合同
- 服務(wù)質(zhì)量、保證措施
- (必練)廣東省軍隊(duì)文職(經(jīng)濟(jì)學(xué))近年考試真題試題庫(kù)(含答案)
- 含羞草天氣課件
- 2024年安全生產(chǎn)知識(shí)競(jìng)賽考試題庫(kù)及答案(共五套)
- 22《鳥(niǎo)的天堂》課件
- 農(nóng)業(yè)灌溉裝置市場(chǎng)環(huán)境與對(duì)策分析
評(píng)論
0/150
提交評(píng)論