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

Ruby on Rails應(yīng)用技巧全解析

開發(fā) 開發(fā)工具
Ruby on Rails應(yīng)用技巧是需要我們在實(shí)際應(yīng)用中逐漸積累的,在這里我們就為大家總結(jié)了一些常見的應(yīng)用技巧,幫助大家理解。

Ruby on Rails是一款功能非常強(qiáng)大的WEB開發(fā)框架,在這里我們將會為大家介紹有關(guān)Ruby on Rails應(yīng)用技巧的一些介紹,希望對大家有所幫助。#t#

51CTO推薦專題:Ruby on Rails開發(fā)教程

Rails使得開發(fā)員的工作變得如此簡單,以至于很容易讓人誤以為它能解決一切麻煩,從而沒有給予其后臺情景足夠的注意。程序員要從一開始就把重點(diǎn)放在擴(kuò)展性上,而不是完全依賴于Rails。

事實(shí)是,Rails(Java 與Ruby on Rails對接)只能解決80%的擴(kuò)展工作。而要完成余下的20%則需要考慮下面的五個(gè)注意事項(xiàng):

Ruby on Rails應(yīng)用技巧1.留意你的數(shù)據(jù)庫

數(shù)據(jù)庫查詢,尤其是大量的查詢會造成性能瓶頸。例如,在博客上發(fā)表評論,如果你不小心的話,ActiveRecord可能會將每個(gè)評論都發(fā)出一次查詢。點(diǎn)擊率很高的博客可能會有數(shù)以百計(jì)的評論,這意味著每個(gè)頁面會要執(zhí)行上百次SQL查詢,顯然這會降低工作效率。

這類問題被稱為“n+1查詢問題”,是我們要避免的。請務(wù)必使用合適的“#include”陳述以便獲取查詢中的相關(guān)對象。此外,要立刻招引上千個(gè)對象。這樣可以實(shí)現(xiàn)平衡。

Rails消除了數(shù)據(jù)庫中繁重的工作但卻不是完全消除。Rails將程序員與SQL隔離開,但是隨著網(wǎng)站的發(fā)展以及應(yīng)用程序要擴(kuò)大的需求,你肯定希望能夠手動優(yōu)化數(shù)據(jù)庫。要做到這一點(diǎn),需要明白在里面到底發(fā)生了什么。記住在開發(fā)模式中記錄登錄情況,確保SQL查詢記錄在了登錄情況中。這樣,當(dāng)數(shù)據(jù)庫運(yùn)行過多查詢或者要介入以提高效率的時(shí)候,你就會及時(shí)獲知。

Ruby on Rails應(yīng)用技巧2.解除長期執(zhí)行的查詢

毫無疑問,我們都希望自己開發(fā)出的程序能快速運(yùn)行。也就是說,使用這些程序的人不會關(guān)心程序的背景。如果用戶發(fā)出調(diào)整個(gè)人資料的圖片,視頻編碼等請求,他們不需要在網(wǎng)絡(luò)請求發(fā)出后等待很久。相反,這些做完以后,發(fā)出一個(gè)請求,要在后臺等待很久才能返回狀態(tài)更新以及獲得頁面的更新。

Rails每次都會發(fā)出一個(gè)請求,如果長時(shí)間運(yùn)行查詢則會阻止其他請求的執(zhí)行。盡可能減少網(wǎng)絡(luò)請求的工作,并設(shè)置一個(gè)排隊(duì)機(jī)制,這樣數(shù)據(jù)庫就不會超載。這樣可以讓應(yīng)用程序運(yùn)行得更快且保持前端網(wǎng)絡(luò)服務(wù)器的開放狀態(tài)。

類似的觀點(diǎn):許多Rails程序都可以處理文件加載和用戶生成的有價(jià)值數(shù)據(jù)。許多這類應(yīng)用程序都將這類數(shù)據(jù)保存在Amazon S3上。在嘗試將視頻上傳到應(yīng)用程序上的同時(shí)處理圖像或上傳視頻到Amazon S3可以完全占用前端服務(wù)器。這意味著用戶的使用速度會減慢。而是個(gè)網(wǎng)絡(luò)服務(wù)器可以處理許多流量,但是二十個(gè)用戶同時(shí)上傳多個(gè)請求意味著其他人的請求會超時(shí)或被拒絕。

底線:為提高效率起見,千萬不要在處理請求的時(shí)候進(jìn)行圖像處理或?qū)⑽募蟼鞯搅硪粋€(gè)服務(wù)器上的操作。相反,應(yīng)該接受上傳,將上傳成功的信息返回給客戶端,然后為其他服務(wù)器處理好后臺繁重的工作。

Ruby on Rails應(yīng)用技巧3.使用緩沖技巧來保存應(yīng)用服務(wù)器和數(shù)據(jù)庫的加載數(shù)據(jù)

任何時(shí)候你都可以緩沖對于計(jì)算或數(shù)據(jù)庫的查詢,即便是只有很短的時(shí)間,你也可以擴(kuò)展整個(gè)系統(tǒng)的規(guī)模。你可以通過數(shù)據(jù)庫緩沖服務(wù)器控制數(shù)據(jù)庫服務(wù)器的加載數(shù)據(jù)。數(shù)據(jù)庫緩沖服務(wù)器可以讓你將查詢或計(jì)算的對象保存在應(yīng)用服務(wù)器中分布的內(nèi)存中。

總的格局是當(dāng)你獲取或計(jì)算對象的時(shí)候,可以將其保存數(shù)據(jù)庫緩沖服務(wù)器中。那么下次你需要對象的時(shí)候,可以首先檢查數(shù)據(jù)庫緩沖服務(wù)器,只有當(dāng)它不存在的時(shí)候,你才會退回到數(shù)據(jù)庫或重新計(jì)算對象,然后將其保存在緩存中。

一個(gè)好的程序員要了解各種HTTP協(xié)議的各種緩沖功能。使用這些緩沖功能,就可以削減整個(gè)堆棧的負(fù)荷。

Ruby on Rails應(yīng)用技巧4.監(jiān)視與測量

監(jiān)視和測量:服務(wù)器,資源使用,應(yīng)用的性能,頁面響應(yīng)時(shí)長。監(jiān)測的時(shí)候,盡可能地收集信息。如果出現(xiàn)問題,你還擁有信息,性能趨勢和文本。監(jiān)視工具旨在查出性能上的問題。

如果沒有監(jiān)測和記錄,你就不能查看系統(tǒng)。如果問題出現(xiàn)的時(shí)候,你沒有足夠的數(shù)據(jù)可以依靠,效率就會減慢。

Ruby on Rails應(yīng)用技巧5.讓方案的執(zhí)行環(huán)境成為產(chǎn)品環(huán)境的復(fù)制品

許多程序員都在本地開發(fā)并測試了應(yīng)用程序,因而過早部署了產(chǎn)品。隨后他們便會遇到問題,因?yàn)檎鎸?shí)的產(chǎn)品環(huán)境與電腦上的不一樣。

執(zhí)行和質(zhì)量保障環(huán)境越接近部署環(huán)境越好。執(zhí)行環(huán)境不需要很大,但是至少要運(yùn)行相同規(guī)模的軟件。理想情況下,測試應(yīng)該與產(chǎn)品數(shù)據(jù)的副本一起運(yùn)行,這些數(shù)據(jù)副本要與部署條件類似。這樣做最大的好處是應(yīng)用程序推送到產(chǎn)品前可以捕捉到錯誤,從而節(jié)約我們的時(shí)間和精力。

Ruby on Rails應(yīng)用技巧的熟練應(yīng)用可以讓我們更快到達(dá)端點(diǎn),讓我們有時(shí)間來思考如何擴(kuò)大應(yīng)用程序的規(guī)模。學(xué)習(xí)了以上五點(diǎn)以后,很多擴(kuò)展問題都可以迎刃而解了。

責(zé)任編輯:曹凱 來源: 中國IT實(shí)驗(yàn)室
相關(guān)推薦

2009-12-17 15:29:00

Rails方法exte

2009-12-14 15:30:43

安裝Ruby on R

2009-12-17 15:02:32

Ruby on Rai

2009-12-18 13:13:59

Ruby on Rai

2009-12-18 14:19:45

Ruby on Rai

2009-12-16 15:46:41

Ruby on rai

2009-12-17 14:36:57

Ruby on Rai

2009-12-16 17:07:27

Ruby on Rai

2009-08-27 10:21:22

Ruby on Rai

2009-12-15 10:23:23

Ruby應(yīng)用技巧

2009-12-16 17:31:30

Ruby on Rai

2010-08-13 08:59:58

Rails

2009-08-06 09:13:36

Ruby on Rai

2009-12-17 09:14:14

Ruby on Rai

2009-12-17 09:31:02

Ruby on Rai

2015-10-14 17:27:18

性能

2009-12-17 14:29:50

Ruby on Rai

2015-10-10 11:00:05

RubyRails性能

2009-12-16 16:37:59

Ruby on Rai

2009-12-18 10:47:16

Ruby裝飾模式
點(diǎn)贊
收藏

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