- 博客(12)
- 资源 (3)
- 收藏
- 关注
翻译 基于AWS的云服务架构最佳实践
近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关理念,并以最佳实践的方式加以实施。在今天的“信息时代”,这些理念更加适用于不断增长的数据集,不可预知的流量模式,以及快速响应时间的需求。本文将强调并重申其中的一些传统观念,并讨论他们如何在融合云计算的发展,还将讨论由于云计算的动态性而产生的一些前所未有的概念(如弹性)。本文的目标是面向云架构师,如何将移动企业级应用从一个固定的物理环境
2015-01-30 12:43:52 13184
原创 编程基本功触类旁通
Spark 是用scala写的,storm是clojure开发的,docker采用了go, 各种编程语言层出不穷,但其实都是马甲,作为一个程序员,我们需要理解那些相通的本质,做到触类旁通. 程序中的基本逻辑控制——跳转,在汇编语言中早就有满足条件后跳转的命令了。所谓跳转,就是告诉机器到那去干活. 就像过去的接线员那样,因而C语言中有个goto语句,它是跳转的最直接的解释. 如果程序中goto多了,恐怕没谁能看懂了. 为了避免goto语句的不便理解,C语言中的if...else语句就变得更让人欢迎了。
2015-01-09 08:48:18 2198
原创 scala 简要: Actor
actor提供了并发程序中与传统的基于锁的结构不同的另一种选择,通过尽可能避免锁和共享状态,actor更容易地设计出正确、没有死锁或争用状况的程序。Scala提供了actor的简单实现,akka(http://akka.io)提供了高级actor类库。每个actor都要扩展Actor类并重写Act方法,actor是处理异步消息的对象,消息可以是任何对象,通过!操作符发送消息,例如:actorX !
2015-01-03 07:25:29 1935
原创 scala简要:高级函数和高级类型
在scala中,函数是头等公民,可以用变量存储函数,可以使用匿名函数,和带参数的函数。如果需要一个序列的值,一般从一个简单序列转化得出。函数可以在变量不再作用域内时被调用,这样的函数叫闭包。柯里化是指将原来接受两个参数变成接受一个参数的函数的过程。不需要用return语句来返回函数值,函数的返回值就是函数体的值。 scala中......
2015-01-02 19:43:22 2823
原创 scala 简要: xml处理
Scala提供了对xml的内建支持,可以用scala.xml.Elem的值表示一个XML元素。Node类是所有xml节点类型的父类,Elem类描述xml元素。要处理某个元素的属性键和值,可以用attributes属性,然后用()来访问定键的值 ,使用循环或asAttrMap方法遍历所有属性。内嵌的字符串会被转成Atom[String]节点,所以可在xml中包含scala代码,被内嵌的scala代码
2015-01-02 17:35:35 3747
原创 scala简要:注解
注解可以在程序的各个条目中添加信息,是插入到代码中以便有工具可以对他们进行处理的标签。可以对是scala类使用java注解,也可以使用scala特有的注解。在scala中,可为类,方法,字段,局部变量和参数添加注解。Java注解的参数类型只能是:1)数值型变量2)字符串3)类变量4)java枚举5)其他注解6)上述类型的数组。如果要实现一个新的Java注解,则需要用Java来编写该注解类......
2015-01-02 14:55:38 3468
原创 scala简要:模式匹配
与switch语句不同,scala模式匹配没有break的问题。如果case中的判断不能匹配,则捕获所有的模式来尝试匹配。变量模式可能与常量表达式冲突,变量必须以小写字母开头。如果有一个小写字母开头的常量,则需要把它抱在反引号中。在类型匹配的时候,必须给出一个变量名,否则会拿对象本身来进行匹配。由于匹配发生在运行时,Jvm中泛型的类型信息是被擦掉的,所有不能用类型来匹配特定的Map类型。正则表达式是......
2015-01-02 14:47:09 1565
原创 scala 简要:集合
Scala中所有集合都是iterable的,seq是有先后次序的序列(如数组和列表),Set是没有先后次序的序列,map是一种键值对偶。scala优先采用不可变集合,::操作符从给定的头和尾创建一个新的列表。如果要把列表中的某个节点变成列表中的最后一个节点,不能将next引用设为nil,而应该设为LinkedList.empty.已排序的集使用红黑树实现的,scala2.9没有可变的已排序集,要用到java.......
2015-01-02 14:03:21 1391
原创 scala简要:操作符和解析器
变量、函数、类等的名称统称为标识符,反引号中可以包含几乎任何字符序列。在scala中,除了-以冒号:结尾的操作符-赋值操作符所有操作符都是左结合的。unapply方法接受一个对象,然后从中取值,通常是当初用来构造该对象的值。要取任意长度的值的序列,一般用unapplySeq命名方法。Scala解析器库是scala语言总内嵌领域特定语言(DSL)的高级示例。为了使用Scala解析库,需提供一个扩展......
2015-01-02 10:17:30 3114
原创 scala简要:文件访问
scala.io.source对象的getlines方法可以读取文件的所有行,可以把source对象当成迭代器读取文件中的每个字符,java.util.Scanner来处理同事包含文本和数字的文件。从URL中读取时,需要事先知道编码格式,scala中没有提供读取二进制文件的方法,需要使用Java类库,同样没有内建的对写入文件的支持,可使用java.io.PrintWriter,访问目录也要用java......
2015-01-02 09:56:56 3031
原创 scala简要: 继承
scala扩展类同样是使用extends关键字,重写一个非抽象方法必须使用override修饰符,用isInstanceOf方法判断某个对象是否属于某个特定的类,只有主构造器可以调用超类的构造器。字段重写时的限制:-def 只能重写另一个def-val只能重写另一个val或不带参数的def-var只能重写另一个抽象的var构造顺序问题的根本原因——java允许在超类的构造方法中调用子类的方法......
2015-01-01 21:08:02 1513
原创 scala简要:包
Scala中的包与java包或c++命名空间的目的相同,但可以在同一文件中为多个包贡献内容。尽量使用完整包名,避免使用scala,java,com,org等来命名嵌套的包。串联式包语句可以限定可见的包。包可以包含类,对象和属性,但不能包含函数和变量的定义,在实现上,包对象被编译成带有静态方法和字段的JvM类。通过修饰符同样可以达到public,private或protected的效果。在scala中......
2015-01-01 21:01:23 1436
计算机世界1000期特稿——信息革命的流金岁月
2008-11-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人