Time of Update: 2018-12-07
1. 摘要在本文中,我們來對模板方法模式做一個全面的瞭解。2. 求職簡訊呵呵,如果各位不介意,希望在這裡做一個求職的廣告。語言方向:Java/C#/VB,語言熟悉程度降序排列。求職方向:開發,測試等與IT相關工作。月薪要求:1000元以上工作地點:北京3. 開門見山模板方法,定義一個操作中演算法骨架,而將一些步驟延遲到子類中去實現。讓我們先來看看模板方法的:(引自TerryLee《.NET設計模式——模板方法模式》 )
Time of Update: 2018-12-07
在《Javascript玩轉繼承(一)》中,在實現繼承的時候,用到了兩個很特殊的方法,call和apply,下面,我就來說一下這個兩個方法。在ECMAScript v3中,給Function原型定義了這兩個方法,這兩個方法的作用都是一樣的:使用這兩個方法可以像調用其他對象方法一樣調用函數,這句話是從書上抄的,至少我是沒讀明白這是什麼意思。下面說簡單易懂的,先看段代碼:function Introduce(name,age){ document.write("My name is
Time of Update: 2018-12-07
Time of Update: 2018-12-07
前兩天打算給組件做個AMF3適配器用於組件和Flash進行通訊互動,經瞭解後發現FluorineFx在.net下對AMF3支援比較完善的一個項目,於就下載下來做一下整合.出於好奇於是看了一下相關代碼,由於只需要用到序列化問題所以只關注了一下AMFWriter;從實現代碼來看AMFWriter基本沒有考慮高並發下的GC壓力,資料寫入過程基本都是通過new byte[]複製的方式.為了進行步瞭解於是對FluorineFx序列化對象做了個記憶體分析.
Time of Update: 2018-12-07
近日花了一些時間在讀周愛民老師的<大道至簡>,全書整體來說是本好書,不過有些部分卻不是很認可,在這裡來談一下,對於整本書觀點,我的一些看法。1.
Time of Update: 2018-12-07
1. 寫在前面的在前文中,我主要介紹了數組的一些相關知識,希望加深各位對Array的理解,不過,看過Ivony…同學的回複,我發覺自己離說透還有很大的距離,於是就有了下面的文章。在本文中,我也主要來圍繞Ivony…同學提出的幾點問題來作以說明,問題如下:A、數組在託管堆內部是怎麼存放的?數組元素的位置是連續的嗎? B、非零基數組可以和零基數群組轉換嗎? C、int[]與System.Array的關係到底是同一類型?還是基類與衍生類別的關係?
Time of Update: 2018-12-07
首先,讓我們來簡單地看下什麼叫做CLS。鑒於個人的英文水平,我還是先給出CLS的英文解釋,然後我再翻譯:The CLS is a specification that defines the rules to support language integration. This is done in such a way, that programs written in any language (.NET compliant) can interoperate with one
Time of Update: 2018-12-07
1. 寫在前面原本計劃從這篇文章開始,開始介紹活動的使用方式,但是考慮到很多在WF中,重要的類和概念都沒有清晰,所以還是在本文中繼續明確一下WF中重要的類的用法。這節是純粹的理論知識,只是為你的後續學習打下一個基礎,如果您不敢興趣,可以略過。2. WorkflowRuntime類WorkflowRuntime:工作流程運行時。這個類有四個作用:<1> 管理工作流程運行時<2> 啟動和管理工作流程執行個體<3> 管理運行時服務<4>
Time of Update: 2018-12-07
1. 摘要我們之前已經熟悉了關於WF的基本概念,相信各位也都躍躍欲試。想步入真正的WF開發。從本文開始,我們就先來熟悉在WF中的活動。2. 活動WF的核心就是一系列的活動。而工作流程就是多個活動通過某種控制模組合起來形成一個連續有序的,通過工作流程引擎並且根據業務需要自訂和自流轉的系統。通過以上的兩個定義,相信我們都應該瞭解活動之於工作流程意味著什麼。3.
Time of Update: 2018-12-07
原文地址:http://highscalability.com/blog/2010/7/11/so-why-is-twitter-really-not-using-cassandra-to-store-tweets.html當前討論的中心是Cassandra作為NoSQL的主要產品已經被剝去了華麗的衣裳。首先是Twitter已經放棄了Cassandra,並且據說作為Cassandra誕生的地方,Facebook也已經放棄了Cassandra。NoSQL已經失敗了這種論調已經充斥在了各大社區上,C
Time of Update: 2018-12-07
let emptyList = []let oneItem = "one" ::[]let twoItem = "one" :: "two" ::[]let shortHand = ["apples" ; "orange"]let twoLists = twoItem @ shortHandlet objList = [box 1 ; box 2.0 ; box "three"]for x in objList do printf "%A," xlet listOfList = [[1;
Time of Update: 2018-12-07
1. 從依賴倒置說起首先,我們來看下《敏捷式軟體開發 (Agile Software Development)》中對依賴倒置的說明:a. 高層模組不應該依賴於低層模組,二者都應該依賴於抽象。b. 抽象不應該依賴於細節,細節應該依賴於抽象。我們先拋開第二點來看第一點,什麼叫高層模組,什麼叫低層模組。在我理解來看:高層模組也就是戰略性模組,業務性模組。而低層模組就是戰術性模組,細節類別模組。先來看這樣一段代碼: class Person { private Mouth
Time of Update: 2018-12-07
一. 從樹談起基本上所有人都知道樹這個概念。稍微深究.NET本質的人會懂得,.NET有個對象樹。學習ASP.NET的人肯定會知道,Web上有個控制項樹。哪怕是只學習過資料結構應付考試的大學生也會知道Tree這個概念。二. 把需求擴充成樹舉個我們最常用的Photoshop做例子。在Photoshop中,有許多圖形工具,比如星星,比如方形,再比如圓形等等。在Photoshop中,不用多說,也有很多種顏色供我們選擇。於是就產生了,紅色的星星,綠色的星星。紅色的方形,綠色的方形等等。看看所產生的樹:
Time of Update: 2018-12-07
1. 概論在過去的近十年的時間裡,物件導向編程大行其道。以至於在大學的教育裡,老師也只會教給我們兩種編程模型,面向過程和物件導向。孰不知,在物件導向產生之前,在物件導向思想產生之前,函數式編程已經有了數十年的曆史。那麼,接下來,就讓我們回顧這個古老又現代的編程模型,讓我們看看究竟是什麼魔力將這個概念,將這個古老的概念,在21世紀的今天再次拉入了我們的視野。2. 什麼是函數式編程在維基百科中,已經對函數式編程有了很詳細的介紹。那我們就來摘取一下Wiki上對Functional
Time of Update: 2018-12-07
其實在.net socket編寫高效能穩定方面的資料真的比較少,一個實質性的測試資料結果對比就更少了.我們可以從http://msdn.microsoft.com/zh-cn/magazine/cc163356.aspx看到MS說net 2.0
Time of Update: 2018-12-07
一般在對字元進行編碼的時候都會使用Encoding.GetBytes方法來進行,但當你在使用該方法的時候有沒瞭解這個方法呢?其實Encoding.GetBytes提供了很多方法不過一般都會直接使用Encoding.GetBytes(string).那使用這個方法會有什麼問題呢?通過反編譯工具看一下這個方法的實現代碼.public virtual byte[] GetBytes(string s){if (s == null){throw new
Time of Update: 2018-12-07
針對現有.net 的socket tcp來說效能是非常不錯的,以現有普通伺服器的配置掛載幾W以上的長串連每秒處理幾W的請求應答從網路吞吐能力來說完全可以應付。不過實際應用並不可能這麼簡單,既然有所求就必然要處理一些邏輯上的工作。如果讓一台普通服務每秒去處理幾W的資料邏輯似乎有點不太現實現事情,所以就產生了這種架構的想法前置一台Proxy 伺服器,後面掛N台邏輯伺服器。大概網路布局如下: 從規划上使用者的所有訪問只需要針對Proxy
Time of Update: 2018-12-07
在實際開發應用中,非UI線程操作UI是普遍存在的,在.net下一般是通過Control.Invoke的方法來進行操作,但到處都是Control.Invoke代碼維護可是一件麻煩的事情。以下通過介面和隊列來規範非UI線程操UI的實現。 既然要規範處理那介面是個不錯的選擇,以下定義一個簡單的執行介面public interface IInvokeItem { void Execute(); } 以下是擴充一個簡單的操作類封裝class
Time of Update: 2018-12-07
Time of Update: 2018-12-07
文章目錄 首先是制定一個Tcp服務Flash端實現 之前的文章已經介紹了Beetle使用ProtoBuf.net進行對象序列化資料轉送,這一章主要講述Beetle如何使用FluorineFx和Flash進行AMF3通訊.其實現原理和使用ProtoBuf.net一樣,擴充出一個MessageAdapter即可以. MessageAdapter的實現如下:public class MessageAdapter:IMessage