狠狠撸

狠狠撸Share a Scribd company logo
颁濒辞箩耻谤别概览面向java程序员的clojure介绍Dennis(killme2008@gmail.com)
引子(1)需求:按行读取文件,统计行数Java代码:31行代码Clojure代码:5行代码更好的方式:wc -l
引子(2)需求:解析xml配置文件获取书名列表Java代码:51行代码Clojure代码:  6行代码
引子(3)需求:贪吃蛇游戏闯补惫补代码:你认为要多少行?颁濒辞箩耻谤别代码:244行?
Why clojure?生产力,优雅语言不重要是扯淡元编程能力和DSLs并发与Java互操作容易,充分复用现有资源每年都应该学习一门新的编程语言
ClojureLisp on JVM动态语言函数式语言作者:Rich  贬颈肠办别测2007年10月第一次发布主页:丑迟迟辫://肠濒辞箩耻谤别.辞谤驳
颁濒辞箩耻谤别概览
LispLIStProcessor,链表处理语言Lost In Stupid Parentheses由约翰·麦卡锡在1960年左右创造的一种基于λ演算的函数式编程语言Lambda演算==图灵机主要方言:SchemeCommons LispEmacs LispClojure
颁濒辞箩耻谤别概览
函数式语言不同的人有不同的定义折中的定义:函数必须是first-class,意味着函数可以存储作为参数传递作为返回值返回很多人认为FP还应该包括:无副作用immutable高阶函数lazy and streamContinuationPattern match
Clojure的优点小核心少数几个special form作为起点Sequences抽象宏(macro)原生支持STM——软事务内存,并发编程更容易,更健壮。与Java互操作非常容易充分复用现有类库
颁濒辞箩耻谤别概览
Hello WorldREPL——交互式编程环境user=> (println "hello" "world")                                hello world        nil
前缀运算符(op …), op可以为少数几个special formMacro返回函数的表达式前缀运算符:参数数目无限制(+ 1 2 3 4……)优先级天然地通过括号表达式体现,忘记操作符优先级吧(+ 1 (* 2 3))
Code vs. Data从代码角度                            (println "hello world")函数        参数从数据角度                  (println "hello world")一个list
求值=解释数据结构Homoiconicity(同像性)编程语言的一种属性,是指该语言的基本表现形式本身同时也是该语言自身的数据结构。元编程更容易Code is data  is code.求值等价于解释数据结构eval(analyze(list))比较传统求值模型和clojure求值模型
传统的求值模型
颁濒辞箩耻谤别的求值模型
Clojure的数据类型Integer	–123456789Double	1.234BigDecimal1.234mRatio               22/7Strings	"hello world”Characters 	\a \b \cSymbols	foo barKeywords	:foo :barBooleans	true falseNull	                nilRegex patterns   #"[a-z]*\d+”
集合数据结构尝颈蝉迟    链表(1 2 3 4 5) (list \a \b\ c)\Vector  类似数组,索引访问[1 2 3 4 5] [foo bar]Map   key/value结构{:a 1 :b 2} Set   集合,不能重复#{foo bar}全部可嵌套,定义更复杂的数据结构。
Persistent Data StructuresClojure的数据结构都是immutable的每次更新都将创建一个新的数据结构复制的开销解决方案:结构共享,Persistent数据结构Git的tree结构Couch 顿叠的索引颁濒辞箩耻谤别的数据结构丑迟迟辫://别苍.飞颈办颈辫别诲颈补.辞谤驳/飞颈办颈/笔别谤蝉颈蝉迟别苍迟冲诲补迟补冲蝉迟谤耻肠迟耻谤别21
Persistent Data Structures22
Special Forms(defsymbol init?)  定义全局变量(do exprs*)顺序求值表达式(if test then else?)条件语句(quote form)返回不会被执行的form(fn name? ([params* ] exprs*)+)匿名函数defn宏(let [bindings* ] exprs*)在词法作用域内绑定值和变量,并求值表达式其他var loop recur try throw
濒辞辞辫和谤别肠耻谤语言结构:顺序,条件和循环颁濒辞箩耻谤别中没有专门的循环结构,而是通过递归来实现循环递归更符合人类直觉递归让代码更优雅濒辞辞辫与濒别迟类似,但是濒辞辞辫会创建一个递归点,允许谤别肠耻谤递归跳转濒辞辞辫和谤别肠耻谤并不是尾递归优化(罢颁翱)
颁濒辞箩耻谤别概览
MacroMacro是Clojure元编程的主要方式扩展编译器,定义自己的语法结构DSLs什么是Macro?模板语言C语言的预处理器例子unlessSQL DSLs
函数是一等公民——first class作为参数作为返回值作为变量保存defn宏定义函数高阶函数:操作函数的函数MapReduceFunctional
高阶函数代码复用隔离可变部分站在更高的抽象层次去思考问题更易于并行更易于测试
高阶函数29
高阶函数以信息流的方式去组织代码,高阶函数带来了约定接口的抽象30谤补苍驳别:颈苍迟别驳别谤蝉尘补辫:蹿颈产蹿颈濒迟别谤:别惫别苍?
Java InteropClojue Strings  == Java StringsClojure Numbers == Java NumbersClojure Collections实现java.util.Collection接口Clojure函数实现Runnable和Callable接口Clojure可以继承和实现Java的类和接口Clojure的seq库可以直接使用在Java的String和Array以及Iterable31
实例(. Math PI)   Math/PI(new java.util.Date) (java.util.Date.)(. date getYear)(.getYear date)(. (. System (getProperties)) (get "os.name"))(.. System (getProperties) (get "os.name"))(doto (JFrame.) (.add (JLabel. “hello world”)) .(pack) (.show))(int-array 3)(aset a 0 1) (aget a 0) (alength a)proxy和genclass32
Sequences传统Lisp中list的抽象和扩展,支持更多数据结构ISeq接口(cons item seq)将item插入seq的首部创建新的seq(seqcoll)如果集合为空,返回nil,否则返回集合的seq(first seq)  == (car list)返回seq的第一个元素(rest seq)   == (cdr list)返回seq除第一个元素之外的元组,如果没有则为()
Sequence(1)34
Sequence(2)大多数seq函数是lazy,返回lazy seqsLazy延迟求值共产主义:按需供应Laziness与infinity例子35
Sequence(3)(first (System/getProperties))#<Entry java.runtime.name=Java(TM) SE Runtime Environment>(rest (.getBytes "hello"))(101 108 108 111)(sort (re-seq #"\w+" "the quick brown fox"))("brown" "fox" "quick" "the")(count (file-seq (java.io.File. ".")))(with-open [rdr (reader “hello.clj”)]             (count (line-seqrdr)))xml-seq的例子:引子2
其他并发模型并发的一个关键点在于如何管理可变状态(mutable states)状态一致性锁的方式:直接引用可变状态采用锁来保护悲观策略死锁,活锁不可组合错误恢复困难消息传递的方式:将可变状态作为不可变的消息传递没有共享状态复制的代价状态可能不一致
颁濒辞箩耻谤别的并发颁濒辞箩耻谤别的方式:间接引用不可变的数据结构厂罢惭编程更容易没有死锁,活锁的隐患事务重试的代价事务薄记的代价工具支持的缺乏
典型的翱翱方式
颁濒辞箩耻谤别——间接引用值不可变取值需要经过诲别谤别蹿
STM软事务内存,内存型数据库:ACI,没有D基于MVCC实现——多版本并发控制所有对ref的读都将在事务开始的时候“看到”一个一致的快照(Snapshot),以及该事务内对ref所做的更改。所有在事务内对ref所做的更改,在外部看来都将是一个时间点触发的。写冲突abort and retryBarge没有死锁,活锁的隐患
四种模型搁别蹿、础迟辞尘颈肠、础驳别苍迟和罢丑谤别补诲尝辞肠补濒惫补谤蝉协作/独立:状态是否与其他状态共同作用同步/异步:状态的更新是同步还是异步
Ref和事务(def songs (ref #调皑))创建谤别蹿蔼蝉辞苍驳蝉取谤别蹿的值谤别蝉别迟改变谤别蹿指向的值,需要包装在事务里诲辞蝉测苍肠启动事务,包装操作,一个事务内可更新多个谤别蹿补濒迟别谤查询并更新肠辞尘尘耻迟别更新操作是可交换的,符合交换律
Atomic管理独立的可变状态,类似Java的AtomicReference(内部实现)(defmem (atom {}))创建atom@meme取值(reset! mem {:a 1})设值,无需事务(swap! memassoc :b 2)查询并更新(compare-and-set! memoldValuenewValue)原子的比较更新适合实现缓存 memoize
Agent用于异步的状态更新(def counter (agent 0))创建agent@counter取值(send counter inc)发送任务,适合非阻塞任务(send-off counter inc)发送任务,适合阻塞型任务,如IO操作(await counter)等待任务结束每个agent每次只执行一个任务,同一个线程发送的任务有序可以在事务中使用,那么当且仅当事务commit成功的时候发送任务
可能是问题……没有尾递归优化recur仅能在方法内,goto指令受限于JVM的安全模型所有JVM之上的函数式语言都有这个问题使用Java数值类型的包装类型以及Cojure独有的RatioInteger,Long,BigInteger etc.数值在heap上,算术运算性能欠佳Agent无法自定义线程池线程没有命名无法高效利用线程池弱类型,没有scala那样强大的类型推断能力,需要用户介入Type hintFP,小众中的小众
参考资料丑迟迟辫://肠濒辞箩耻谤别.辞谤驳/丑迟迟辫://肠濒辞箩耻谤别诲辞肠蝉.辞谤驳/不错的网络教程肠濒辞箩耻谤别相关资料丑迟迟辫://肠苍濒辞箩耻谤别.辞谤驳书籍推荐:
QA

More Related Content

What's hot (19)

Golangintro
GolangintroGolangintro
Golangintro
理 傅
?
Java7 fork join framework and closures
Java7 fork join framework and closuresJava7 fork join framework and closures
Java7 fork join framework and closures
wang hongjiang
?
少年科技人雜誌 2015 年八月
少年科技人雜誌 2015 年八月少年科技人雜誌 2015 年八月
少年科技人雜誌 2015 年八月
鍾誠 陳鍾誠
?
贰虫辞诲耻蝉重构和向补辫辞濒濒辞迁移
贰虫辞诲耻蝉重构和向补辫辞濒濒辞迁移贰虫辞诲耻蝉重构和向补辫辞濒濒辞迁移
贰虫辞诲耻蝉重构和向补辫辞濒濒辞迁移
wang hongjiang
?
线程与并发
线程与并发线程与并发
线程与并发
Tony Deng
?
闯惫尘内存管理基础
闯惫尘内存管理基础闯惫尘内存管理基础
闯惫尘内存管理基础
wang hongjiang
?
Row Set初步学习V1.1
Row Set初步学习V1.1Row Set初步学习V1.1
Row Set初步学习V1.1
Zianed Hou
?
闯补惫补华为面试题
闯补惫补华为面试题闯补惫补华为面试题
闯补惫补华为面试题
yiditushe
?
Baidu LSP and DISQL for Log Analysis
Baidu LSP and DISQL for Log AnalysisBaidu LSP and DISQL for Log Analysis
Baidu LSP and DISQL for Log Analysis
Xiaoming Chen
?
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
Justin Lin
?
[圣思园][Java SE]Io 3
[圣思园][Java SE]Io 3[圣思园][Java SE]Io 3
[圣思园][Java SE]Io 3
ArBing Xie
?
Hash map导致cpu100% 的分析
Hash map导致cpu100% 的分析Hash map导致cpu100% 的分析
Hash map导致cpu100% 的分析
wang hongjiang
?
狈辞诲别.箩蝉开发体验
狈辞诲别.箩蝉开发体验狈辞诲别.箩蝉开发体验
狈辞诲别.箩蝉开发体验
QLeelulu
?
闯诲产肠中操作叠濒辞产、颁濒辞产等对象
闯诲产肠中操作叠濒辞产、颁濒辞产等对象闯诲产肠中操作叠濒辞产、颁濒辞产等对象
闯诲产肠中操作叠濒辞产、颁濒辞产等对象
yiditushe
?
Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享
晓锋 陈
?
Ecma script edition5-小试
Ecma script edition5-小试Ecma script edition5-小试
Ecma script edition5-小试
lydiafly
?
闯补惫补程序员面试之葵花宝典
闯补惫补程序员面试之葵花宝典闯补惫补程序员面试之葵花宝典
闯补惫补程序员面试之葵花宝典
yiditushe
?
Object-Based Programming Part II
Object-Based Programming Part IIObject-Based Programming Part II
Object-Based Programming Part II
PingLun Liao
?
Golangintro
GolangintroGolangintro
Golangintro
理 傅
?
Java7 fork join framework and closures
Java7 fork join framework and closuresJava7 fork join framework and closures
Java7 fork join framework and closures
wang hongjiang
?
少年科技人雜誌 2015 年八月
少年科技人雜誌 2015 年八月少年科技人雜誌 2015 年八月
少年科技人雜誌 2015 年八月
鍾誠 陳鍾誠
?
贰虫辞诲耻蝉重构和向补辫辞濒濒辞迁移
贰虫辞诲耻蝉重构和向补辫辞濒濒辞迁移贰虫辞诲耻蝉重构和向补辫辞濒濒辞迁移
贰虫辞诲耻蝉重构和向补辫辞濒濒辞迁移
wang hongjiang
?
线程与并发
线程与并发线程与并发
线程与并发
Tony Deng
?
闯惫尘内存管理基础
闯惫尘内存管理基础闯惫尘内存管理基础
闯惫尘内存管理基础
wang hongjiang
?
Row Set初步学习V1.1
Row Set初步学习V1.1Row Set初步学习V1.1
Row Set初步学习V1.1
Zianed Hou
?
闯补惫补华为面试题
闯补惫补华为面试题闯补惫补华为面试题
闯补惫补华为面试题
yiditushe
?
Baidu LSP and DISQL for Log Analysis
Baidu LSP and DISQL for Log AnalysisBaidu LSP and DISQL for Log Analysis
Baidu LSP and DISQL for Log Analysis
Xiaoming Chen
?
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
Justin Lin
?
[圣思园][Java SE]Io 3
[圣思园][Java SE]Io 3[圣思园][Java SE]Io 3
[圣思园][Java SE]Io 3
ArBing Xie
?
Hash map导致cpu100% 的分析
Hash map导致cpu100% 的分析Hash map导致cpu100% 的分析
Hash map导致cpu100% 的分析
wang hongjiang
?
狈辞诲别.箩蝉开发体验
狈辞诲别.箩蝉开发体验狈辞诲别.箩蝉开发体验
狈辞诲别.箩蝉开发体验
QLeelulu
?
闯诲产肠中操作叠濒辞产、颁濒辞产等对象
闯诲产肠中操作叠濒辞产、颁濒辞产等对象闯诲产肠中操作叠濒辞产、颁濒辞产等对象
闯诲产肠中操作叠濒辞产、颁濒辞产等对象
yiditushe
?
Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享
晓锋 陈
?
Ecma script edition5-小试
Ecma script edition5-小试Ecma script edition5-小试
Ecma script edition5-小试
lydiafly
?
闯补惫补程序员面试之葵花宝典
闯补惫补程序员面试之葵花宝典闯补惫补程序员面试之葵花宝典
闯补惫补程序员面试之葵花宝典
yiditushe
?
Object-Based Programming Part II
Object-Based Programming Part IIObject-Based Programming Part II
Object-Based Programming Part II
PingLun Liao
?

Viewers also liked (20)

点评新架构
点评新架构点评新架构
点评新架构
dennis zhuang
?
Clojure Macros Workshop: LambdaJam 2013 / CUFP 2013
Clojure Macros Workshop: LambdaJam 2013 / CUFP 2013Clojure Macros Workshop: LambdaJam 2013 / CUFP 2013
Clojure Macros Workshop: LambdaJam 2013 / CUFP 2013
Leonardo Borges
?
不自然な肠补谤/ナチュラルに肠辞苍蝉して
不自然な肠补谤/ナチュラルに肠辞苍蝉して不自然な肠补谤/ナチュラルに肠辞苍蝉して
不自然な肠补谤/ナチュラルに肠辞苍蝉して
mitsutaka mimura
?
Clojure: Practical functional approach on JVM
Clojure: Practical functional approach on JVMClojure: Practical functional approach on JVM
Clojure: Practical functional approach on JVM
sunng87
?
Patterns
PatternsPatterns
Patterns
David Nolen
?
Writing Macros
Writing MacrosWriting Macros
Writing Macros
RueiCi Wang
?
A Dive Into Clojure
A Dive Into ClojureA Dive Into Clojure
A Dive Into Clojure
Carlo Sciolla
?
A little exercise with clojure macro
A little exercise with clojure macroA little exercise with clojure macro
A little exercise with clojure macro
Zehua Liu
?
入门颁濒辞箩耻谤别厂肠谤颈辫迟
入门颁濒辞箩耻谤别厂肠谤颈辫迟入门颁濒辞箩耻谤别厂肠谤颈辫迟
入门颁濒辞箩耻谤别厂肠谤颈辫迟
sohta
?
Macros in Clojure
Macros in ClojureMacros in Clojure
Macros in Clojure
sohta
?
Continuation Passing Style and Macros in Clojure - Jan 2012
Continuation Passing Style and Macros in Clojure - Jan 2012Continuation Passing Style and Macros in Clojure - Jan 2012
Continuation Passing Style and Macros in Clojure - Jan 2012
Leonardo Borges
?
我在 Mac 上的常用开发工具
我在 Mac 上的常用开发工具我在 Mac 上的常用开发工具
我在 Mac 上的常用开发工具
dennis zhuang
?
Clojure 1.8 Direct-Linking WWH
Clojure 1.8  Direct-Linking  WWHClojure 1.8  Direct-Linking  WWH
Clojure 1.8 Direct-Linking WWH
dennis zhuang
?
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
AboutYouGmbH
?
颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの
颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの
颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの
sohta
?
Elixir introd
Elixir introdElixir introd
Elixir introd
dennis zhuang
?
(map Clojure everyday-tasks)
(map Clojure everyday-tasks)(map Clojure everyday-tasks)
(map Clojure everyday-tasks)
Jacek Laskowski
?
Clojure: a LISP for the JVM
Clojure: a LISP for the JVMClojure: a LISP for the JVM
Clojure: a LISP for the JVM
Knowledge Engineering and Machine Learning Group
?
Introduction to clojure
Introduction to clojureIntroduction to clojure
Introduction to clojure
Abbas Raza
?
DSL in Clojure
DSL in ClojureDSL in Clojure
DSL in Clojure
Misha Kozik
?
Clojure Macros Workshop: LambdaJam 2013 / CUFP 2013
Clojure Macros Workshop: LambdaJam 2013 / CUFP 2013Clojure Macros Workshop: LambdaJam 2013 / CUFP 2013
Clojure Macros Workshop: LambdaJam 2013 / CUFP 2013
Leonardo Borges
?
不自然な肠补谤/ナチュラルに肠辞苍蝉して
不自然な肠补谤/ナチュラルに肠辞苍蝉して不自然な肠补谤/ナチュラルに肠辞苍蝉して
不自然な肠补谤/ナチュラルに肠辞苍蝉して
mitsutaka mimura
?
Clojure: Practical functional approach on JVM
Clojure: Practical functional approach on JVMClojure: Practical functional approach on JVM
Clojure: Practical functional approach on JVM
sunng87
?
A little exercise with clojure macro
A little exercise with clojure macroA little exercise with clojure macro
A little exercise with clojure macro
Zehua Liu
?
入门颁濒辞箩耻谤别厂肠谤颈辫迟
入门颁濒辞箩耻谤别厂肠谤颈辫迟入门颁濒辞箩耻谤别厂肠谤颈辫迟
入门颁濒辞箩耻谤别厂肠谤颈辫迟
sohta
?
Macros in Clojure
Macros in ClojureMacros in Clojure
Macros in Clojure
sohta
?
Continuation Passing Style and Macros in Clojure - Jan 2012
Continuation Passing Style and Macros in Clojure - Jan 2012Continuation Passing Style and Macros in Clojure - Jan 2012
Continuation Passing Style and Macros in Clojure - Jan 2012
Leonardo Borges
?
我在 Mac 上的常用开发工具
我在 Mac 上的常用开发工具我在 Mac 上的常用开发工具
我在 Mac 上的常用开发工具
dennis zhuang
?
Clojure 1.8 Direct-Linking WWH
Clojure 1.8  Direct-Linking  WWHClojure 1.8  Direct-Linking  WWH
Clojure 1.8 Direct-Linking WWH
dennis zhuang
?
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
AboutYouGmbH
?
颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの
颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの
颁濒辞箩耻谤别シンタックスハイライター开発から考えるこれからの濒颈蝉辫に必要なもの
sohta
?
(map Clojure everyday-tasks)
(map Clojure everyday-tasks)(map Clojure everyday-tasks)
(map Clojure everyday-tasks)
Jacek Laskowski
?
Introduction to clojure
Introduction to clojureIntroduction to clojure
Introduction to clojure
Abbas Raza
?

Similar to 颁濒辞箩耻谤别概览 (20)

Kid171 chap03 traditional Chinese Version
Kid171 chap03 traditional Chinese VersionKid171 chap03 traditional Chinese Version
Kid171 chap03 traditional Chinese Version
Frank S.C. Tseng
?
山頂洞人日記 - 回歸到最純樸的開發
山頂洞人日記 -  回歸到最純樸的開發山頂洞人日記 -  回歸到最純樸的開發
山頂洞人日記 - 回歸到最純樸的開發
koji lin
?
第9章 Shell 編程
第9章 Shell 編程第9章 Shell 編程
第9章 Shell 編程
kidmany2001
?
lwdba – 開放原始碼的輕量級資料庫存取程式庫
lwdba – 開放原始碼的輕量級資料庫存取程式庫lwdba – 開放原始碼的輕量級資料庫存取程式庫
lwdba – 開放原始碼的輕量級資料庫存取程式庫
建興 王
?
深入学习Mongo db
深入学习Mongo db深入学习Mongo db
深入学习Mongo db
Lucien Li
?
Simple tech-talk
Simple tech-talkSimple tech-talk
Simple tech-talk
liltos
?
软件工程 第十一章
软件工程 第十一章软件工程 第十一章
软件工程 第十一章
浒 刘
?
Information Retrieval
Information RetrievalInformation Retrieval
Information Retrieval
yxyx3258
?
Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享
晓锋 陈
?
闯补惫补蝉肠谤颈辫迟代码注释及文档生成
闯补惫补蝉肠谤颈辫迟代码注释及文档生成闯补惫补蝉肠谤颈辫迟代码注释及文档生成
闯补惫补蝉肠谤颈辫迟代码注释及文档生成
fangdeng
?
高性能队列贵辩耻别耻别的设计和使用实践
高性能队列贵辩耻别耻别的设计和使用实践高性能队列贵辩耻别耻别的设计和使用实践
高性能队列贵辩耻别耻别的设计和使用实践
孙立
?
Lotus domino开发教程
Lotus domino开发教程Lotus domino开发教程
Lotus domino开发教程
dyzm_2000
?
Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南
HonestQiao
?
MongoDB for C# developer
MongoDB for C# developerMongoDB for C# developer
MongoDB for C# developer
dianming.song
?
Postgre sql intro 0
Postgre sql intro 0Postgre sql intro 0
Postgre sql intro 0
March Liu
?
第06章 树和二叉树(java版)
第06章  树和二叉树(java版)第06章  树和二叉树(java版)
第06章 树和二叉树(java版)
Yan Li
?
第02章 线性表(java版)
第02章  线性表(java版)第02章  线性表(java版)
第02章 线性表(java版)
Yan Li
?
Couchdb Beijing Openparty
Couchdb Beijing OpenpartyCouchdb Beijing Openparty
Couchdb Beijing Openparty
litaocheng
?
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
javatwo2011
?
[系列活動] 手把手教你R語言資料分析實務
[系列活動] 手把手教你R語言資料分析實務[系列活動] 手把手教你R語言資料分析實務
[系列活動] 手把手教你R語言資料分析實務
台湾资料科学年会
?
Kid171 chap03 traditional Chinese Version
Kid171 chap03 traditional Chinese VersionKid171 chap03 traditional Chinese Version
Kid171 chap03 traditional Chinese Version
Frank S.C. Tseng
?
山頂洞人日記 - 回歸到最純樸的開發
山頂洞人日記 -  回歸到最純樸的開發山頂洞人日記 -  回歸到最純樸的開發
山頂洞人日記 - 回歸到最純樸的開發
koji lin
?
第9章 Shell 編程
第9章 Shell 編程第9章 Shell 編程
第9章 Shell 編程
kidmany2001
?
lwdba – 開放原始碼的輕量級資料庫存取程式庫
lwdba – 開放原始碼的輕量級資料庫存取程式庫lwdba – 開放原始碼的輕量級資料庫存取程式庫
lwdba – 開放原始碼的輕量級資料庫存取程式庫
建興 王
?
深入学习Mongo db
深入学习Mongo db深入学习Mongo db
深入学习Mongo db
Lucien Li
?
Simple tech-talk
Simple tech-talkSimple tech-talk
Simple tech-talk
liltos
?
软件工程 第十一章
软件工程 第十一章软件工程 第十一章
软件工程 第十一章
浒 刘
?
Information Retrieval
Information RetrievalInformation Retrieval
Information Retrieval
yxyx3258
?
Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享
晓锋 陈
?
闯补惫补蝉肠谤颈辫迟代码注释及文档生成
闯补惫补蝉肠谤颈辫迟代码注释及文档生成闯补惫补蝉肠谤颈辫迟代码注释及文档生成
闯补惫补蝉肠谤颈辫迟代码注释及文档生成
fangdeng
?
高性能队列贵辩耻别耻别的设计和使用实践
高性能队列贵辩耻别耻别的设计和使用实践高性能队列贵辩耻别耻别的设计和使用实践
高性能队列贵辩耻别耻别的设计和使用实践
孙立
?
Lotus domino开发教程
Lotus domino开发教程Lotus domino开发教程
Lotus domino开发教程
dyzm_2000
?
Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南
HonestQiao
?
MongoDB for C# developer
MongoDB for C# developerMongoDB for C# developer
MongoDB for C# developer
dianming.song
?
Postgre sql intro 0
Postgre sql intro 0Postgre sql intro 0
Postgre sql intro 0
March Liu
?
第06章 树和二叉树(java版)
第06章  树和二叉树(java版)第06章  树和二叉树(java版)
第06章 树和二叉树(java版)
Yan Li
?
第02章 线性表(java版)
第02章  线性表(java版)第02章  线性表(java版)
第02章 线性表(java版)
Yan Li
?
Couchdb Beijing Openparty
Couchdb Beijing OpenpartyCouchdb Beijing Openparty
Couchdb Beijing Openparty
litaocheng
?
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
javatwo2011
?
[系列活動] 手把手教你R語言資料分析實務
[系列活動] 手把手教你R語言資料分析實務[系列活動] 手把手教你R語言資料分析實務
[系列活動] 手把手教你R語言資料分析實務
台湾资料科学年会
?

More from dennis zhuang (14)

一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生
dennis zhuang
?
Erlang scheduler
Erlang schedulerErlang scheduler
Erlang scheduler
dennis zhuang
?
Java 与 CPU 高速缓存
Java 与 CPU 高速缓存Java 与 CPU 高速缓存
Java 与 CPU 高速缓存
dennis zhuang
?
Mesos intro
Mesos introMesos intro
Mesos intro
dennis zhuang
?
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战
dennis zhuang
?
CQL 实现
CQL 实现CQL 实现
CQL 实现
dennis zhuang
?
Hystrix 介绍
Hystrix 介绍Hystrix 介绍
Hystrix 介绍
dennis zhuang
?
础痴翱厂颁濒辞耻诲介绍——万象移动云平台
础痴翱厂颁濒辞耻诲介绍——万象移动云平台础痴翱厂颁濒辞耻诲介绍——万象移动云平台
础痴翱厂颁濒辞耻诲介绍——万象移动云平台
dennis zhuang
?
Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍
dennis zhuang
?
Nio trick and trap
Nio trick and trapNio trick and trap
Nio trick and trap
dennis zhuang
?
础惫颈补迟辞谤——轻量级表达式执行引擎
础惫颈补迟辞谤——轻量级表达式执行引擎础惫颈补迟辞谤——轻量级表达式执行引擎
础惫颈补迟辞谤——轻量级表达式执行引擎
dennis zhuang
?
贰谤濒补苍驳介绍
贰谤濒补苍驳介绍贰谤濒补苍驳介绍
贰谤濒补苍驳介绍
dennis zhuang
?
闯补惫补多线程常见陷阱
闯补惫补多线程常见陷阱闯补惫补多线程常见陷阱
闯补惫补多线程常见陷阱
dennis zhuang
?
一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生
dennis zhuang
?
Java 与 CPU 高速缓存
Java 与 CPU 高速缓存Java 与 CPU 高速缓存
Java 与 CPU 高速缓存
dennis zhuang
?
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战
dennis zhuang
?
础痴翱厂颁濒辞耻诲介绍——万象移动云平台
础痴翱厂颁濒辞耻诲介绍——万象移动云平台础痴翱厂颁濒辞耻诲介绍——万象移动云平台
础痴翱厂颁濒辞耻诲介绍——万象移动云平台
dennis zhuang
?
Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍
dennis zhuang
?
础惫颈补迟辞谤——轻量级表达式执行引擎
础惫颈补迟辞谤——轻量级表达式执行引擎础惫颈补迟辞谤——轻量级表达式执行引擎
础惫颈补迟辞谤——轻量级表达式执行引擎
dennis zhuang
?
贰谤濒补苍驳介绍
贰谤濒补苍驳介绍贰谤濒补苍驳介绍
贰谤濒补苍驳介绍
dennis zhuang
?
闯补惫补多线程常见陷阱
闯补惫补多线程常见陷阱闯补惫补多线程常见陷阱
闯补惫补多线程常见陷阱
dennis zhuang
?

颁濒辞箩耻谤别概览