领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Werner Schuster 译者 侯伯薇 发布于 2011年5月22日
Akka 1.1是在5月12日发布的,它在Akka 1.0的基础上做出了一些改进。另外,Scala 2.9也在当天发布(Akka 1.1需要Scala 2.9);Scala和Akka现在都是由Martin Odersky和Jonas Bonér创建的新公司Typesafe来管理的,该公司提供针对Akka、Scala以及构建在这两种技术上的商业产品的培训和支持。Typesafe还提供了一个完整的框架。
Akka 1.1 (akka-actor) 现在只依赖于Scala 2.9执行。除了其他变更,大量的工作都是为了提供Futures(据声明所说):
-Futures的Dataflow API使用了限定的延续方式,从而你可以编写表面上看起来是阻塞的代码,而实际上不会阻塞运行时
-Futures现在完全是一元的,这意味着它具备一种好处,就是能够很好地理解for循环
-Futures现在拥有大量非阻塞型的方法,这让Futures可以组合在一起,而不会产生阻塞
- Futures现在可以在所有调度程序的本地执行。
听到Futures现在是一元的消息,函数式编程开发者会很高兴,并且还有map 和flatMap方法,让他们可以使用Scala的for语法(据文档所说):
val f = for {
a <- Future(10 / 2) // 10 / 2 = 5
b <- Future(a + 1) // 5 + 1 = 6
c <- Future(a - 1) // 5 - 1 = 4
} yield b * c // 6 * 4 = 24
val result = f.get()
对于一元代码,使用Scala的for语句的方式和Haskell的do标记是类似的。例如,它可以把计算结果有序地组合成字符串。(想要快速了解Monads,你可以参见"Monads Made Easy")。
在GotoCon Copenhagen 2011会议上,InfoQ有幸对Jonas Bonér进行了采访,向他询问了关于Akka 1.1的问题以及Akka将来的计划。
InfoQ: 现在Akka 1.1需要Scala 2.9,这样做的原因何在? 你们已经使用了Scala 2.9中的新特性吗(如果是的话,有哪些呢)? 在从Scala 2.8迁移到2.9的过程中,你遇到过什么困难吗?
Scala 2.9.0和2.8.x相比有很大的改进,我们利用了它所做出的bug修正、性能改善,还有一些新特性。在从2.8升级的过程中,我们还没有遇到什么重大问题,这个过程非常平滑。
InfoQ: 在Agent中的await/future方法指的是什么? 在当前的操作等待返回值的时候,它们会导致其终止并重新安排计划吗?
Agent.future会向底层进行查询的操作发送消息,以得到Agent当前的值。它是通过使用!!!方法完成的,那会立刻带Future返回。
Agent.await是Agent.future.await.result.get的别名,所以它是阻塞型调用,而Agent.future让你可以选择使用针对非阻塞型Future组合的新API。
InfoQ: Akka 1.1的默认调度程序与1.0相比有哪些改善呢;HawtDispatch 在哪些地方更有用或者更快呢?
这很难用几句话说清楚。这段时间中我们对其进行了一系列细微的调整。HawtDispatch并不会更快。我并不赞成把Akka中的HawtDispatch 从Akka核心中转移出来。我唯一觉得有用的地方就在于你可以做低级的NIO。以下是来自于最新评测的结果:
![]()
想要了解关于这些评测的更多细节,你可以参考akka-user list上的讨论。
InfoQ: 你们已经计划在Akka 2.0中添加更多重大的新特性,或者做大的改变吗?
是的。我们现在正努力把商业Akka产品套件中对集群(cluster)的支持迁移到Akka Open Source中。我们会在初秋的时候随着Akka 2.0一起发布这个特性。集群操作(如果你喜欢,可以把它叫做remoting或者分布式)会完全被提取到配置任务中。这意味着你可以获得任何只能够在本地运行的Akka应用程序,然会对其进行配置(从外部),就可以让它可以进行集群、复制、路由等等。
以下是它所能够包含的新特性列表。
在Akka 2.0中:在Akka 2.0之后:
- 透明且自适应的负载平衡/路由
- 透明且自适应的集群平衡
- 自动复制,并且在节点崩溃的时候能够自动恢复
- 持久的操作者邮箱
- 基于订阅的集群成员服务(不停机进行增加/删除节点)
- 基于高可用、可扩展的事务日志,提供Event Sourcing
- 高可用的中心化配置服务,Leader election
云Akka(例如,商业化的插件产品套件)中只会包含操作内容,像监控、管理、provisioning、dashboard、EC2支持等等。
- 计算网格/MapReduce
- 数据网格
- 分布式STM
查看英文原文:Akka 1.1 Released, Brings Many Improvements to Futures and Performance, Reduces Dependencies,
译者 侯伯薇 是InfoQ中文站架构社区编辑,有多年对日和国内项目开发经验,目前关注企业中技术与实际业务之间的融合和协作。
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
论道WP第三篇专栏,以应用程序栏的使用为中心,包括了软键盘带来的问题、应用程序栏介绍、如何绑定应用程序栏的属性等几个方面的具体话题,为开发者顺利使用应用程序栏开发提供了具体指导。
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
1 条回复
关注此讨论 回复