原创 決定在這裏留下點什麼
把博客中關於計算機技術的內容貼過來。
原创 動手實現舞蹈鏈算法
把 簡書 的文章轉過來,這邊看的人應該多點。 舞蹈鏈(Dancing links)實際上是一種數據結構,可以用來實現 X算法,以解決精確覆蓋問題。 什麼是精確覆蓋(Exact Cover)問題呢?維基百科上對精確覆蓋的定義如下:在
原创 來點推理題
網上流傳的一個微軟面試題就是給出一組相關的問題,每個問題的答案都跟其它題目相關,單看一道題目也許幾個答案都是正確的,必須綜合整組問題才能做出正確的回答。 現在我也來出幾套類似的,嘿嘿。 1. 第6題的答案爲
原创 project euler
http://projecteuler.net 編程解數學題的網站。比較有意思。 一年前做了153題,第154題當時卡在了那裏,後來就一直沒往下做。今天打開網站看了看已經出到252題了,我在中國的排名也跌到第18了。欠了99
原创 應該如何使用Mock
話說昨天看了一篇《Mock Roles, not Objects 》的論文,徹底顛覆了我對mock的理解和認識。這篇論文是jMock作者在2004年發表的,描述了Mock Objects應該如何在TDD的過程中使用。 按照這篇文章的說
原创 開發人員最重要的技能
08年初寫的。話說我現在越來越發現,想寫出好的代碼真不是一件看上去那麼簡單的事情,要遠遠比學習某些特定的技術困難得多。 2008-01-23 19:37 閱讀了Martin Fowler最新的一篇blog,頗有感觸。 <a h
原创 關於測試驅動和遺留系統
隨手google到gigix的blog,看了一些他的觀點和若干人等的相關評論,有些覺得頗有道理,摘錄如下。 看“測試驅動開發”這個名字,首先應該明確:與它對應的是“文檔驅動開發”。它是一種開發過程,這裏的測試是一個設計問題,
原创 面向對象分析與設計(第3版)
Booch的這本書分成三個部分,第一部分介紹了面向對象的基本概念。我覺得這是這本書寫得最好的一部分。雖然我覺得從理論上而言講的可能還是不夠深入,但至少讀完之後對面向對象會有一個直觀上的認識。第二部分則介紹了UML2.0,以及軟件開發生命週
原创 JAVA併發編程筆記(4)
Thread Confinement 如果數據只被一個線程訪問,那自然就不需要同步。所以Thread Confinement是獲得線程安全最簡單的方式之一。這有幾種方式。可以完全依賴於實現,也就是調用者來保證只有單線程訪問,但這有可能不是
原创 09年工作總結
工作上,沒有什麼進步。 沒有什麼進步!!! 10年展望: 過慢點,就是成功。
原创 JAVA併發編程筆記(2)
可見性 Visibility這玩意兒很微妙,很容易違反直覺。要在多線程之間讀寫內存保證可見性,需要使用同步:always use the proper synchronization whenever data is shared acr
原创 還是得記點筆記
很多書看了一遍之後就忘了,比如前面這個java concurrency in practice。記了筆記至少能幫助自己回憶,這樣也不用再費那麼大勁重新去複習幾百頁的英文書——還是電子版的。所以重新開始記點筆記寫點摘要,也算是一個積累。
原创 JAVA併發編程筆記(3)
Publication and Escape 發佈一個對象意味着能夠從它能夠從它當前範圍之外被訪問到。比如,保存可以被其他代碼找到的這個對象的一個引用,或者將其作爲一個非私有方法的返回值,或者將其作爲參數傳遞給其它的類。 public s
原创 Agile & Iterative Development (1)
軟件不是可以預測的或大規模生產製造過程。軟件是新產品的開發。 迭代開發計劃的驅動方式包括風險驅動和客戶驅動。兩種方式應該結合使用。風險驅動是指從技術的角度來說,開發人員選擇風險最高的部分先進行開發。而客戶驅動則是由客戶從業務的角度上選擇最
原创 塔木德遺產分配問題
這是個很有趣的問題,來自於古書《塔木德》中記述的如何給三個老婆分配遺產。 先介紹一下《塔木德》。按照wikipedia詞條裏的解釋,《塔木德》 (希伯來文 :התלמוד ,轉寫:Talmud ),是猶太教 認爲地位僅次於《塔納赫 》的