偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Rails為例 軟件開發(fā)中需要更多的偏執(zhí)

開發(fā) 項(xiàng)目管理 前端
本文是從《A Call for Strong Opinions in Software Development 》這篇文章翻譯而來。譯文來自外刊IT評論《軟件開發(fā)中需要更多的偏執(zhí)》。

內(nèi)容如下:

程序員有時(shí)候會讓你難以接受,因?yàn)樗麄儗τ谧约菏褂玫拈_發(fā)工具或開發(fā)方法有一種狂熱的偏執(zhí),給人一種很固執(zhí)的感覺。而Smart Bear Software軟件公司創(chuàng)始人Jason Cohen卻指出了一個(gè)相反的觀點(diǎn):軟件開發(fā)中的偏執(zhí)是件好事。

你會突然發(fā)現(xiàn),所有的軟件框架都很偏執(zhí)。我喜歡它們這樣。我們需要它們偏執(zhí)。

敏捷開發(fā)宣言是頭一個(gè)清晰的表達(dá)出它的偏執(zhí)觀點(diǎn)的好樣板。沒有模棱兩可的話,有的只是明確的取舍,例如評估對比“可運(yùn)行的軟件”和“全面詳細(xì)的文檔”。如果你要問是該去寫一個(gè)需求文檔,還是寫一個(gè)具有可讀性的集成測試用例,你很清楚的能知道一個(gè)敏捷份子會怎樣回答。

Ruby on Rails的偏執(zhí)更強(qiáng)烈,例如這無處不在的“約定優(yōu)于配置”思想。不管你何時(shí)用它,你完全可以相信,Rails里寫出一個(gè)方法會讓你節(jié)約更多的字符。

大多數(shù)的軟件開發(fā)方法都是在宣揚(yáng)一種哲學(xué)或思維定式。在很多團(tuán)體里這的表現(xiàn)的很明顯,他們對某種編程語言深信不疑。有些軟件創(chuàng)業(yè)團(tuán)隊(duì)或公司對一些“大家熟知”的企業(yè)文化奉若圣經(jīng)。你也許并不會贊成他們的一些基本觀點(diǎn),但一個(gè)得到共識的信念會讓一個(gè)團(tuán)隊(duì)更加緊密。

事實(shí)上,Rails的偏執(zhí)如此的走極端,以至于讓人懷疑它的一些做法是否值得。例如,在RailsGuides——一個(gè)討論Rails基本知識的地方——當(dāng)他們談?wù)揜ails代碼生成引擎時(shí),他們特別的指出,使用一個(gè)空的controller類就能讓你把頁面跑起來,這是多么的酷。但他們隨即就接著說,在實(shí)際使用中,你總是需要一個(gè)這樣沒什么用處的controller類來幫你讓東西跑起來。

為什么非要搞一個(gè)這樣的空類?這不很讓人困惑嗎?你幾乎從來不用它。

對于這個(gè)問題,我可以寫出一大篇文章,但這不是重點(diǎn)。重點(diǎn)是,從大方面來看,這樣的策略有很明顯的好處:

更少的代碼

… 這意味著更少的bug

… 這意味代碼更容易維護(hù)

一旦一個(gè)程序員知道了這種約定,他將會有更高的效率,因?yàn)樵谛麻_發(fā)或維護(hù)舊的軟件時(shí),他都不需要寫那些公式化的代碼了。

一個(gè)程序員對一個(gè)陌生的項(xiàng)目能很容易的上手,因?yàn)檫@些約定在所有Rails項(xiàng)目中都是相同的。很多東西你都不需要去思考或爭論。

就像編碼風(fēng)格,如何編寫已不重要。重要的是大家都有共識,Rails的約定是統(tǒng)一的。

但這也有很明顯的弊端:

對于一個(gè)Rails新手來說,你數(shù)小時(shí)也未必能寫出幾行能用的代碼,因?yàn)閺拇a上你看不出什么用處。

當(dāng)Rails改變約定時(shí)(例如遷移到Rails 3),很多的東西都不能用了。而且,約定改變導(dǎo)致的問題你很難找出原因,因?yàn)榇a本身看不出什么錯(cuò)誤。例如,當(dāng)Java里的接口改變時(shí),你的程序是編譯不過去的。Ruby 和 Rails 可不是這樣。

如果你沒有很好的代碼測試覆蓋率的話,那很容易出問題,因?yàn)槟愕拈_發(fā)工具連最基本的錯(cuò)誤都不會提示你。這導(dǎo)致了很多愚蠢的bug,你浪費(fèi)了大量的時(shí)間去編寫和維護(hù)一些只是用來檢測***bug的測試用例。

你很難寫出,或根本不可能寫出一些有用的開發(fā)工具——例如代碼自動(dòng)反射——因?yàn)檫@些代碼里沒有包含足夠的信息。這意味著你要手工寫更多的代碼,工具不能幫你。

Rails這樣做“對”嗎?也許一個(gè)禪宗大師會這樣說:你這是個(gè)錯(cuò)誤的問題。

問題應(yīng)該是:對于你的項(xiàng)目,你的團(tuán)隊(duì),你的文化,你的目標(biāo),你應(yīng)該做如何的權(quán)衡取舍?

而Rails的偉大之處在于,它決定了做如何的取舍,并一直堅(jiān)持這條道路走下去。

它們這樣做就是向我們程序員宣告:這是我們的選擇。所以才出現(xiàn)了我們上面的討論,所以我們才要瞪大眼睛做出自己的選擇。

情況是:所有的平臺,框架,類庫都是偏執(zhí)的。它們只是不去聲明,或者并不始終如一的偏執(zhí)。它們不聲明,我們也就很難知道我們使用它們將會做怎樣的取舍。我們一開始就做出了錯(cuò)誤的選擇,卻去抱怨工具的的不好。郁悶!

我堅(jiān)持認(rèn)為:不僅要有更多的偏執(zhí);而且我們要更好的表達(dá)出這些偏執(zhí)是什么。

原文:http://www.aqee.net/2011/07/13/a-call-for-strong-opinions-in-software-development/

【編輯推薦】

  1. 你會嘗試用Rails在下一個(gè)項(xiàng)目嗎?
  2. 淺析哪些軟件開發(fā)項(xiàng)目不能做
  3. 10個(gè)你不容錯(cuò)過的項(xiàng)目管理工具
  4. 淺談項(xiàng)目經(jīng)理的三個(gè)層次
  5. 新手軟件項(xiàng)目經(jīng)理進(jìn)階之路
責(zé)任編輯:陳貽新 來源: 外刊IT評論
相關(guān)推薦

2025-01-27 00:23:15

2018-12-14 09:39:07

軟件開發(fā)用戶迭代

2021-02-22 22:05:26

軟件開發(fā)應(yīng)用程序開發(fā)

2023-02-09 16:48:12

軟件開發(fā)測試結(jié)對測試

2011-08-11 09:56:50

模式

2014-01-16 14:06:18

軟件開發(fā)團(tuán)隊(duì)管理

2011-05-12 11:28:40

軟件開發(fā)

2013-02-18 09:54:05

軟件開發(fā)程序員

2023-01-09 16:08:19

2022-01-26 08:00:55

軟件系統(tǒng)軟件開發(fā)

2024-09-23 15:02:40

2009-02-10 17:11:53

SaaSSaaS開發(fā)PaaS

2015-03-02 09:35:07

軟件開發(fā)

2011-07-04 17:09:54

2019-01-18 09:42:39

2013-05-09 09:26:59

軟件開發(fā)開發(fā)方法

2014-10-08 09:34:23

git并行管理并行工程

2009-06-12 11:35:28

模式框架軟件設(shè)計(jì)

2024-04-02 06:03:00

GenAI軟件開發(fā)人工智能

2016-12-20 11:12:11

C代碼自測開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號