國際觀點 有助於你程式設計而立即要做的10件事

2021-04-20 05:41:25 字數 2217 閱讀 7233

【csdn編譯】我們一直努力又努力去掌握那些對於我們來說是全新的東西。那麼,我們做什麼來幫助學習?下面是乙個關於如何使你程式設計更迅速合理的10件事情的列表。我更習慣與使用ruby on rails,但下面的觀點也適用於其他環境。

1.公升級單元測試

你的程式設計沒有測試?你應當隨時進行測試,即tatft ( testing all the ****ing time )。當然你應當選擇比僅是單元測試更好的方式。rspec和shoulda是兩個可以選來使用的工具。

2.試用tdd

既然你在測試,那你就應當記錄下這些測試。不要記錄**並用後來的測試覆蓋它,而應當是方法的記錄。tdd ( test drive development ) 可以使你編出更好的**,tatft最重要的基礎就是 tdd。進行tatft並不難,首先你寫下你所能做的最簡單的測試並執行,觀察測試的失敗,然後寫出執行語句以便使測試通過,不停地重複這樣的過程就可以了。

3.自動化部署

自動化是你最好的朋友,想要實現自動capistrano是相當好用的工具。在你配置部署好你的專案後,第乙個要裝的東西就應當是capistrano。從第一天起就可以自動化部署將會節約你大量的時間。

4.安裝 scm

安裝 scm並學習使用它,這樣做的好處是可以使那些超重的庫中的**不再那麼冗繁,目前有大量的工具可以選擇,我每天使用的是git。git是一款很特別的分布式scm,即dscm。dscm是很有前景的,它可以同有其他庫的使用者們協同工作。

5.審查持續整合

現在我們已經測試了**並將其安全的存放在庫內。比起不停地測試,什麼是更好的方式?自動測試是個不錯的選擇。很感激有cruisecontrol.rb的存在,這個應用工具自動執行了那些瑣碎的測試。

6.了解你的**

寫**是一回事,但是更重要的事情是了解**。可以用四種自動化工具來幫助你了解**:flog、 tarantula、rcov 和saikuro。這些工具分別有其獨到之處,我很樂意向你介紹它們。

flog,可以按字母排列的順序來記錄複雜的結果。

rcov,這是乙個在ruby界相當受歡迎的工具。它是乙個c0範圍工具,換言之,它精確的測定出你的**中哪些部分在被測試,哪些部分沒被測試。唯一的缺陷是它不能測試諸如:「if condition_a &&condition_b || condition_c」. 這樣的語句。

saikuro,可以測量出你**環的複雜性,即可以計算出你**branche 和path的數量。當然你**的複雜性越低,它執行的越容易。

7.公升級你的fixtures

fixtures 是看起來很有創意的事物之一,但有諸多的弊端。對於fixtures,只有極少的替代,我選擇使用rails scenarios,原因是它在測試中工作起來像fixtures一樣,但是允許我做比yaml更好的dsl。我也可以在乙個檔案內指定多重的scenarios,這將使事情變得更有組織性。

8.收集分析物件

在rail平台上搭建新的系統。每週都會有新的監控工具出現,這樣我們有很多的選擇,在這裡我介紹我已經使用過的工具:hoptoad 和 tuneup。

hoptoad對於異常報文有不錯的能力,它可收集間斷應用並用簡便的方式顯示收集結果。還有,這是乙個免費軟體~

tuneup用另外一種方式獲取資料,它計算每一處分別花費多長時間去組合自身。你的頁面是不是花費了很長時間去組建?但你又不知道是因為什麼緣故花費了這麼久,使用tuneup來查一下吧,你會發現一些你以前從未想到過的事情。另外,tuneup是一款開源軟體,你可以登陸進他們的託管服務分享你的結果。

9.閱讀其他人的**

你想成為更優秀的程式設計師嗎?那一定要多讀**,這包括好的、壞的、你自己的、其他人的**等。閱讀**是一項很多程式設計師都不重視的技能,但其實能夠快速閱讀他人的**並理解其中的含義是一種極其需要的能力。

10.寫部落格的習慣

就我個人來說,當我閱讀部落格的時候我可以找到所有的資訊。大部分時候我是會撰寫跟技術相關的要點,偶爾討論點輕鬆的話題。寫部落格是出於分享的原因,你可以寫下能夠幫你節約時間的技術技巧,也可以是一些你想要記住的技術難點和命令之類。條】

本文**

國際觀點 有助於你程式設計而立即要做的10件事

國際觀點 有助於你程式設計而立即要做的10件事 csdn編譯 我們一直努力又努力去掌握那些對於我們來說是全新的東西。那麼,我們做什麼來幫助學習?下面是乙個關於如何使你程式設計更迅速合理的10件事情的列表。我更習慣與使用ruby on rails,但下面的觀點也適用於其他環境。1 公升級單元測試 你的...

機器視覺有助於解決表面缺陷

檢測產品表面缺陷,例如變色,灼傷,裂縫和劃痕,對於人類或機器視覺來說是一項艱鉅的任務。這些缺陷可能具有隨機形狀和低對比度,並且經常被產品的天然表面紋理或圖案遮擋。利用機器視覺檢測這些缺陷需要了解缺陷的外觀,注意照明,相機解析度和部件顯示以及複雜的機器視覺演算法。我們通過直觀和通過培訓了解這些缺陷的外...

失敗同樣有助於了解問題本質

學程式設計最大的收穫是思維方式的鍛鍊。通過不同的方法去看同乙個問題,用不同的方法去解決。這句話是浙大acm校隊莫璐怡說的。前幾天看到這句話感到渾身一顫,因此將其作為csdn的簽名。但是由於我個人太關注結果,就是總是把自己的精力投注在如何成功上,因此,我把這句話從csdn簽名上換下來,換成,學程式設計...