av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

打破開(kāi)發(fā)傳統(tǒng)"差點(diǎn)的更好"設(shè)計(jì)理念的興起

我和幾乎所有的Common Lisp和CLOS(Common Lisp Object System)的設(shè)計(jì)者都極度深受麻省理工學(xué)院/斯坦福大學(xué)(MIT/Stanford)設(shè)計(jì)風(fēng)格的影響。這種風(fēng)格的本質(zhì)可以用“正確的做法(the right thing)”這個(gè)短語(yǔ)來(lái)概括。對(duì)于這樣的設(shè)計(jì)者,重要的就是要遵循下面的這些設(shè)計(jì)理念:

創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)成都全網(wǎng)營(yíng)銷(xiāo)、網(wǎng)站重做改版、旬陽(yáng)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開(kāi)發(fā)、電子商務(wù)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為旬陽(yáng)等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

簡(jiǎn)單性—設(shè)計(jì)必須簡(jiǎn)單,這既是對(duì)實(shí)現(xiàn)的要求,也是對(duì)接口的要求。接口的簡(jiǎn)單要比實(shí)現(xiàn)的簡(jiǎn)單更加重要。

正確性—設(shè)計(jì)在任何值得注意的方面都要保證正確。不正確是絕對(duì)不允許的。

一致性 — 設(shè)計(jì)必須保持一致兼容。設(shè)計(jì)可以允許輕微少量的不簡(jiǎn)單和不完整,來(lái)避免不一致。一致性和正確性同等重要。

完整性—設(shè)計(jì)必須覆蓋到實(shí)際應(yīng)用的各種重要場(chǎng)景。所有可預(yù)料到的情況都必須覆蓋到。簡(jiǎn)單性不能過(guò)度的損害完整性。

我相信大部分的人都會(huì)同意,這些理念都是一些好的實(shí)施原則。我把采用這種設(shè)計(jì)哲學(xué)的方法叫做“麻省理工方法(MIT approach)”。Common Lisp(包括CLOS)和Scheme代表著麻省理工方法的設(shè)計(jì)和實(shí)現(xiàn)。

“差點(diǎn)的更好(Worse is Better)”的理念只是稍微有點(diǎn)不同:

簡(jiǎn)單性—設(shè)計(jì)必須簡(jiǎn)單,這既是對(duì)實(shí)現(xiàn)的要求,也是對(duì)接口的要求。實(shí)現(xiàn)的簡(jiǎn)單要比接口的簡(jiǎn)單更加重要。簡(jiǎn)單是設(shè)計(jì)中需要***重視的因素。

正確性—設(shè)計(jì)在任何值得注意的方面都要求正確。為了簡(jiǎn)單性,正確性可以做輕微的讓步。

一致性— 設(shè)計(jì)不能過(guò)度不兼容一致。為了簡(jiǎn)單,一致性可以在某些方面做些犧牲,但與其允許設(shè)計(jì)中的這些處理不常見(jiàn)情況的部分去增加實(shí)現(xiàn)的復(fù)雜性和不一致性,不如丟掉它們。

完整性 — 設(shè)計(jì)必須覆蓋到實(shí)際應(yīng)用的各種重要場(chǎng)景。所有可預(yù)料到的情況都應(yīng)該覆蓋到。為了保證其它幾種特征的品質(zhì),完整性可以作出犧牲。事實(shí)上,一旦簡(jiǎn)單性受到危害,完整性必須做出犧牲。一致性可以為實(shí)現(xiàn)的完整性作出犧牲;最不重要的是接口上的一致性。

早期的Unix和C語(yǔ)言是使用這種設(shè)計(jì)理論的代表,我把采用這種設(shè)計(jì)策略的方法叫“新澤西方法(New Jersey approach)”。我一直在有意的諷刺這種“差點(diǎn)的更好”理論,讓人們相信它顯然是一種不好的理論思想,新澤西方法就是一種不好的軟件實(shí)現(xiàn)方法。

然而,我相信,即使在一種假象的情況下,這“差點(diǎn)的更好”理論也要比“正確的做法”理論有更大的生存空間,也就是說(shuō),在軟件開(kāi)發(fā)上,新澤西理論要比麻省理工理論更實(shí)用。

讓我來(lái)復(fù)述一個(gè)故事,向大家展示麻省理工方法和新澤西方法之間的真實(shí)區(qū)別,以及為什么各個(gè)理論的支持者都完全的相信他們的理論更好。

兩位著名的人物,一位是來(lái)自麻省理工,另一位來(lái)自伯克利學(xué)院(但是研究Unix的)。一次,他們遇到一起討論操作系統(tǒng)問(wèn)題。來(lái)自麻繩理工的人對(duì)ITS(麻省理工學(xué)院人工智能實(shí)驗(yàn)室的操作系統(tǒng))非常熟悉,并閱讀過(guò)Unix的源代碼。他對(duì)Unix如何解決PC機(jī)的loser-ing問(wèn)題非常有興趣。當(dāng)一個(gè)用戶(hù)程序調(diào)用系統(tǒng)例程去執(zhí)行一個(gè)長(zhǎng)時(shí)間的、并包含有重要狀態(tài)的操作時(shí),例如IO緩沖,loser-ing問(wèn)題就有可能出現(xiàn)。如果在執(zhí)行這個(gè)操作時(shí),發(fā)生了中斷,用戶(hù)程序的狀態(tài)必須被保存下來(lái)。因?yàn)閷?duì)系統(tǒng)例程的調(diào)用通常是單指令的,運(yùn)行用戶(hù)程序的PC機(jī)無(wú)法捕捉到例程的過(guò)程狀態(tài)。系統(tǒng)例程要么退出,要么強(qiáng)行繼續(xù)運(yùn)行?!罢_的做法”是退出,復(fù)原用戶(hù)程序調(diào)用系統(tǒng)例程的指令,讓用戶(hù)程序在中斷之后能重新恢復(fù)運(yùn)行,例如,重新進(jìn)入系統(tǒng)例程。這被叫做“PC loser-ing”,因?yàn)镻C機(jī)被強(qiáng)制進(jìn)入一種“弱勢(shì)(loser)模式”,其中,“弱勢(shì)”者是麻省理工對(duì)“用戶(hù)”的一種愛(ài)稱(chēng)。

麻省理工的人沒(méi)有看到有任何的用來(lái)處理這種情況的代碼,問(wèn)新澤西人,Unix是如何處理這種問(wèn)題的。新澤西人說(shuō),Unix人清楚這個(gè)問(wèn)題,但提供的解決方式是針對(duì)系統(tǒng)例程通常能正常完成的情況的,當(dāng)系統(tǒng)例程不能成功的完成運(yùn)行時(shí),它會(huì)返回一個(gè)錯(cuò)誤碼,指示操作運(yùn)行失敗。一個(gè)正確的用戶(hù)程序這時(shí)需要去檢查這個(gè)錯(cuò)誤碼來(lái)決定是否需要再次調(diào)用這個(gè)系統(tǒng)例程。麻省理工人不喜歡這個(gè)解決方案,因?yàn)檫@不是“正確的做法”。

新澤西人說(shuō),Unix的解決方案是正確的,因?yàn)閁nix的設(shè)計(jì)理論是追求簡(jiǎn)單,而這“正確的做法”太復(fù)雜。除此之外的好處是,程序員能容易的添加這種錯(cuò)誤探測(cè),重復(fù)他們的操作。麻省理工人指出,這種實(shí)現(xiàn)方案確實(shí)簡(jiǎn)單,功能性上的接口卻變的復(fù)雜。新澤西人指出,這就是Unix在設(shè)計(jì)上做出的合適的取舍。實(shí)現(xiàn)上的簡(jiǎn)單比接口上的簡(jiǎn)單更重要。

麻省理工人這時(shí)嘟囔著說(shuō):有時(shí)你需要讓一個(gè)強(qiáng)壯的人去變成一種軟弱的小雞。新澤西人沒(méi)明白他是什么意思(我也不太明白)。

現(xiàn)在,我開(kāi)始主張“差點(diǎn)的更好”確實(shí)是更好。C語(yǔ)言是一種為開(kāi)發(fā)Unix而設(shè)計(jì)的語(yǔ)言,它的設(shè)計(jì)采用的是新澤西方法。C語(yǔ)言因此是一種很容易就能寫(xiě)出漂亮的編譯器的語(yǔ)言,它要求程序員編出的代碼要易于編譯器去解釋。有些人稱(chēng)C語(yǔ)言為高級(jí)匯編語(yǔ)言。早期的Unix和C編譯器都非常的簡(jiǎn)單,易于移植,需要很少的硬件資源來(lái)運(yùn)行,它提供了你從一個(gè)操作系統(tǒng)和編程語(yǔ)言里想得到50%—80%的功能。

現(xiàn)有的機(jī)器有一半在任何方面都低于中等配置水平(更小,更慢)。而Unix和C語(yǔ)言在它們上面運(yùn)行良好?!安铧c(diǎn)的更好”理論表明實(shí)現(xiàn)的簡(jiǎn)單性具有***的優(yōu)先級(jí),這意味著Unix和C語(yǔ)言很容易在這些機(jī)器上進(jìn)行移植。因此,如果任何一臺(tái)機(jī)器,Unix和C能在功能性上提供50%的支持,那它就會(huì)無(wú)處不在了。Unix和C就是這樣,不是嗎?

Unix和C語(yǔ)言是***電腦病毒。

“差點(diǎn)的更好”理論另外一個(gè)好處是,程序員可以有條件的犧牲某些安全性,方便性,全力去獲得優(yōu)良的性能和較少的資源使用。使用新澤西方法開(kāi)發(fā)的軟件既能在大機(jī)器上運(yùn)行,也能在小機(jī)器上運(yùn)行,程序具有很好的可移植性,這是因?yàn)樗鼈兪窃谝粋€(gè)病毒程序是寫(xiě)出來(lái)的。

有一點(diǎn)很重要,初始病毒必須基本上好用。病毒的傳播由于它的可遷移性而得到保證。一旦病毒傳播開(kāi)來(lái),迎來(lái)的壓力會(huì)促使它進(jìn)一步改進(jìn),促使增加功能至接近90%完備的水平,但用戶(hù)此時(shí)已經(jīng)有條件的習(xí)慣了這種比“正確的做法”差一點(diǎn)的東西了。所以,“差點(diǎn)的更好”的軟件會(huì)首先獲得人們的接受,然后會(huì)有限制的讓用戶(hù)降低期望,***進(jìn)行改進(jìn),直至接近“正確的做法”。在實(shí)際情況中,1987年的Lisp編譯器當(dāng)時(shí)和C編譯器都是非常的優(yōu)秀,但是很多的編譯器專(zhuān)家仍然努力讓C編譯器做的更好。

1995年的好消息是我們有了一個(gè)好的操作系統(tǒng)和編程語(yǔ)言;而壞消息是它們分別是Unix和C++。

“差點(diǎn)的更好”還有***一個(gè)好處。因?yàn)樾聺晌魇降恼Z(yǔ)言和系統(tǒng)不夠真正的強(qiáng)大來(lái)開(kāi)發(fā)出復(fù)雜巨型的軟件,大型系統(tǒng)必須在設(shè)計(jì)上進(jìn)行組件重用。因此,一種整合的傳統(tǒng)就此迅速出現(xiàn)了。

那“正確的做法”的表現(xiàn)如何呢?我們有兩種常見(jiàn)的模式:“復(fù)雜的大型系統(tǒng)”模式和“鉆石類(lèi)珍寶“模式。

“復(fù)雜的大型系統(tǒng)“模式通常像這樣:

首先,”正確的做法“需要去設(shè)計(jì)。然后實(shí)現(xiàn)過(guò)程需要去設(shè)計(jì)。***,進(jìn)行實(shí)現(xiàn)。因?yàn)檫@是”正確的做法“,它會(huì)提供100%預(yù)期的功能,實(shí)現(xiàn)的簡(jiǎn)單性從來(lái)不是一個(gè)可考慮的因素,所以你要用很長(zhǎng)的時(shí)間去完成它。它巨大而且復(fù)雜。它需要復(fù)雜的工具,工具需要能正確的使用。其中20%的功能會(huì)花去你80%的精力,所以,”正確的做法“需要很長(zhǎng)的時(shí)間來(lái)完成,它的運(yùn)行只有在采用先進(jìn)技術(shù)的硬件上才會(huì)表現(xiàn)的令人滿意。

“鉆石類(lèi)珍寶“模式通常表現(xiàn)如下:

”正確的做法“花了大量的時(shí)間去設(shè)計(jì),但這種方式,在單個(gè)功能點(diǎn)上,其實(shí)并沒(méi)有占多大比重。這種設(shè)計(jì)的實(shí)現(xiàn),如果想讓它運(yùn)行的快,要么是根本不可能,要么是超出了大多數(shù)開(kāi)發(fā)者的能力。

頭一種模式也是經(jīng)典的人工智能軟件的開(kāi)發(fā)模式。

”正確的做法“出來(lái)的通常是大型的軟件,但除了”正確的做法“會(huì)把軟件設(shè)計(jì)的巨大外,沒(méi)有其它的理由造成這種局面。也就是說(shuō),大型軟件里很多功能是偶然會(huì)用到的。

從這些事情中我們學(xué)到的知識(shí)是,人們通常不喜歡按照”正確的做法“做事。但你***要采納一半的”正確的做法“,讓你的軟件能像病毒一樣流傳。一旦人們被它吸引,花時(shí)間去改進(jìn)它,使它接近90%的”正確的做法“。

一個(gè)錯(cuò)誤的認(rèn)識(shí)是只理解表面意思,認(rèn)為C語(yǔ)言是開(kāi)發(fā)AI軟件有力的武器。50%正確做法的方案平常是可行的,但AI上不行。

但是,有一點(diǎn)我們可以下結(jié)論,Lisp社區(qū)真的需要認(rèn)真的反省一下他們?cè)贚isp設(shè)計(jì)上的立場(chǎng)。我會(huì)在以后更多的談?wù)撨@個(gè)問(wèn)題。

原文:http://www.aqee.net/2011/07/18/the-rise-of-worse-is-better/


分享標(biāo)題:打破開(kāi)發(fā)傳統(tǒng)"差點(diǎn)的更好"設(shè)計(jì)理念的興起
本文路徑:http://uogjgqi.cn/article/dhddgpg.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流