Skip to main content

Home/ InfokeyDEV/ Group items tagged 2016

Rss Feed Group items tagged

Benx Shen

mod_rewrite Cookbook - FrontPage - 0 views

Benx Shen

胡侃:面向对象思想的进化-FP-综合技术 -JavaEye做最棒的软件开发交流社区 - 0 views

  • 面向對象編程思想的提出已經不是幾年而是幾十年了,考查其思想的變化,一方面是對現有語言的一些評判,另一方面,也算是對前輩計算機科學家的緬懷。 ——題記 Kristen Nygaard在1962年發明的 Simula 語言現在被認同為世界上第一種明確實現面向對象編程中某些"必要"元素(比如 class)的語言。Simula 是從 Algol 發展來的,可以說,是一種增加了 class 這個數據類型的 Algol,並將參數傳遞的默認模式從"按名調用"換成了"按引用調用",還提出了根據類型確定初始化過程的方法。 從 Simula 的時代開始,科學家們在解決軟件複雜度方面的思路開始"異常開闊"——當然也有資深的老派牛人們不這麼認為。比方說 Peter Norvig,寫了Design Patterns in Dynamic Programming一書來反駁。他認為設計模式早已體現在以 Lisp 為首的一批語言中了,根本不需要什麼面向對象。但我還是跟從偶像 Alan Kay 的觀點。某些時候,把一種特定的編程風格做進語言裡也是必要的。
Benx Shen

Groovy - Regular Expressions - 0 views

  • Groovy supports regular expressions natively using the ~"pattern" expression
    • Benx Shen
       
      Groovy 對於 regexp 的支援有 3 個特殊的表示方式:
      ~"pattern" (create java.util.regex.Pattern)=~ (create java.util.regex.Matcher)==~ (do Matcher.matches() )
  • // lets create a regex Pattern def pattern = ~/foo/ assert pattern instanceof Pattern
  • Groovy also supports the =~ (create Matcher) and ==~ (matches regex) operators.
  • ...6 more annotations...
  • Since a Matcher coerces to a boolean by calling its find method, the =~ operator is consistent with the simple use of Perl's =~ operator, when it appears as a predicate (in 'if', 'while', etc.). The "stricter-looking" ==~ operator requires an exact match of the whole subject string.
  • def m = "foobarfoo" =~ /o(b.*r)f/ assert m[0][1] == "bar"
  • def matcher = "\$abc." =~ /\$(.*)\./ // no need to double-escape! assert "\\\$(.*)\\." == /\$(.*)\./ matcher.matches(); // must be invoked assert matcher.group(1) == "abc" // is one, not zero
  • // lets create a Matcher def matcher = "cheesecheese" =~ /cheese/ assert matcher instanceof Matcher answer = matcher.replaceAll("edam")
    • Benx Shen
       
      以下是一些 groovy regexp 的程式碼,請特別注意劃線的部份!
  • // fancier group demo matcher = "\$abc." =~ "\\\$(.*)\\." matcher.matches(); // must be invoked [Question: is this still true? Not in my experience with jsr-04.] assert matcher.group(1) == "abc" // is one, not zero
    • Benx Shen
       
      這裡需要特別注意的是,如果想要使用 matcher.group() 方法,那麼必須先執行 matcher.matches() 方法呼叫(我記得呼叫 find() 也行)。然而,如果是直接使用 groovy 的語法,那麼就可以直接使用 matcher[0][?] 的用法了!
Benx Shen

用Diff和Patch工具維護源碼 - PHP俱樂部 - 0 views

  • diff以"行"為單位比較兩個文本文件(也可以是目錄比較),並將不同之處以某種格式輸出到標準輸出上;patch可以讀入這種輸出,並按照一定指令使源文件(目錄)按照目標文件(目錄)更新
Benx Shen

» Microsoft Screen Sharing Software Available As Free Download » InsideMicro... - 0 views

  •  
    微軟出的 Screen Sharing 工具!看起來蠻不錯的,還整合了 Window Live 的帳號!在 NAT 局網內只要防火牆沒有擋,那麼就可以像 MSN 一樣通暢無阻啦!
Benx Shen

Downloads - Yod'm 3D - 0 views

Benx Shen

CruiseControl发布2.7正式版 - [Matrix - 与 Java 共舞] - 0 views

Benx Shen

bassistance.de » jQuery plugin: Validation - 0 views

Benx Shen

無類語言的OOP(JavaScript描述)-FP-綜合技術 -JavaEye做最棒的軟件開發交流社區 - 0 views

  • 本文以 JavaScript 語言為例,介紹了無類面向對象語言中實現各種面向對象概念的方法。
  • 無類語言的OOP(JavaScript描述)
Benx Shen

Initialization on demand holder idiom - Wikipedia, the free encyclopedia - 0 views

  • public class Something { private Something() { } private static class LazyHolder { private static final Something something = new Something(); } public static Something getInstance() { return LazyHolder.something; } }
    • Benx Shen
       
      Singleton pattern 終極解法!
  •  
    Java Singlton 模式的終極解決之道!
  •  
    對了會發現這篇文章,是因為 http://www.eclipsezone.com/eclipse/forums/t97263.rhtml 這裡討論在 eclipse 裡如何使用最簡單的步驟創建一個 singlton 類別設計。
Benx Shen

Bertrand's weblog: When was this Java class compiled? - 0 views

  • When was this Java class compiled? Credits to Dmitry Beransky on the advanced-java@discuss.develop.com list. import java.util.Date; import java.io.IOException; public class When { public static void main(String args[]) throws IOException { Date d = new Date( When.class.getResource("When.class") .openConnection() .getLastModified() ); System.out.println("This class was compiled on " + d); } }
Benx Shen

面向未來的CSS實踐-CSS-AJAX -JavaEye做最棒的軟件開發交流社區 - 0 views

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

{|ihower.idv.tw| blog } » 什麼是REST跟RESTful? - 0 views

Benx Shen

Web框架比较 - 0 views

Benx Shen

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

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

Cronolog - 0 views

Benx Shen

Top 10 CSS Tutorials - Cameron Olthuis - 0 views

Benx Shen

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

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

集成SVN源碼管理和Mantis缺陷跟蹤 - 0 views

« First ‹ Previous 161 - 180 of 190 Next ›
Showing 20 items per page