代碼審查的價值——為何做、何時做、如何做?.對于很多公司來說,代碼審查是開發人員日常工作中的重要環節。通過代碼審查,可以及早發現項目中存在的問題、促進同事之間的溝通與交流,..
十種更好的表達“你的代碼寫的很爛”的方法。如果你有一個同事,他寫的程序與其說是代碼,不如說更像希臘神話中女妖美杜莎的頭發,你當然不能熟視無睹,你應該做出一些反應,但你可選..
如何開發不可維護的軟件? 我從別人遺留的的技術性債務中獲得報酬。在我的日常工作中,我見到了很多難以維護的代碼,并且我一次次地看到了很多相似的并可以避免的問題。 ..
前言:對軟件開發的一次另類思考 在武俠小說中,常會把絕世武功分為兩個部分:招式和心法。招式得其形,而心法傳其神。從這個角度看,這本書是即講招式也講心法的書。招式繁雜..
在使用ORM構建基于數據庫的項目時,開發者可以選擇是先設計數據庫表,還是先設計類或抽象模型。為了展開討論,我們先列出Frans Bouma的結論:代碼先行的ORM是愚蠢的。 ..
你是選擇先寫代碼還是先把要做的事情記錄下來?開發者真的非常討厭花時間寫東西,除非寫的是代碼。然而他們還對這種厭惡振振有詞: 如果不是代碼,它就無法通過編譯,也無法確..
基于數據庫系統的單元測試問題. 在實踐的過程中,很多項目并不能有效地堅持單元測試,即使書寫了,也不能夠持續也去維護這些單元測試,最后,這些單元測試代碼將被廢棄不再使用。長..
軟件編程21法則.任何一個有經驗的程序員都知道,軟件開發遵循著一些不成文的法則。然而,如果你不遵循這些法則也并不意味著會受到懲罰;相反,有時你還會獲得意外的好處。下面的就是軟..
高效編程之欲擒故縱. 昨天我做了一些事情使我的編程效率提高了一倍。簡單,容易,但使我的生活發生了巨大的變化。 你們中可能有些人已經知道我是怎么做的。對于其他的人,這聽..
如何寫出無法維護的代碼? 酷殼里有很多我覺得很不錯的文章,但是訪問量最大的卻是那篇《6個變態的Hello World》,和它能在本站左邊欄“全站熱門”中出現的還有“如何加密源代碼”,以及..
開發者需做代碼審查的五大原因.每個人都承認代碼審查的花銷大,而且又耗時,特別是當大家忙完成軟件項目又把它送去軟件測試部門時。對一些開發人員來說,它更是會引發更多的辦公室政..
代碼重構方向原則指導. 重構是一種對軟件進行修改的行為,但它并不改變軟件的功能特征,而是通過讓軟件程序更清晰,更簡潔和更條理來改進軟件的質量。代碼重構之于軟件,相當于結構..
重構遺留程序的一次案例學習.遺留代碼經常是腐臭的,每個優秀的開發者都想把它重構。而進行重構的一個理想的先決條件是,它應該包含一組單元測試用例,以避免產生回歸缺陷。但是為遺..
代碼覆蓋率:80%!不能少 一大早,一個年輕的程序員問大師: “我準備寫一些單元測試用例。代碼覆蓋率應該達到多少為好?”..
使用gcov完成代碼覆蓋率的測試.Gcov作為gnu/gcc工作組件之一,是一款的免費的代碼覆蓋率測試工具,而且可以結合lcov生成美觀的html的測試報表。本文介紹一些gcov的使用方法,基本原理,一些實..
最近在用 Jasmine 給 KISSY 項目添加測試代碼,遇到一個困惑:如何保證測試能完整覆蓋到源碼的所有分支? 用 Google 搜索了下 JavaScript Coverage 工具,琳瑯滿目。有商業版的 JavaScript Coverage ..
你真正需要的代碼測試覆蓋率是多少?我寫這篇文章的起因是由于看了@unclebobmartin在微博上的一些看起來言之鑿鑿的話語。給那些不認識Uncle Bob的人介紹一下――他是我們軟件產業里最著名的一..
1. 當性能遇到問題時,如果能在應用層進行計算和處理,那就把它從數據庫層拿出來。排序和分組就是典型的例子。在應用層做性能提升總是要比在數據庫層容易的多。就像對于MySQL,sqlite更容..
為什么編碼規范里要求每行代碼不超過80個字符的限制是合理的。也許在Python編碼風格指導(PEP8)中最有爭議的一部分要數每行代碼不超過80個字符的限制。沒錯,實際上是79個字符,但我使用80個..
最近做了一系列的單元測試相關的工作,除了各種規范及測試框架以外,討論比較多的就是關于代碼覆蓋率的產生,c/c++與其他的一些高級語言或者腳本語言相比較而言,例如 Java、.Net和php/py..