C++--浅谈开发系统的经验
最近寫了不少類了,從垃圾代碼爬坑,雖然還是很垃圾,但是照葫蘆畫瓢,有幾分神韻。在這里總結(jié)一下,寫類的經(jīng)驗(yàn)教訓(xùn)。
第一步 分析:
當(dāng)拿到一個(gè)要求時(shí),要先去考慮怎樣一個(gè)類到底該實(shí)現(xiàn)什么樣的功能,有什么樣的數(shù)據(jù),簡而言之,就是分析。該用什么方式組織數(shù)據(jù),達(dá)到解決一類問題的方式,在分析結(jié)束后腦子里會有一個(gè)大概的框架,在通過分析后將每個(gè)類的應(yīng)該有的數(shù)據(jù),與操作寫出來,這個(gè)時(shí)候不需要寫出具體實(shí)現(xiàn)方式,而是為后續(xù)寫類,搭建一個(gè)框架,分析時(shí)也要注意面向?qū)ο蠓庋b的特點(diǎn),一一定要注意數(shù)據(jù)與操作的分離,這樣讓每個(gè)類成為一種的獨(dú)立的類型,而不是數(shù)據(jù)操作混用,每個(gè)類都不能獨(dú)立的解決一些問題,這樣的代碼復(fù)用性差,所以還是按照老師講的數(shù)據(jù)類與操作類清晰的分離,到這里一個(gè)比較明確的思路就可以的出來。
第二步 補(bǔ)充操作使類完整
這一步,包括代碼的實(shí)現(xiàn)與調(diào)試,之前的時(shí)候?qū)懘a是一氣呵成,那時(shí)候還不太明白什么是寫一個(gè)功能調(diào)一個(gè)功能,指導(dǎo)有一次通訊錄管理系統(tǒng)最后跑不出來,也不報(bào)錯(cuò),但是就是不按自己想法出結(jié)果,于是,從頭開始往另一個(gè)CPP文件里粘代碼,一個(gè)函數(shù)一個(gè)函數(shù)的粘貼,這樣一個(gè)函數(shù)一個(gè)函數(shù)的調(diào)試,于是300行的代碼硬硬的調(diào)了快兩個(gè)小時(shí),才明白什么是寫一個(gè)功能調(diào)試一個(gè),不是寫完一整個(gè)程序調(diào)試一遍,也不是寫完一個(gè)類調(diào)一遍,這個(gè)功能就是對每一個(gè)要起到作用而函數(shù),進(jìn)行測試,可想而知要是1000行的代碼出現(xiàn)了問題,不是從頭開始寫一個(gè),調(diào)一個(gè)的話,要是找錯(cuò)誤的話,跟直接從新寫沒有太大區(qū)別。所以寫一個(gè)調(diào)試一個(gè),看似增加了寫代碼的時(shí)間,實(shí)際上是減少了調(diào)試代碼的時(shí)間,更重要的是降低調(diào)試代碼的復(fù)雜度。
應(yīng)該具備的素質(zhì)
面向?qū)ο缶幊?#xff0c;要注意封裝繼承多態(tài),寫出更具有通用性的代碼,提高代碼的復(fù)用率,就是減少重復(fù)代碼的出現(xiàn)次數(shù),比如圖書館管理系統(tǒng)的管理端與用戶端有著同樣的查詢操作,如果不采用繼承的方式寫,就會少寫很多代碼,既可以減少代碼的長度,又能使類更加明了,但是一般說上來就知道那兩個(gè)類可以繼承,是不太現(xiàn)實(shí)的,一般是當(dāng)?shù)谝徊客瓿珊?#xff0c;發(fā)現(xiàn)兩個(gè)類的功能有大量重疊,抽出重疊部分,形成一個(gè)基類,再由兩個(gè)類繼承。多態(tài)是為了提高類的封裝性,將一個(gè)接口通過動態(tài)的方式確定調(diào)用具體哪一項(xiàng)操作,應(yīng)用程序不必為每一個(gè)派生類編寫功能調(diào)用,只需要對抽象基類進(jìn)行處理即可。大大提高程序的可復(fù)用性。派生類的功能可以被基類的方法或引用變量所調(diào)用,這叫向后兼容,可以提高可擴(kuò)充性和可維護(hù)性。 所以熟練的使用虛函數(shù)使提高類的封裝性的方法。
我認(rèn)為就是根據(jù)不同的情況調(diào)用指向不同派生類的指針而使得可以調(diào)用不同的參數(shù),可以通過鍵盤上敲的值動態(tài)的確定要調(diào)用那個(gè)函數(shù)。
最后一點(diǎn)
作為一名程序monkey,寫出的代碼不只是給自己的看的,應(yīng)該讓別人也看懂,吃過的虧是寫代碼是每個(gè)成員變量是a,b,c不是上學(xué)期那么短的代碼,數(shù)據(jù)少,現(xiàn)在數(shù)據(jù)多,所以命名一定有意義,一來是讓別人看的懂,其次讓自己調(diào)代碼時(shí)也更加方便,然后是,寫代碼的時(shí)候,一定要類內(nèi)聲明,類外定義,寫一攤,不能明確看出到底有哪些函數(shù),有哪些功能,再根據(jù)函數(shù)、功能去找代碼,這樣更方便,與明了。
雖然,我們也沒學(xué)什么設(shè)計(jì)模式,軟件工程什么什么的,但是很多老師講了的知識就一定要會。上學(xué)期的時(shí)候Fls不讓寫注釋,上學(xué)期代碼短,一眼就看出來了,這學(xué)期開始時(shí)不寫注釋,寫出的代碼不盡人意,因?yàn)樗悸吠蝗痪椭袛嗔?#xff0c;這是干嘛的,什么作用什么功能?所以我覺得適當(dāng)?shù)拿髁说淖⑨寫?yīng)該是可以有的,目前水平還很低,這是自己接觸的第一門語言,估計(jì)這應(yīng)該是大學(xué)三年用的比較多的語言了,所以還要繼續(xù)努力。
總結(jié)
以上是生活随笔為你收集整理的C++--浅谈开发系统的经验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 风暖浴霸用几平方的线
- 下一篇: C++ 模板(template) 的定义