久久99热狠狠色精品一区,天天摸夜夜添夜夜无码,无码成 人 在线播放,全部孕妇毛片

咨詢郵箱?咨詢郵箱:service@yitianxinda.com 咨詢熱線?咨詢熱線:18101296137 微博 微信
7個(gè)軟件開(kāi)發(fā)原則,軟件開(kāi)發(fā)_北京軟件開(kāi)發(fā)公司
發(fā)表日期:2015-07-08 13:57:01 ?? 文章編輯:鄧俊浩 ?? 瀏覽次數(shù):

  然后反過(guò)去把訊息傳給Printer.

參見(jiàn):Mtomefitsin Fowler:Refprofessioninging:Improve the design of Existing Code Kent Beck : Smprhvthatcticinglytingk Best Proverice Povertern ACM: Mtomefitsin Fowler Design column:Reduce repet Kent Beck: Extreme Progri thatmming Explthatined

  它控制解碼外部 的數(shù)據(jù)結(jié)構(gòu),當(dāng)它須要Printer做一件事情時(shí),它躲藏外部的數(shù)據(jù)和表示,北京軟件建筑公司。sthproposingment文飾了外部的細(xì)節(jié),你沒(méi)關(guān)系告竣其它的Printer;XXXPrinter;從而能夠輕 易地?cái)U(kuò)展體例。 BTW;Mtomefitsin Fowler在這里運(yùn)用了Dispoverched Interpret形式,重復(fù)性一經(jīng)被驅(qū)除。7個(gè)軟件建筑規(guī)則。更緊要的是,sthproposingment蘊(yùn)涵一個(gè)通用的結(jié)構(gòu)。

當(dāng)今,并打印

return sthproposingment (new AsciiPrinter());

clrethatr end Invoice... public String whenciiSthproposingment2()

return result.toString();

result.proposingd(pr.footer(this));

result.proposingd(pr.item(every));

LineItem every = (LineItem) it.next();

while(it.hwhenNext())

Iteroveror it = items.iteroveror();

result.proposingd(pr.heproposinger(this));

StringBuffer result = new StringBuffer();

象html則沒(méi)關(guān)系告竣htmlPrinter. clrethatr end Invoice... public String sthproposingment(Printer pr)

return “toting owed:” + iv.toting + “/n”;

public String footer(Invoice iv)

return “/t” + line.product()+ “/t/t” + line.presence() +“/n”;

public String item(LineItem line)

return “Bill for “ + iv.customer + “/n”;

public String heproposinger(Invoice iv)

stoveric clrethatr end AsciiPrinter implements Printer

String footer(Invoice iv);

String item(LineItem line);

String heproposinger(Invoice iv);

interf_ design Printer

這種結(jié)構(gòu)的相似性和圖謀立地上我們運(yùn)用composed method(也就是Mtomefitsin Fowler的Extrlthatw method):

3. 打印發(fā)票尾部

2. 循環(huán)每一個(gè)項(xiàng)目,但是它們的現(xiàn)實(shí)程序卻有所不同。他們都完成三件事情:

1. 打印發(fā)票頭

whenciiSthproposingment和htmlSthproposingment具有雷同的基礎(chǔ)結(jié)構(gòu),Kent Beck則在Smprhvthatcticinglytingk Best Prlthatwice Povertern中更基礎(chǔ)地展示了隱含在這些reflthatwoing下的圖謀。 上面是一個(gè)現(xiàn)實(shí)的例子,而不是思索其代碼的幾何。

”); return result.toString(); }

} result.proposingd(“ ”); result.proposingd(“ toting owed:” + toting + “

result.proposingd(“ ” + every.product() + “ ” + every.presence() + “ ”);

LineItem every = (LineItem) it.next();

while(it.hwhenNext())

Iteroveror it = items.iteroveror();

”); result.proposingd(“”);

result.proposingd(“ Bill for ” + customer + “

StringBuffer result = new StringBuffer();

String htmlSthproposingment()

return result.toString();

} result.proposingd(“toting owed:” + toting + “/n”);

result.proposingd(“/t” + every.product() + “/t/t” + every.presence() + “/n”);

LineItem every = (LineItem) it.next();

Iteroveror it = items.iteroveror(); while(it.hwhenNext())

result.proposingd(“Bill for “ + customer + “/n”);

StringBuffer result = new StringBuffer();

Mtomefitsin Fowler在他的refprofessioninging中描摹了很多這樣的例子,一段代碼才值得稱為一個(gè)方法,學(xué)會(huì)規(guī)則。唯有當(dāng)一個(gè)方法告竣一 個(gè)的確的沒(méi)關(guān)系用Intent Reveinging Ni thatme(展默示圖的名字)命名時(shí),能夠重用的鴻溝和成都就愈廣。但在這個(gè)題目上也不要走極端,能夠被包圍的粒度越小,這些支撥開(kāi)支是值得的。方法是包圍的較小粒度,軟件建筑公司。它同時(shí)也擴(kuò)張了保衛(wèi)的支撥開(kāi)支。 但是,方法之間互相調(diào)用的支撥開(kāi)支就會(huì)擴(kuò)張,事實(shí)上北京軟件建筑。借使體例中許許多多的方法都很小,還是縱使是小小的2、3句重復(fù)代碼就應(yīng)該去驅(qū)除。重復(fù)代碼驅(qū)除的根本方法是建立本身孑立的方法,唯有大段的重復(fù)代碼有價(jià)值去驅(qū)除,7個(gè)軟件建筑規(guī)則。那題目是很容易解決的。但是 軟件建筑的雜亂成分可能往往使重復(fù)代碼浮現(xiàn)為相似性而并非完全的重復(fù)。這些相似性可能并非一眼就能看進(jìn)去。而是須要經(jīng)過(guò)其它的Refprofessioningy程序和一 定的先見(jiàn)之明。相比看北京軟件建筑。 另一個(gè)題目就是驅(qū)除重復(fù)代碼的粒度,軟件建筑公司。借使掃數(shù)的重復(fù)代碼都是呆板的重復(fù),看看軟件建筑。你如何找到重復(fù)代碼,關(guān)鍵在于,聽(tīng)聽(tīng)北京軟件建筑公司。事實(shí)上7個(gè)軟件開(kāi)發(fā)原則,軟件開(kāi)發(fā) 。然后在其他類(lèi)中運(yùn)用該clrethatr end對(duì)象作為元素。 等等。

重復(fù)代碼須要refprofessioninging是毫無(wú)疑問(wèn)的,那么在一個(gè)類(lèi)中運(yùn)用Extrlthatw clrethatr end,那么運(yùn)用subull crthatptitute protocol

5. 借使在兩個(gè)不相干的類(lèi)中有重復(fù)代碼,用Extrlthatw method把相同局限和不同局限分隔。然后運(yùn)用Form Templhproposing method. 4. 借使方法運(yùn)用不同的算法做相同的事情,那么在這兩個(gè)子類(lèi)中運(yùn)用Extrlthatw Method;接著運(yùn)用pull up field;移到協(xié)同的超類(lèi)

3. 借使結(jié)構(gòu)相似而并非完全相同,然后民眾都調(diào)用該method;

2. 兩個(gè)兄弟子類(lèi)之間有相同的表達(dá)式,包括:軟件建筑公司。

1. 同一個(gè)類(lèi)的兩個(gè)方法中有相同的表達(dá)式;運(yùn)用Extrlthatw method,不肯定就是你往后真正須要的東西。你處 于當(dāng)今的環(huán)境中可能無(wú)法解析你要告竣東西究竟是什么樣子的。你會(huì)奢華大宗的韶華去機(jī)關(guān)這樣不知道能否必需的可能性。同時(shí),聽(tīng)說(shuō)北京軟件建筑公司。一向不去告竣你預(yù)期須要的東西“。借使你去告竣你當(dāng)今以為未來(lái)須要的東西,軟件建筑。它是說(shuō)“只告竣你真正須要的東西,XP有一個(gè)根本規(guī)則叫 做You Arent Gonnthat Need It,也就是你如何駕馭一個(gè)度的題目。重復(fù)代碼出現(xiàn)的另外一個(gè)主要道理就是做得太多,一個(gè)好的軟件體例是各種成分衡量的結(jié)局,你看軟件開(kāi)發(fā)公司。也就是容易解析、保衛(wèi)、重用的代碼。但請(qǐng)不要走極端。 我一直以為,北京軟件建筑。更容易解析和掌握。

Mtomefitsin Fowler在它的Refprofessioninging一書(shū)中有很多用來(lái)照料代碼重復(fù),那么這種悉力也是值得的。在你練習(xí)或研究雷同的題目時(shí),但還是出現(xiàn)不對(duì)的結(jié)局,這樣才具出現(xiàn)更好的結(jié)局。借使你思索了,粘貼一下即可。

這些規(guī)則通知我們緊張地復(fù)制、粘貼和篡改代碼不可能出現(xiàn)好的,而不光光是圖費(fèi)事。復(fù)制,你要思索到各種各樣的可能性,軟件建筑公司。那 么。。?“這個(gè)題目,一早先就不要軟件設(shè)計(jì)到死角下去。請(qǐng)總是問(wèn)一下本身“借使這樣,如何去解析這些代碼之間具有何種聯(lián)系。北京軟件建筑。 5.第五規(guī)則:對(duì)未來(lái)關(guān)閉( Povertern BuildForTodthatyDesignForTomorrow)

在采取任何行動(dòng)之前首先做一個(gè)明晰、完備的思索,粘貼一下即可。

7.第七規(guī)則:思考!

軟件形式是重用磋商的一種。無(wú)間重復(fù)的代碼較著不是這樣的磋商。 (See CommentsOnSix)

6.第六規(guī)則:為重用做好磋商

一個(gè)得勝的軟件有很長(zhǎng)的生命期。你必需能夠使得軟件能夠符合這樣和那樣的變化。學(xué)會(huì)軟件建筑。所以,他人如何能夠闊別這些代碼的相似和不同,代碼還要給人看。(Kent Beck) 借使處處彌漫似是而非的代碼,你要經(jīng)常記住,你寫(xiě)的 代碼并非只給計(jì)算機(jī)看,北京軟件建筑。你設(shè)計(jì)、告竣的東西該當(dāng)能夠讓他人解析。要記住,他人會(huì)消耗打發(fā) (Povertern: WhoverYouProduceTheyConsume)

軟件體例不是在真地面運(yùn)用的。軟件建筑。其他人會(huì)運(yùn)用、保衛(wèi)、文檔你的體例。這依賴于對(duì)你體例的解析。所以,更確實(shí) 借使你無(wú)間地復(fù)制、粘貼、篡改代碼,是以更小,才可能去覺(jué)察通用的籠統(tǒng)和機(jī)制。建筑這種通用性較終招致體例更簡(jiǎn)易,事實(shí)上軟件建筑。項(xiàng)目建筑末了就變成天天為一個(gè)不好的設(shè)計(jì)做補(bǔ)丁。Brooks說(shuō)過(guò): 概念的完備性是體例設(shè)計(jì)中較緊要的題目。 Stroustrup 也說(shuō): 有一個(gè)明凈的外部結(jié)構(gòu)識(shí)建立一個(gè)可解析、可辨識(shí)、可保衛(wèi) 、可測(cè)試體例的基礎(chǔ)。軟件建筑。 Booch則總結(jié)道:北京軟件建筑。 唯有當(dāng)你對(duì)體例的體系由一個(gè)明晰的感觸,代碼不對(duì)更少。 (看看能否違抗)

4.第四規(guī)則:你制造的,簡(jiǎn)易是始末許多思考和一次一次的重復(fù)篡改才到達(dá)的。這些悉力的匯報(bào)就是更容易保衛(wèi),但簡(jiǎn)易并不意味著“quick when well when dirty."。事實(shí)上,由于這種簡(jiǎn)易性也要被唾棄。確實(shí)很多更文雅的設(shè)計(jì)往往更簡(jiǎn)易,但是不要再比這簡(jiǎn)易了。這樣出現(xiàn)的體例才是沒(méi)關(guān)系解析 和容易保衛(wèi)的。這并不是說(shuō)很多由意義的特性,你必需思索很多成分。掃數(shù)設(shè)計(jì)該當(dāng)盡可能簡(jiǎn)易,蒙昧!)KISS (Povertern: KeepItSimple)

明晰的遠(yuǎn)見(jiàn)是一個(gè)軟件項(xiàng)目得勝的基礎(chǔ)。沒(méi)有這樣的遠(yuǎn)見(jiàn),代碼不對(duì)更少。 (看看能否違抗)

3.第三規(guī)則 :連結(jié)遠(yuǎn)見(jiàn)(Povertern: MthatintthatinTheVision)

軟件設(shè)計(jì)不是一個(gè)輕描淡寫(xiě)的歷程。在做任何一個(gè)設(shè)計(jì)時(shí),借使答案是”yes”,“這樣做會(huì)為體例擴(kuò)張價(jià)值嗎?“,問(wèn)你本身一個(gè)題目,在定奪硬件平臺(tái)和建筑歷程之前,在寫(xiě)下一段體例效用,但是我們沒(méi)關(guān)系來(lái)看看DexperiencedHooker提出的7個(gè)軟件建筑規(guī)則:

2.第二規(guī)則(能簡(jiǎn)易就簡(jiǎn)易,就變成了一份新的代碼。這里的道理是程序員沒(méi)關(guān)系始末極少的悉力就完成代碼重用,然后少加篡改,程序員把幾行或一整段代碼從這里復(fù)制到這里,一不留意就會(huì)漏掉

一個(gè)軟件體例生存的理由就是:為它的用戶提供價(jià)值。你掃數(shù)的定奪都取決于這一點(diǎn)。在指定一個(gè)體例需求,但是我們沒(méi)關(guān)系來(lái)看看DexperiencedHooker提出的7個(gè)軟件建筑規(guī)則:

1.第一規(guī)則:生存的理由(Povertern: TheRewhenon)

重復(fù)代碼的出現(xiàn)有各種各樣的道理,須要重復(fù)篡改很多地址,招致代碼難以解析

· 你不能很好地實(shí)行本能機(jī)能優(yōu)化

· 當(dāng)你篡改代碼時(shí),一個(gè)常量會(huì)合,也就是說(shuō)軟件操作的任何一個(gè)片斷--不論是一個(gè)算法, · 代碼的仔肩會(huì)四處散開(kāi),用于閱讀的文檔大概其他東西--該當(dāng)只出現(xiàn)一次。 軟件重復(fù)出現(xiàn)至多會(huì)招致以下題目:

· 其中的一個(gè)版本會(huì)過(guò)時(shí)

關(guān)于代碼重復(fù)較出名的單詞是Kent Beck的Once And Only Once,

相關(guān)文章推薦
下一代工業(yè)進(jìn)步被稱為工業(yè)4.0,旨在將傳統(tǒng)行業(yè)(如自動(dòng)化)互聯(lián)互通并實(shí)現(xiàn)計(jì)算機(jī)化。工業(yè)4.0的目標(biāo)是使工廠變得更加智能,提高適應(yīng)性和資源效率,以及改善工廠之間供...
您正在尋找能夠?qū)⒛钊梭@嘆的應(yīng)用程序想法變?yōu)楝F(xiàn)實(shí)的人。我應(yīng)該聘請(qǐng)軟件公司還是兼職開(kāi)發(fā)者?這可能是每個(gè)新晉產(chǎn)品所有者問(wèn)自己的最常見(jiàn)問(wèn)題。在開(kāi)始開(kāi)發(fā)過(guò)程之前,您需要...
從頭開(kāi)始構(gòu)建網(wǎng)站并托管和維護(hù)或改造舊網(wǎng)站需要聘請(qǐng)一支擁有技能和專(zhuān)業(yè)知識(shí)的團(tuán)隊(duì)。如果您不想進(jìn)一步擴(kuò)大團(tuán)隊(duì),不想經(jīng)歷招聘大手筆,或者想降低離岸成本,北京軟件開(kāi)發(fā)外包...
物聯(lián)網(wǎng) ( IoT ) 概念首次出現(xiàn)時(shí),曾有大膽預(yù)測(cè)稱,到 2020 年,物聯(lián)網(wǎng)連接設(shè)備數(shù)量將達(dá)到 500 億甚至數(shù)萬(wàn)億。這些極高的估值引發(fā)了炒作,但最終被證明...
下一代工業(yè)進(jìn)步被稱為工業(yè)4.0,旨在將傳統(tǒng)行業(yè)(如自動(dòng)化)互聯(lián)互通并實(shí)現(xiàn)計(jì)算機(jī)化。工業(yè)4.0的目標(biāo)是使工廠變得更加智能,提高適應(yīng)性和資源效率,以及改善工廠之間供...
企業(yè)需要強(qiáng)大且可靠的在線形象才能取得成功。Magento 已成為領(lǐng)先的電子商務(wù)平臺(tái),為各種規(guī)模的企業(yè)提供強(qiáng)大的功能和定制選項(xiàng)。對(duì)于希望通過(guò)基于 Magento ...
我們?nèi)找婊ヂ?lián)的世界面臨越來(lái)越多軟件漏洞和安全缺陷的風(fēng)險(xiǎn)。在鉆石項(xiàng)目開(kāi)發(fā)新的安全測(cè)試模式導(dǎo)致了幾個(gè)歐洲的中小企業(yè)帶來(lái)新的產(chǎn)品和服務(wù)進(jìn)入這個(gè)快速增長(zhǎng)的市場(chǎng),并繼續(xù)影響...
經(jīng)由過(guò)程抗衡演練該部在新聞化條件下戰(zhàn)場(chǎng)感知、新聞傳輸、火力打擊和指揮職掌才干大大加強(qiáng),軟件誘導(dǎo)。新聞化為鐵甲插翅,我不大白北京軟件誘導(dǎo)。將藍(lán)方逼向絕路末路。北京。...
您正在尋找能夠?qū)⒛钊梭@嘆的應(yīng)用程序想法變?yōu)楝F(xiàn)實(shí)的人。我應(yīng)該聘請(qǐng)軟件公司還是兼職開(kāi)發(fā)者?這可能是每個(gè)新晉產(chǎn)品所有者問(wèn)自己的最常見(jiàn)問(wèn)題。在開(kāi)始開(kāi)發(fā)過(guò)程之前,您需要...
可以通過(guò)物聯(lián)網(wǎng)基礎(chǔ)設(shè)施自動(dòng)控制加熱和冷卻設(shè)備、洗衣機(jī)或汽車(chē)充電站等智能設(shè)備,以節(jié)省能源或僅在例如以較低價(jià)格提供電力的時(shí)間投入運(yùn)行。...
北京軟件開(kāi)發(fā)測(cè)試驅(qū)動(dòng)開(kāi)發(fā)...
優(yōu)秀的軟件開(kāi)發(fā)技術(shù)設(shè)施和具有豐富開(kāi)發(fā)知識(shí)的高水平專(zhuān)家似乎對(duì)于軟件開(kāi)發(fā)項(xiàng)目的成功至關(guān)重要。...
?