领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Ian Roughley 译者 张龙 发布于 2010年6月19日
Architexa是个全新的基于Eclipse的UML建模工具,开发人员可以凭借Architexa的UML图快速洞悉代码之间的关系并与他人共享这些内容。之所以能快速探测代码基,关键在于Architexa为开发者提供了3种熟悉的图表类型(层次图、类图与序列图),随着开发人员对代码基理解的不断深入,他们可以在Architexa的帮助下构建代码之间关系和粒度。
最近InfoQ有幸采访到了Architexa的创建者Vineet Sinha以深入了解该工具,同时明晰了它为何能帮助开发者处理日益膨胀的代码基。
Architexa是如何在其他UML工具欠缺的地方帮助开发者的?
我们将精力放在了代码需求而非设计需求上,希望能帮助开发者更快地理解代码,理解好相关的任务、相关的文档并能轻松地讨论这些重要的代码概念,然后与同伴分享这一切。
在一开始探索代码基时可以使用层次图这一强大的工具。能否向读者做个简单的介绍?这个想法来自于现有的工作还是经过了不断的演变才得出的?你是如何想到它的呢?
Architexa中的层次图会根据现有的代码基作出最接近于层次架构图的估算。我们注意到大多数层次架构图都是团队或项目所用的高层次图表的主要形式,通常不太容易从众多的代码基中找出层次架构图的踪迹。如果这类图可以帮助开发者找到他们最感兴趣的部分代码基,我们打算快速实现一个版本以满足开发者所需。
Architexa通过分析代码并展示模块来构建层次架构图,如果某个模块依赖于另一个模块,那么就会将它放在图表的上面。除此之外,我们还需要猜——默认情况下,模块基本上是根据代码基的目录结构创建的。而且,大多数代码基经常包含循环,我们使用了复杂的算法来处理这种循环,但依然能保证提供高效的层次图。
大多数工具套件都是我在MIT(CSAIL)读博士时尝试并开发的,我们想要的是一个卓越的工具。主要的想法来自于很多地方:我在下面这些地方花了大量的时间: (i)阅读了多个项目的软件文档以了解共通的东西,(ii)分析了目前提供有效的代码视图的工具:虽然这些工具都非常复杂并且需要培训,但他们各有千秋,我们可以从中了解到这些工具常见的使用模式,这样就能通过几次鼠标点击来简化工具的使用了,(iii)典型的树形widget,通常他们都会收起并显示大量信息,(iv)大量优秀的工具,以便从中找到适合我们的图表的技术。
在构建好了第一个原型后,我们发现了很多问题。虽说实现了大多数主要的想法,但我们意识到了真实世界中的问题(代码经常有循环),我们开发这些技术不仅是为了解决这些问题(通过层次来忽略掉一些代码循环),更是为了减轻用户的负担,这样他们就能轻松处理问题了(用户可以根据这种循环依赖进行扩展、使用彩色高亮显示当前模块之上、使用了当前模块以及与当前模块之间存在循环的模块)。
用户可以借助于Architexa白手起家,无需对代码基有任何了解就能起步并不断探索。在探索代码基时你发现了自己的使用模式了么?你是如何在每天的开发/设计工作中使用这个工具的?
我们发现了大量的使用模式并积极地探求这些模式来不断提升工具的品质。但大多数使用模式还是取决于用户所要完成的任务:
有没有什么办法可以比较现有的图表和改变后的代码基呢?
在代码基发生变化时,图表的使用有多种可能。我们支持两种用例:
我们还会在这个地方增加更多支持。
手工生成图表是探索代码基的好办法,但在构建过程中自动生成(类似于JavaDoc)则可以更好地描绘系统的演变过程。Architexa也能实现该功能么?
重要的图表通常会跨越多个类,每个重要的类也会跨越多个图表,因此把他们放到JavaDoc中没什么意义。我们允许用户将图表上传到一台简单的类似于wiki的服务器上。这样,用户不仅可以与其他人共享这些图片(只需使用浏览器即可),还使得我们可以增加额外的信息,这样使用Architexa客户端的其他用户就可以继续探索其他人写的代码了。这些图表代表了代码基中的重要概念,因此他们不仅支持用户添加注释,还可以在不同的地方嵌入这些图表,还有版本的概念,这样就能反映出主要概念的演变过程了。我们还会在这个地方增加更多支持。
该工具目前支持哪些语言?
此次发布只支持Java,但我们还有C++原型。
该工具是否有助于说明组件以及核心类的交互呢(比如说MVC/Web框架交互)?
当然了。该套件的目标就是展示代码中显露出来的关系(方法调用、继承等等)和运行时出现的关系(对接口或基类的调用)。我们通过静态关系实现这一点,但允许用户以任何可行的方式修改图表。
能否说说第一版中尚未包含但即将发布的特性,读者对此可能很有兴趣?
此次发布包含了大量的特性。虽然我们实现了很多特性,但目前主要的目标还是倾听用户的想法。
感兴趣的读者可以访问Architexa的站点http://www.architexa.com了解更多信息。
查看英文原文:Architexa aims to make UML quick and easy
译者 张龙 热衷于编程,乐于分享,对新技术有强烈的探索欲,对Java轻量级框架有一定研究。
是不是免费,有没有pojie才是我最关心的。。。。。。。。。
怎么理解? 也就是任然需要另一UML工具做设计? 这个只是供PG编码?
$125/year
30 Day Free Trial
www.architexa.com/start/pricing 广告而已
在实施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概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
3 条回复
关注此讨论 回复