Skip to main content

Home/ InfokeyDEV/ Contents contributed and discussions participated by Benx Shen

Contents contributed and discussions participated by Benx Shen

Benx Shen

Use Case 中 include 與 extend 的區別 - 0 views

    • Benx Shen
       
      include 是指用例中的包含關係,通常發生在多個用例中,有可以提取出來的公共部分(就像提取公因式一樣),例如 UseCaseA 中包括了 a 和 b 兩個流程,而 UseCaseC 中包含了 c 和 b 兩個流程。
    • Benx Shen
       
      extend 則恰好相反。假設 UseCaseA 的功能描述為"發送一條通知",可是,發送通知的方式可能有許多種,例如通過郵件發送、通過短信發送等。在需求分析階段,可能無法明確到底有多少種方式,在用例分析階段,UseCaseA 需要留出擴展接口,然後把已知的發送方式作為擴展用例給出,例如 UseCaseB 是"通過短信發送",而 UseCaseC 是"通過郵件發送"
Benx Shen

InfoQ: 時刻關注企業軟件開發領域的變化與創新 - 1 views

  •  
    InfoQ 中文版已經發佈囉!
Benx Shen

EasyMock 2.2 Readme - 0 views

  • EasyMock 2 is a library that provides an easy way to use Mock Objects for given interfaces.
  • EasyMock 2 Benefits Hand-writing classes for Mock Objects is not needed. Supports refactoring-safe Mock Objects: test code will not break at runtime when renaming methods or reordering method parameters Supports return values and exceptions. Supports checking the order of method calls, for one or more Mock Objects.
Benx Shen

分析java.lang.OutOfMemoryError: PermGen space - 0 views

  • 發現很多人把問題歸因於: spring,hibernate,tomcat,因為他們動態產生類,導致JVM中的permanent heap溢出 。然後解決方法眾說紛紜,有人說升級 tomcat版本到最新甚至乾脆不用tomcat。還有人懷疑spring的問題,在spring論壇上討論很激烈,因為spring在AOP時使用CBLIB會動態產生很多類。
  • 於是有人對更基礎的JVM做了檢查,發現了問題的關鍵。原來SUN 的JVM把內存分了不同的區,其中一個就是permenter區用來存放用得非常多的類和類描述。
  • 對這個bug最徹底的解決辦法就是不要用SUN的JDK,而改用BEA的 JRokit.
  •  
    又一個使用 BEA JRockit 解決了惡名昭彰的 PermGen Space 記憶體不足問題。

Benx Shen

mock框架搞什麼搞? - 0 views

  •  
    發文者 taowen 提出了一個對於 mock 框架(jMock, EasyMock)的使用經驗,認為這樣的框架並沒有帶給他測試上的方便性,反而似乎使得測試程式碼更多更亂,因此,他提出了對於 mock 框架技術的質疑。

    不過,taowen 並不是單純地從情緒上發揮論述,而是舉出了一些簡單的程式馬來進行測試,試圖寫 mock 測試程式並非那麼簡易。另外,他自己另外展示了如何不用 mock 框架來進行單元測試。從這一點來看,taowen 很棒地說明了該如何進行單元測試,無論使用哪一種方法。

    值得我學習的是,taowen 提出了自己對於 mock 框架的觀點,他的經驗告訴他:mock 到底在搞什麼東西!?於是勇敢地提出質疑。這樣的質疑,我認為比學習技術本身更有價值。從結果來看,這引發了相當多的迴響與討論,有人認為這樣,卻有人不以為然。(我相信 taowen 心臟必須要夠強,才能夠接受不同的意見而不感到生氣。我覺得我還需要學習這樣的質疑態度與接受批評的雅量。)總的來說,我發現我看到了更多元的資訊,作為一個學習者,比起單純地從一篇文章學習技術還要能夠學得更多。

    雖然我使用 mock 技術有一小段時間,而我也懂得 mock 真正的意圖以及單元測試所帶來的價值,這並不會使得我一開始就認為 taowen 是錯誤的,即便看完他的發表之後,我仍然不認為他不應該提出這樣的質疑(我想我已經在上面一段表達我的「推崇」之意,以及我所認為背後的價值)。和一些參與討論的網友一樣,認為這不是一個完全適當的例子,但 taowen 也的確指出了 mock 技術會讓開發者詬病之處。然而,這並不足以說明 mock 真是非常難用,或造成了單元測試的困擾。實際的狀況是,我們得再從 mock 技術所帶來的好處出發,瞭解了之
Benx Shen

ThreadLocal與synchronized - 0 views

  •  
    對於 java synchronized 的機制多所討論,並且發文者 klyuan 提出了不少測試代碼嘗試讓讀者更能夠跟著學習測試,我覺得真的很棒。雖然,他對於 synchronized 和 threadlocal 的見解的確是有些小錯誤,threadlocal 確實不是在解決多執行緒中資源共享的問題,但我想 klyuan 其實是想使用 threadlocal 來解決「多執行緒中非共享資源的保護」問題。
Benx Shen

框架為我所用,勿為框架所困 - 0 views

  • 我們已經被框架所包圍,我們已陷入了學習之苦。
  • 由於長期接受中國式教育,所以我們已經習慣了學習,學習幾個框架,對於國人來說也不是什麼大不了的事情,然而我們也發現,相對於我們的學習能力而言,我們的創造性顯得有些不足,我們有了繼承他人的能力,我們也缺乏一種顛覆他人的精神。
  •  
    一篇很棒對於「框架(framework)」的反思!Java 開發者必讀!
Benx Shen

Preventing Java's java.lang.OutOfMemoryError: PermGen space failure | Eric's Agile Answers - 0 views

  • The "OutOfMemoryError: PermGen space" message is normally encountered during development activites where a long-running JVM is asked to load/unload builds.
  • The message is a symptom of an incomplete garbage collection sweep where resources are not properly released upon unload/restart. There is no shortage of debate (Hibernate forum, Sun forum, Spring Framework forum ) regarding which codebase is responsible for this symptom, but the finger of blame has been pointed at CGLIB, Hibernate, Tomcat, and even Sun's JVM.
  • In my experience, the most pain-free method of resolving this issue is to switch from Sun's JDK implementation to BEA's freely available JRockit implementation.
  • ...1 more annotation...
  • On a recent project utilizing Tomcat 5.5.12 with Hibernate, I was plagued with this PermGen error, at times even experiencing it during web-based unit testing. Since making the switch to JRockit, I have not encountered this issue even once.
  •  
    又是一位和我一樣都慘遭 "PermGen Space" 錯誤的開發者了!
    很奇怪,為何會發生這樣的錯誤呢?
    其中這篇文章所提到的技術,恰巧都是我現在所發生問題的架構,像是 Hibernate, Spring, Tomcat 等,還有 Sun JVM.... Orz
    比較特別的是,多數提供的解決方式,都是去調整 JVM 的設定(-XX:MaxPermSize=256m)。這位老兄則是採用了 BEA JRockit 版本的 JVM 解決此問題,他表示至少這招對他是管用的!
    不過,軟體開發很多時候都會發生這種「魔咒」,這種狀況底下,就好像一個並無可醫的人,只好嘗試各種偏方了!

« First ‹ Previous 221 - 236 of 236
Showing 20 items per page