欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
一個(gè).NET程序員為什么學(xué)習Ruby on Rails?(轉 InfoQ)

一個(gè).NET程序員為什么學(xué)習Ruby on Rails?

作者 Stephen Chu譯者 戴強斌 發(fā)布于 2007年5月16日 下午9時(shí)30分

社區
.NET,
Ruby
主題
動(dòng)態(tài)語(yǔ)言,
變更,
.NET框架,
Ruby on Rails

你是一位資深的.NET程序員,而且已經(jīng)用ASP.NET構建過(guò)許多Web應用。

無(wú)數個(gè)不眠之夜,為了讓ASP.NET控件生命周期中的事件驅動(dòng)模型按你想要的方式執行,你費盡心血,深入細節。

你精通于使用諸如Presentation Model、Model View Presenter這類(lèi)設計模式對你的應用進(jìn)行分層,以使其更易測試和維護。

你認為Ruby on Rails只不過(guò)是眾多被吹噓的技術(shù)中的一員。在它還沒(méi)有獲得可觀(guān)的市場(chǎng)份額之前,你不會(huì )給予它過(guò)多的關(guān)注。

歡迎來(lái)到我的世界。如果你還在讀這篇文章,我向你致敬。對于我下面的說(shuō)法,你可能會(huì )充滿(mǎn)了好奇。為什么我——一名資深的.NET程序員,在經(jīng)歷了一個(gè)月的Ruby on Rails學(xué)習后會(huì )認為:只有在我了解了Ruby on Rails之后,才能以較少的時(shí)間和編碼完成以前開(kāi)發(fā)過(guò)的許多應用?

老實(shí)說(shuō),我仍然認為.NET很棒。它為我提供了一個(gè)平臺,能讓我向客戶(hù)源源不斷地提供巨大的商業(yè)價(jià)值。但我時(shí)刻提醒自己:一個(gè)簡(jiǎn)單的問(wèn)題,有大量不同的方法和技術(shù)可以解決它,并且總有一些比其它更好。衷情于某種技術(shù),必然會(huì )產(chǎn)生一些無(wú)意識的偏見(jiàn),這最終會(huì )阻礙我為客戶(hù)提供商業(yè)價(jià)值的能力。例如,對像Ruby這樣的動(dòng)態(tài)腳本語(yǔ)言的了解,使我以為:與使用編譯型的語(yǔ)言相比,我可以花費更少的時(shí)間去編寫(xiě)簡(jiǎn)單的自動(dòng)處理的Batch/Shell腳本。

為什么不呢?

下面這幾件事,是我(一個(gè).NET程序員)學(xué)習Ruby時(shí),發(fā)現的一些典型的不同。希望你能喜歡。

不需要編譯

Ruby中沒(méi)有編譯的概念。一切都在運行時(shí)發(fā)生作用。有人認為代碼編譯可以防止編碼時(shí)的粗心。那么,你可能應該去看一下測試驅動(dòng)開(kāi)發(fā)是怎么工作的,連續的代碼集成(當然了,不是每天都要構建),單元測試(不涉及數據庫和web服務(wù)的測試)和依賴(lài)注入可以幫助你生成質(zhì)量良好的代碼,使你能夠充滿(mǎn)自信的靈活的改變你的代碼。編譯的保障作用一下子變的不那么重要了。

動(dòng)態(tài)增加類(lèi)的行為——不使用Decorator模式

在靜態(tài)類(lèi)型語(yǔ)言中,要想動(dòng)態(tài)增加類(lèi)的行為,我們可以使用Decorator模式或者模板方法。而在Ruby中,有更多的方法可以在不復雜化對象設計結構的情況下,很簡(jiǎn)單地做到這一點(diǎn)。這只是因為語(yǔ)言本身對它的支持,例如:將模塊作為minxin使用,使用class_eval, instance_eval方法等。事實(shí)上,甚至可以通過(guò)編程方式在運行時(shí)定義類(lèi)的方法。在靜態(tài)類(lèi)型語(yǔ)言中,也可以通過(guò)代碼生成來(lái)完成它。但了解更多的方法,可以讓你向一個(gè)優(yōu)秀的問(wèn)題解決者邁進(jìn)一步。

譯者注:mixin在面向對象編程語(yǔ)言中是一種提供某些功能給子類(lèi)繼承的類(lèi),但mixin并不能實(shí)例化。從某個(gè)mixin繼承并不是什么特殊的形式,而它更適于收集功能。某個(gè)子類(lèi)甚至可以通過(guò)繼承一個(gè)或者多個(gè)mixin選擇繼承它的全部或者多數功能。一個(gè)mixin能延期到運行時(shí)定義和綁定方法,而屬性和實(shí)例參數也可在編譯時(shí)才被定義。這不同于我們常見(jiàn)的方式,比如先定義所有的屬性、方法,并在編譯時(shí)進(jìn)行初始化等。)

通過(guò)去除所有的類(lèi)型聲明和接口聲明,將代碼庫“瘦身”10-20%

Ruby是一門(mén)動(dòng)態(tài)類(lèi)型語(yǔ)言。你不需要在使用變量之前聲明它的類(lèi)型,或者為方法簽名中的參數定義合適的類(lèi)型。這意味著(zhù)你的代碼會(huì )變得更“瘦”,但這是以代碼難于調試和難于進(jìn)行錯誤跟蹤為代價(jià)的,對嗎?并非如此,如果你相信單元測試和良好的面向對象設計的概念。如果你的類(lèi)小而緊湊,類(lèi)的方法短而精良,并且經(jīng)過(guò)了很好的單元測試,那么調試和錯誤跟蹤將會(huì )很簡(jiǎn)單。

及時(shí)Ajax化

Ruby on Rails內置對script.aculo.us庫的支持(script.aculo.us是一個(gè)Ajax類(lèi)庫,里面包含了大量炫目的Ajax效果,使用這些效果,可以讓你的應用更具有交互友好性)。在許多情況下,這相當于在A(yíng)SP.NET中將一個(gè)控件標簽拖到html頁(yè)面上,然后在別的地方(在Rails中,這個(gè)地方是控制器)為其編寫(xiě)方法以處理Ajax在服務(wù)器端的Web請求。你的Web頁(yè)面支持Ajax功能,就像Google Suggest的autocomplete或者拖拉排序那樣。就這么簡(jiǎn)單。

使用Rails,不需要專(zhuān)門(mén)的O/R映射

使用命名慣例對數據庫的表和列以及你的領(lǐng)域模型對象命名,可以讓你忘記親自進(jìn)行O/R映射的痛苦。Ruby on Rails會(huì )為你實(shí)現這一切。在最簡(jiǎn)單的情況下,在視圖上增加一個(gè)字段并對它進(jìn)行持久化,你只需要在html中增加一個(gè)文本框并在相應的數據庫表中增加一個(gè)新列,然后你就可以看到,新輸入的文字被存儲在了數據庫新建的列中。真的,就這么簡(jiǎn)單。

用Ruby腳本構建、部署或發(fā)布應用,比使用NAnt更好。

Rake是Ruby on Rails開(kāi)發(fā)中使用的標準構建工具。Rake使用Ruby語(yǔ)法,這意味著(zhù)在構建和部署不同的應用時(shí),你需要使用Ruby去編寫(xiě)你的構建腳本。作為一門(mén)語(yǔ)言,Ruby在以下幾個(gè)方面尤為出色:處理字符串,文件和目錄的創(chuàng )建,高級的正則表達式支持。想一下,有多少次,你需要在批處理和NAnt腳本中執行以下的操作:把服務(wù)器A上a目錄下所有以.sql為擴展名的文件拷貝到服務(wù)器B,然后依次執行這些文件。如果你討厭批處理腳本在編程方面的限制,或者不喜歡以NAnt中那樣的xml格式去編寫(xiě)腳本,你會(huì )喜歡Rake的。

不勞無(wú)獲

學(xué)習Ruby的時(shí)候,我必須克服許多障礙。首先,我不得不接受這樣的事實(shí):與正在使用的“舒適”的技術(shù)相比,尋找Ruby的解決方案,要花去我更多的時(shí)間。但是,用不了多久,你就會(huì )感到喜悅,因為你可以用大量的方式解決不同的問(wèn)題。其次,學(xué)習Ruby/Rails讓我受益非淺,通過(guò)學(xué)以致用,加深了對知識的理解。記住,對于你曾耗費時(shí)間學(xué)過(guò)的東西,要么使用它,要么任其消逝。

查看英文原文:Why Would a .NET Programmer Learn Ruby on Rails?
作者簡(jiǎn)介:Stephen Chu 是ThoughtWorks的軟件開(kāi)發(fā)顧問(wèn),同時(shí)也是一位經(jīng)驗豐富的.NET開(kāi)發(fā)人員,最近關(guān)注于Ruby on Rails。您可以通過(guò)他的博客閱讀他每天的新看法。

譯者簡(jiǎn)介:戴強斌,擁有三年的Web開(kāi)發(fā)經(jīng)驗,武漢大學(xué)Google Camp技術(shù)團隊成員,目前關(guān)注垂直搜索引擎領(lǐng)域的應用發(fā)展。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
幾種主流網(wǎng)頁(yè)開(kāi)發(fā)語(yǔ)言的思考
學(xué)什么編程語(yǔ)言比較好?
ruby on rails為什么暫時(shí)無(wú)法成為企業(yè)應用開(kāi)發(fā)的主流?
程序員看好!這五大編程語(yǔ)言最應該學(xué)
程序員:代碼是從頭編還是用框架好呢?
Sawin軟件研發(fā)之窗:主動(dòng)程序員與被動(dòng)程序員
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久