新聞中心
- 函數(shù)的概念太棒了。為什么我們不編寫一個(gè)全由函數(shù)構(gòu)成的程序呢?
- 對象的概念太棒了。為什么我們不編寫一個(gè)所有東西都是對象的程序呢?
- 延后執(zhí)行的概念太棒了。為什么我們不編寫一個(gè)程序讓所有的數(shù)據(jù)類型都是lazy的呢?
編程極端主義 (跟極限編程沒有關(guān)系)是一種接受某種理論、在所有事情上檢驗(yàn)它、在所有地方運(yùn)用它的行為。一通實(shí)驗(yàn),塵埃落定后,人們通常會回想這次極端行為,認(rèn)識到“不錯(cuò),這很有趣,但很明顯,在Y上使用X明顯不合適。干這個(gè)事情我們需要使用合適的技術(shù)!”

在靖西等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站建設(shè),靖西網(wǎng)站建設(shè)費(fèi)用合理。
這樣做的收獲:有時(shí)候我們應(yīng)該使用錯(cuò)誤的技術(shù)干某種工作——因?yàn)樗锌赡苁钦_的方法,只是你不知道而已。如果你沒有嘗試過著任何東西都是函數(shù)的編程,你可能不會明白函數(shù)的功用,例如把函數(shù)當(dāng)作參數(shù),或方便的lambdas。如果你沒有嘗試過在所有地方都使用對象,你也許就不會明白數(shù)字或?qū)ο蟮念惗伎梢允菍ο?。如果你沒嘗試過著任何地方都使用延后執(zhí)行,你也許就不會明白純函數(shù)可能是一種更重要的語言特征。
所以會有下面兩個(gè)建議:
- 學(xué)習(xí)一種新理論時(shí),請嘗試著在所有地方都使用它。這樣一來,你能更快更迅速的知道它適合干什么和不適合干什么,有時(shí)甚至你會發(fā)現(xiàn)和你最初對它的直覺是錯(cuò)誤的。(在這種事情上,這種方法很好,但在另一方面,如果你不知道這種理論方法只適合某些情況,你就錯(cuò)失了更好的認(rèn)識它的機(jī)會)。
- 如果你想更清楚的了解某種理論方法,使用一種極端的語言或框架系統(tǒng)是***的方法。如果你想知道延遲執(zhí)行的程序究竟是什么樣的,你就該使用Haskell語言,而不是其它的把延遲執(zhí)行作為可選行為的語言。雖然這種比較極端的系統(tǒng)的實(shí)用性并不是很強(qiáng),但它們能讓你更快的獲取學(xué)習(xí)目標(biāo)的真諦。
當(dāng)然,有很多的情況中極端主義是不適合的,但如果是一些有趣的項(xiàng)目,小項(xiàng)目,研究性的項(xiàng)目,這種方法真的可以讓你學(xué)到很多東西。我的印象最深刻的事情是發(fā)生在去年,和Adam Chlipala一起工作。當(dāng)時(shí)我們給Coq做一些校驗(yàn),我采用常見的方法一步一步的測試,當(dāng)我大概清楚了整個(gè)測試的全貌后,我才開始使用Ltac自動化測試。Adam告訴我:“最初你就應(yīng)該使用自動化測試,而不是手工的探索?!边@一句圣言讓我醍醐灌頂:我還不夠極端!
- 文件系統(tǒng)很有趣。為什么我們不開發(fā)一個(gè)操作系統(tǒng),讓里面的所有東西都是文件形式?
- Cons cells太棒了。為什么我不做一個(gè)所有東西都是cons cells構(gòu)成的程序呢?
- 數(shù)學(xué)太神奇了。為什么我們不編寫一個(gè)所有東西都是來自數(shù)學(xué)的程序呢?
- 數(shù)組太有趣了。為什么我們不編寫一個(gè)所有東西都是數(shù)組的程序呢?
原文鏈接:http://www.aqee.net/extremist-programming/
當(dāng)前名稱:編程極端主義
轉(zhuǎn)載來源:http://fisionsoft.com.cn/article/djgipgg.html


咨詢
建站咨詢
