成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Rails為例 軟件開發中需要更多的偏執

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

內容如下:

程序員有時候會讓你難以接受,因為他們對于自己使用的開發工具或開發方法有一種狂熱的偏執,給人一種很固執的感覺。而Smart Bear Software軟件公司創始人Jason Cohen卻指出了一個相反的觀點:軟件開發中的偏執是件好事。

你會突然發現,所有的軟件框架都很偏執。我喜歡它們這樣。我們需要它們偏執。

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

Ruby on Rails的偏執更強烈,例如這無處不在的“約定優于配置”思想。不管你何時用它,你完全可以相信,Rails里寫出一個方法會讓你節約更多的字符。

大多數的軟件開發方法都是在宣揚一種哲學或思維定式。在很多團體里這的表現的很明顯,他們對某種編程語言深信不疑。有些軟件創業團隊或公司對一些“大家熟知”的企業文化奉若圣經。你也許并不會贊成他們的一些基本觀點,但一個得到共識的信念會讓一個團隊更加緊密。

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

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

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

更少的代碼

… 這意味著更少的bug

… 這意味代碼更容易維護

一旦一個程序員知道了這種約定,他將會有更高的效率,因為在新開發或維護舊的軟件時,他都不需要寫那些公式化的代碼了。

一個程序員對一個陌生的項目能很容易的上手,因為這些約定在所有Rails項目中都是相同的。很多東西你都不需要去思考或爭論。

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

但這也有很明顯的弊端:

對于一個Rails新手來說,你數小時也未必能寫出幾行能用的代碼,因為從代碼上你看不出什么用處。

當Rails改變約定時(例如遷移到Rails 3),很多的東西都不能用了。而且,約定改變導致的問題你很難找出原因,因為代碼本身看不出什么錯誤。例如,當Java里的接口改變時,你的程序是編譯不過去的。Ruby 和 Rails 可不是這樣。

如果你沒有很好的代碼測試覆蓋率的話,那很容易出問題,因為你的開發工具連最基本的錯誤都不會提示你。這導致了很多愚蠢的bug,你浪費了大量的時間去編寫和維護一些只是用來檢測***bug的測試用例。

你很難寫出,或根本不可能寫出一些有用的開發工具——例如代碼自動反射——因為這些代碼里沒有包含足夠的信息。這意味著你要手工寫更多的代碼,工具不能幫你。

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

問題應該是:對于你的項目,你的團隊,你的文化,你的目標,你應該做如何的權衡取舍?

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

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

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

我堅持認為:不僅要有更多的偏執;而且我們要更好的表達出這些偏執是什么。

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

【編輯推薦】

  1. 你會嘗試用Rails在下一個項目嗎?
  2. 淺析哪些軟件開發項目不能做
  3. 10個你不容錯過的項目管理工具
  4. 淺談項目經理的三個層次
  5. 新手軟件項目經理進階之路
責任編輯:陳貽新 來源: 外刊IT評論
相關推薦

2025-01-27 00:23:15

2018-12-14 09:39:07

軟件開發用戶迭代

2021-02-22 22:05:26

軟件開發應用程序開發

2023-02-09 16:48:12

軟件開發測試結對測試

2011-08-11 09:56:50

模式

2014-01-16 14:06:18

軟件開發團隊管理

2011-05-12 11:28:40

軟件開發

2013-02-18 09:54:05

軟件開發程序員

2023-01-09 16:08:19

2022-01-26 08:00:55

軟件系統軟件開發

2024-09-23 15:02:40

2009-02-10 17:11:53

SaaSSaaS開發PaaS

2015-03-02 09:35:07

軟件開發

2011-07-04 17:09:54

2019-01-18 09:42:39

2013-05-09 09:26:59

軟件開發開發方法

2014-10-08 09:34:23

git并行管理并行工程

2009-06-12 11:35:28

模式框架軟件設計

2024-04-02 06:03:00

GenAI軟件開發人工智能

2016-12-20 11:12:11

C代碼自測開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品三级 | 91视频在线看 | 国产成人精品午夜视频免费 | 成人欧美一区二区三区黑人孕妇 | 亚洲一区视频在线播放 | 亚洲精品一区中文字幕乱码 | 久久69精品久久久久久久电影好 | av网站在线免费观看 | 一区二区三区四区在线 | 国产有码 | 亚洲精品免费在线 | 8x国产精品视频一区二区 | av黄色在线观看 | 国产精品海角社区在线观看 | 久久一本 | 99re超碰| 成人h动漫亚洲一区二区 | 国产福利资源在线 | 九九热精品视频 | 亚洲欧美日韩精品久久亚洲区 | 欧美日韩成人影院 | 久久精品综合网 | 欧美成人精品在线观看 | 久久精品国内 | 亚洲成人黄色 | 狠狠干美女 | 天堂在线中文字幕 | 欧美精品综合在线 | 久久一区二区三区四区 | 97精品国产97久久久久久免费 | 久久成人av电影 | 成人国产精品久久 | 久久久久久久久一区 | 精品视频在线观看 | 91精品久久久久久久久久入口 | 91超碰在线观看 | 欧美男人天堂 | 成人精品久久 | 成人国产精品免费观看 | 中文字幕日韩欧美一区二区三区 | 欧美二级|