小小

          IT
          數(shù)據(jù)加載中……
          有助于你編程而立即要做的10件事

          中午看到這篇文章,覺得道理的,推薦給大家看看。
          很多IT人,都在忙碌著搞代碼,卻不知道,除了單純的寫代碼,還要關(guān)注很多相關(guān)的東西。不然,你的代碼,本身就是一個(gè)問(wèn)題。
          轉(zhuǎn)載自:http://www.yiludu.cn/ 

          1.升級(jí)單元測(cè)試

          你的編程沒有測(cè)試?你應(yīng)當(dāng)隨時(shí)進(jìn)行測(cè)試,即TATFT ( testing all the fucking time )。當(dāng)然你應(yīng)當(dāng)選擇比僅是單元測(cè)試更好的方式。RSpec和Shoulda是兩個(gè)可以選來(lái)使用的工具。

          2.試用TDD

          既然你在測(cè)試,那你就應(yīng)當(dāng)記錄下這些測(cè)試。不要記錄代碼并用后來(lái)的測(cè)試覆蓋它,而應(yīng)當(dāng)是方法的記錄。TDD ( Test Drive Development ) 可以使你編出更好的代碼,TATFT最重要的基礎(chǔ)就是 TDD。進(jìn)行TATFT并不難,首先你寫下你所能做的最簡(jiǎn)單的測(cè)試并運(yùn)行,觀察測(cè)試的失敗,然后寫出執(zhí)行語(yǔ)句以便使測(cè)試通過(guò),不停地重復(fù)這樣的過(guò)程就可以了。

          3.自動(dòng)化部署

          自動(dòng)化是你最好的朋友,想要實(shí)現(xiàn)自動(dòng)Capistrano是相當(dāng)好用的工具。在你配置部署好你的項(xiàng)目后,第一個(gè)要裝的東西就應(yīng)當(dāng)是Capistrano。從第一天起就可以自動(dòng)化部署將會(huì)節(jié)約你大量的時(shí)間。

          4.安裝 SCM

          安裝 SCM并學(xué)習(xí)使用它,這樣做的好處是可以使那些超重的庫(kù)中的代碼不再那么冗繁,目前有大量的工具可以選擇,我每天使用的是Git。Git是一款很特別的分布式SCM,即DSCM。DSCM是很有前景的,它可以同有其他庫(kù)的用戶們協(xié)同工作。

          5.審查持續(xù)集成

          現(xiàn)在我們已經(jīng)測(cè)試了代碼并將其安全的存放在庫(kù)內(nèi)。比起不停地測(cè)試,什么是更好的方式?自動(dòng)測(cè)試是個(gè)不錯(cuò)的選擇。很感激有cruisecontrol.rb的存在,這個(gè)應(yīng)用工具自動(dòng)運(yùn)行了那些瑣碎的測(cè)試。

          6.了解你的代碼

          寫代碼是一回事,但是更重要的事情是了解代碼。可以用四種自動(dòng)化工具來(lái)幫助你了解代碼:flog、 tarantula、rcov 和saikuro。這些工具分別有其獨(dú)到之處,我很樂意向你介紹它們。
          Flog,可以按字母排列的順序來(lái)記錄復(fù)雜的結(jié)果。

          Tarantula,根據(jù)相關(guān)性原則和一些靈活的創(chuàng)意設(shè)計(jì)的。它所做的是spider 你的Rail應(yīng)用以便去搜索壞鏈接。這真是令人得到解脫,使我受益匪淺。

          Rcov,這是一個(gè)在Ruby界相當(dāng)受歡迎的工具。它是一個(gè)C0范圍工具,換言之,它精確的測(cè)定出你的代碼中哪些部分在被測(cè)試,哪些部分沒被測(cè)試。唯一的缺陷是它不能測(cè)試諸如:“if condition_a && condition_b || condition_c”. 這樣的語(yǔ)句。

          Saikuro,可以測(cè)量出你代碼環(huán)的復(fù)雜性,即可以計(jì)算出你代碼branche 和path的數(shù)量。當(dāng)然你代碼的復(fù)雜性越低,它運(yùn)行的越容易。

          7.升級(jí)你的Fixtures

          Fixtures 是看起來(lái)很有創(chuàng)意的事物之一,但有諸多的弊端。對(duì)于Fixtures,只有極少的替代,我選擇使用Rails Scenarios,原因是它在測(cè)試中工作起來(lái)像Fixtures一樣,但是允許我做比YAML更好的DSL。我也可以在一個(gè)文件內(nèi)指定多重的 Scenarios,這將使事情變得更有組織性。

          8.收集分析對(duì)象

          在Rail平臺(tái)上搭建新的系統(tǒng)。每周都會(huì)有新的監(jiān)控工具出現(xiàn),這樣我們有很多的選擇,在這里我介紹我已經(jīng)使用過(guò)的工具:HopToad 和 TuneUp。

          HopToad對(duì)于異常報(bào)文有不錯(cuò)的能力,它可收集間斷應(yīng)用并用簡(jiǎn)便的方式顯示收集結(jié)果。還有,這是一個(gè)免費(fèi)軟件~

          TuneUp用另外一種方式獲取數(shù)據(jù),它計(jì)算每一處分別花費(fèi)多長(zhǎng)時(shí)間去組合自身。你的頁(yè)面是不是花費(fèi)了很長(zhǎng)時(shí)間去組建?但你又不知道是因?yàn)槭裁淳壒驶ㄙM(fèi)了這么久,使用TuneUp來(lái)查一下吧,你會(huì)發(fā)現(xiàn)一些你以前從未想到過(guò)的事情。另外,TuneUp是一款開源軟件,你可以登陸進(jìn)他們的托管服務(wù)分享你的結(jié)果。

          9.閱讀其他人的代碼

          你想成為更優(yōu)秀的程序員嗎?那一定要多讀代碼,這包括好的、壞的、你自己的、其他人的代碼等。閱讀代碼是一項(xiàng)很多程序員都不重視的技能,但其實(shí)能夠快速閱讀他人的代碼并理解其中的含義是一種極其需要的能力。

          10.寫博客的習(xí)慣

          就我個(gè)人來(lái)說(shuō),當(dāng)我閱讀博客的時(shí)候我可以找到所有的信息。大部分時(shí)候我是會(huì)撰寫跟技術(shù)相關(guān)的要點(diǎn),偶爾討論點(diǎn)輕松的話題。寫博客是出于分享的原因,你可以寫下能夠幫你節(jié)約時(shí)間的技術(shù)技巧,也可以是一些你想要記住的技術(shù)難點(diǎn)和命令之類。

          posted on 2008-09-24 23:58 小小it 閱讀(172) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 海口市| 金坛市| 台南市| 贵南县| 山西省| 肇源县| 巴塘县| 启东市| 资阳市| 镇原县| 榆树市| 金山区| 宁化县| 永善县| 禄丰县| 潼南县| 柘城县| 诸城市| 广饶县| 潞城市| 手游| 平罗县| 贵阳市| 烟台市| 邯郸县| 历史| 怀化市| 吉林市| 榕江县| 凌海市| 易门县| 葫芦岛市| 班戈县| 介休市| 龙川县| 庆阳市| 库尔勒市| 林西县| 广昌县| 广州市| 眉山市|