Programming Paradigms
RayChase
博客搬家了: https://www.raychase.net/
展开
-
函数式编程(Functional Programming)
函数式编程已经有比较长的历史了,如今的动态语言,很大程度上也受到了函数式编程(反过来名叫命令式编程)的启发。在函数式编程语言中,当你写了一个函数,接受一些参数,那么当你调用这个函数时,影响函数调用的只可能是你传进去的参数,而你得到的也只能够是计算结果。因此,一个void的方法,是没有任何意义的。如果传入了引用类型的参数,也是不合要求的。在函数式编程中访问状态是十分安全的,因为状态不会改变,...2011-02-11 21:04:00 · 141 阅读 · 0 评论 -
代码的变和不变
哲学上说变与不变,讲的是绝对运动与相对静止的道理,在代码设计中,也有许多变和不变之间的辩证故事。 有一些类在创建以后,整个生命周期内都不会发生变化,这种模式被称为Immutable Pattern。较弱的不变模式:指的是一个类的实例状态是不可变化的,但是这个类的引用的实例却可以变化。比如说:Visitor模式常常是这样的,整个流程是不可变的,但是我为我的整个流程提供灵活的切入点,提...2011-03-14 23:51:00 · 141 阅读 · 0 评论 -
关于“无状态”,从Amazon的工作流框架中获得的思考
这个话题是从我对Amazon云平台的工作流框架AWS Flow Framework的使用研究中想到的,对于一个工作流引擎来说,一个完整工作流的某个阶段完成后,当前阶段的状态必须要被存储下来。 Workflow(Decider)来决定任务的执行流程,Activity来执行实际的任务,二者都封装在相应的Worker中执行,但不直接交互,而是通过SWF管理起来。不过,除了SWF的日志,它们都...2012-03-02 23:16:20 · 245 阅读 · 0 评论 -
编程语言学习和使用的观点
我的一些关于编程语言学习和使用的观点如下,因为最近谈到这个事情,就记录下来吧,但是我只想简单的表述出来。当然,我不想陷入语言孰优孰劣这种争论的圈子里。多掌握一门语言有没有价值?如果一门新的语言能改变你对编程的理解,它就是值得学习的。另外,每一门语言对应着一种或几种“编程范型”,接触不同的编程范型是很有价值的,这是扩展视野的好机会。编程语言只是工具,工具都是用来解决特定的问题的。特定的问题...2013-03-25 10:29:16 · 165 阅读 · 0 评论 -
Java多线程发展简史
这篇文章,大部分内容,是周五我做的一个关于如何进行Java多线程编程的Knowledge Sharing的一个整理,我希望能对Java从第一个版本开始,在多线程编程方面的大事件和发展脉络有一个描述,并且提及一些在多线程编程方面常见的问题。对于Java程序员来说,如果从历史的角度去了解一门语言一个特性的演进,或许能有不同收获。 引言首先问这样一个问题,如果提到Java多线程编程,你...2012-09-15 16:49:20 · 344 阅读 · 0 评论 -
泛型趣谈
Java中的泛型带来了什么好处?规约。就像接口定义一样,可以帮助对于泛型类型和对象的使用上,保证类型的正确性。如果没有泛型的约束,程序员大概需要在代码里面使用大量的类型强制转换语句,而且需要非常清楚没有标注的对象实际类型,这是容易出错的、恼人的。但是话说回来,泛型可不只有规约,还有很多有趣的用法,容我一一道来。 泛型擦除Java的泛型在编译阶段实际上就已经被擦除了(这也是它和C#泛型...2014-01-08 21:42:20 · 348 阅读 · 0 评论 -
Lombok介绍
最初我是在公司内部的broadcast上面听到有principal介绍到它的,和AspectJ归在一起。看了几个例子之后觉得有点意思,就去Lombok的官网上扒了一下。我们已经知道向AspectJ、CGLib等等都可以做到对已有Java代码在字节码层级的改变,无论是编译时期静态织入还是运行时期动态代理,对于我们使用AOP来减少那些重复性编码的劳动、增加切面性质的逻辑颇有帮助。这里有几个概念:...2013-09-08 23:21:14 · 204 阅读 · 0 评论 -
Java8集合中的Lambda表达式
本文翻译自《Java 8 Explained: Applying Lambdas to Java Collections》。Lambdas表达式是Java 8的主题,在Java平台上我们期待了很久。但是,如果如果我们不在集合中使用它的话,就损失了很大价值。把现有接口迁移成为lambda风格接口的问题已经通过default methods,也就是defender methods解决了。在这篇文...2013-10-18 22:31:05 · 191 阅读 · 0 评论