摘要:
在最近做的一個項目中,由于每天核算的數據量過于龐大,需要把數據庫進行分庫保存。當數據分散到各個庫之后,帶來的數據更新操作就會存在一個一致性和完整性的問題。下面是一個典型的場景假設目前存在三個物理庫,現在有一個文件,里面有1W條數據,根據分庫的規則,可以把文件里面的數據分到三個庫中,現在需要保證這1W條數據要要完整的保存到這三個庫里面,并且數據是一致性的,也就是說 三個庫里面已導入的數據完全和文件里面的數據一致。正常情況下,我們先把文件里面的數據按照所屬的數據庫分成三份,然后針對每一份數據庫進行保存,在單庫的情況下,可以保證單庫的數據完整性。但是三個庫要保證一致性,就是非常復雜的一項工作,很有可 閱讀全文
posted @ 2013-01-25 15:01
貓叔玩流量
閱讀(45760)
評論(5)
推薦(3)
摘要:
函數式編程的特點1 一切都是函數,沒有對象的概念2 給定相同的輸入產生相同的輸出3 函數沒有內部狀態,函數沒有副作用在erlang來說,繼承了函數式編程的特點,同時增加了一條,elang函數變量只能賦值一次erlang繼承了prolog的思想,在prolog語言中,有三種元素——原子,變量,列表,erlang也是一樣,同時也繼承了其語法和強大的模式匹配功能,這些特色都是來自與prolog如果說 erlang本身的特色的,主要包括以下幾點:1 沒有線程,都是輕量級進程沒有線程就意味無資源共享,極大的簡化了并發編程以及增加了并發執行的效率,對于并發實現來說,主要是創建一個輕量級進程。這個我比較好奇 閱讀全文
posted @ 2013-01-25 09:36
貓叔玩流量
閱讀(288)
評論(0)
推薦(0)
摘要:
最近這一段時間一直在了解prolog這一門極其有意思的邏輯編程語言,和以往的命令式編程語言完全不一樣。prolog是聲明式的,個人覺得更像一門DSL語言,邏輯方面的DSL語言。prolog語言沒有代碼,其實就是三點事實:定義了一些邏輯概念,這些恒為真,不需要任何證明,就像歐式幾何里面的公里一樣。規則:定義基礎事實之間的規則。有點像歐式幾何的推理過程,由基礎公里可以推導出來一些定理。目標:也就是問題,通過事實和定義的規則推導出來問題的解決方案,有點像數學證明題這一門語言最核心的就是遞歸。完全是通過遞歸去解決目標問題。遞歸有兩個重要元素:邊界條件,遞歸定義也就是不能無限遞歸下去,如果在單位時間內遞 閱讀全文
posted @ 2013-01-25 09:35
貓叔玩流量
閱讀(250)
評論(0)
推薦(0)
摘要:
最近這兩周一直在看scala語言,突然發現這一門語言非常棒,能夠編譯成為java字節碼。scala是編譯式,靜態,強類型語言,和java一樣,但是經過scala添加的語法糖以及編譯器的優化,在語言表達能力上完全比java強多了。現在看起來,java有一些太笨重了。和java相比,scala最大的優勢在于1 類型推斷,根據值推斷類型,這個是經過scala編譯器進行推斷,個人覺得相對來說好實現。2 支持函數式編程:在java里面,任何事物都是對象。經過scala的語法潤色,支持函數定義。其實執行起來還是需要對象的,只不過scala編譯器幫你自己創建了匿名類,源代碼層面看上去是定義了函數,實際是定義 閱讀全文
posted @ 2013-01-25 09:35
貓叔玩流量
閱讀(246)
評論(0)
推薦(0)
摘要:
這周主要看了ruby,和prolog語言對于ruby語言,ruby是解釋型語言,對命令一條條解釋,其實個人認為也可以先編譯,在執行,加快效率,甚至可以和java的JIT一樣,編譯成本地語言,加快執行速度。ruby明顯特點就是動態性,變量不需要定義直接可以賦值,相對與java這樣的靜態語言,變量需要先定義變量名和變量類型,然后進行賦值,而ruby就可以直接進行賦值,賦值的過程包含在定義里面。這種特定對于開發效率非常高,但是排錯的情況就比較復雜。對于里面提到的鴨子類型,并沒有太大的感覺,和接口有點類似,實現了某一個接口的類就具有接口的類型,唯一不同的是ruby沒有接口,可以通過mixin機制來實現 閱讀全文
posted @ 2013-01-25 09:34
貓叔玩流量
閱讀(398)
評論(0)
推薦(1)
摘要:
今天寫java代碼,發現一個ruby的一個特性非常有意思,就是調用任何方法都有返回值在javabean里面,調用set方法,返回為void,如果想初始化對象,必須寫成多條語句。例如幫助12345XXXBean xx = new XXXBean();xx.setName(name);xx.setAge(age);而在ruby里面,用xx.setName(name).setAge(age) 一行語句搞定,效率相當高由重新看了io語言,終于理解了javascript里面的prototype是什么意思,原型就是對象的類型,和面向對象Class有點類似,但是原型本身也是一個對象。可以在類型上添加方法 , 閱讀全文
posted @ 2013-01-25 09:34
貓叔玩流量
閱讀(229)
評論(0)
推薦(0)
摘要:
原來一直是java的忠實粉絲,開始覺得java語法嚴謹,類型安全,面向對象的特性,覺得java特別適合大企業,多人協作式開發。這兩年,自己也嘗試做一些網站,發現java在這方面效率太低。所以慢慢接觸了php,groove這些腳本語言,一下子開闊了自己的視野。所以買了這本書來了解各個編程語言的設計思想以及特性書名提到了編程范式,個人理解就是編程模型或者程序的設計思想,從以前的面向過程的編程(匯編,C),到面向對象的編程(java,c++,.net),在到函數式編程(list,haskell),再到并發編程(go) 。之所以出現這么多編程范式,個人覺得就是對為了解決特定的問題,在偏業務領域,比較適 閱讀全文
posted @ 2013-01-25 09:33
貓叔玩流量
閱讀(519)
評論(0)
推薦(0)
摘要:
在java中,我們經常使用的是單例模式,這些設計模式在ios開發中也比較常用,最近也在考慮使用在ios開發中使用單例模式在objective-c中,需要在.m文件里面定義個static變量來表示全局變量(和java里面的類變量類似,但是在objective-c中,static變量只是在編譯時候進行初始化,對于static變量,無論是定義在方法體里面 還是在方法體外面其作用域都一樣在我們經常使用的UITableViewController里面,在定義UITableCellView的時候,模板經常會使用以下代碼幫助1234567891011- (UITableViewCell *)tableVie 閱讀全文
posted @ 2013-01-25 09:31
貓叔玩流量
閱讀(29802)
評論(0)
推薦(1)
摘要:
(Command 鍵) – 在某些 Apple 鍵盤上,此鍵也可能帶有 Apple 標志()(Control 鍵)(Option 鍵)-“Alt”可能也出現在此鍵上(Shift 鍵)(Caps Lock 鍵)- 切換大寫字母鎖定開或關fn(功能鍵) 閱讀全文
posted @ 2013-01-25 09:31
貓叔玩流量
閱讀(5469)
評論(0)
推薦(0)
摘要:
在java程序中,最常用的就是單例模式,這個在objective-c一樣可以使用,但是和java還是有一點區別。簡單看一下java里面如何定義一個單例模式public classSingletonClass{private staticSingletonClassinstance = null;privateSingletonClass(){}public static final getInstance(){synchorinzed(this){if(instance == null){instance = newSingletonClass();}returninstance}}}在ios 閱讀全文
posted @ 2013-01-25 09:30
貓叔玩流量
閱讀(584)
評論(0)
推薦(0)
浙公網安備 33010602011771號