领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Jean-Jacques Dubray 译者 韩锴 发布于 2008年3月25日
Erlang,一种可以让并发兼得优美与效率的语言,最近受到了很大的关注。特别是人们把Erlang看作是多核处理器下的一种自然编程语言。Erlang的一个核心设计概念就是“进程”实例之间没有共享存储,它们的通信只能依靠异步消息。然而,共享存储形式的并发仍然是一个强势的研究课题。
上周,UWTV的Dan Grossman发布了一段Webcast,“软件性事务:一种编程语言的视角”。它展示了事务性存储的当代最新发展。Dan还在Google和UC Berkeley做了相关的报告。
Dan Grossman是华盛顿大学计算机科学与工程学院的一名助理教授。他的研究领域包括编程语言的设计、实现和理论。
Dan的报告所关注的是事务对于编程语言的语义和实现会带来哪些影响,并探讨了可伸缩的多线程事务的发展:
多核处理器会引爆并行计算,因此当务之急是降低并发编程的难度。为了简化共享存储形式的并发,软件性事务(Software Transaction)承载了太多承诺,它在最近的十多年里受到了来自研究团体的强烈关注。
他还在事务性存储和垃圾回收之间做了一个有趣的对比:
事务性存储(TM)之于共享存储并发
犹如
垃圾回收(GC)之于内存管理
他解释说,并发编程的困难类似于内存管理,你需要平衡正确性和性能。他也讨论了非模块化的调用者和被调用者之间必须知道彼此,因此通常一个微小的修改都会导致大规模的代码变化。
他认为问题的解决方案是把手动编码的协议迁移到语言的实现中,就像GC一样,尽管他也承认事务性存储不是一个完善的解决方案,比如遇到下面这种情况时:
内存冲突严重到近乎无法并行执行的程度。Dan为三种不同的隔离级别引入了源码级的形式化语义:
他提起了一个被广泛误解的概念:
“弱”隔离只有在相应的锁代码中存在竞争时才会违反“all-at-once”特征。
接下来,Dan提出了几个关键的定理,包括下面这个:
“弱-撤销”允许某些“弱-1-锁”不允许的行为
在他报告中的第二部分里,开始关注如何把这些语义应用到多核系统中。首先,Dan指出了单处理器是一种重要的特例:
- 通过共享存储进行通讯的多个线程不能真正地并行执行
- 很多编程语言的实现都假设单处理器的存在
- 多核系统为应用程序分配单个核
Dan认为在单处理器体系结构下,实现事务性存储的强隔离只需要很小的开销。因为内存访问的开销很低,而且回滚操作很少。另外只有写操作才被记录下来。他还提供了一些可以应用在字节码级的静态优化的例子,这种优化能够提升非事务性代码的性能。
Dan的团队正在研究多线程下的事务。他对一个被普遍认可的重要假设提出了质疑:
大多数语言实现都假设事务中执行的代码是单线程的,但是隔离和并发是两个互不影响的概念(Amdahl定律将受到多核的冲击)。
Dan认为有很多理由可以做这样的假设,因为它能简化实现。随着芯片内核的数量的增加,这个假设会导致系统性能的下降。如果不做这样的假设,你需要在语言层面上引入内嵌的事务。他还指出,为了获得可伸缩的能力,必须解决logging操作的并行化这个重要问题。Dan还想知道什么时候才真正需要修正Amdahl定律,他猜测可能是在核的数量达到几百个的时候。
查看英文原文:Software Transactions: A Programming Language Perspective译者 韩锴 毕业于北京工业大学软件学院,现任ThoughtWorks公司咨询师,热衷于敏捷软件开发技术的实践和推广。
在实施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概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复