程立谈架构、敏捷和SOA实践
支付宝首席架构师程立在本文分享了支付宝技术架构的发展,对架构的认识,成功架构的特点,如何避免架构设计的失败,以及在敏捷和SOA方面的实践等。
作者 Abel Avram译者 赵劼 发布于 2008年5月13日 上午12时19分
EQATEC为.NET Compact Framework应用程序发布了一个代码分析工具。最初EQATEC由于自己需要而开发了这个工具,不过他们打算将其发布给整个.NET Compact Framework开发人员社区。这不是一个内存使用分析器,而是一个应用程序瓶颈检测工具,用于发现代码中运行时间最长的地方。
以下是EQATEC发布的主要功能列表:
- 用于优化应用程序速度/性能的代码分析工具,不是一个内存分析器
- 消耗低,一般低于30%的额外运行时间和50%的代码体积增长
- 支持所有的.NET 2.0/3.5 Compact Framework(.NET CF)应用程序
- 提供命令行版本,能够集成入自动构建过程
- 精确测量,并非抽样分析
- 对方法调用进行分析,而非独立的语句
- 完整的调用关系细节报表
- 100%全功能免费使用
分析器的使用非常简单。应用程序像往常一样编译,分析器会在需要监测的程序集中插入二进制代码。这样在应用程序在设备上运行时,分析器就会收集数据进行分析。
据EQATEC称,分析工具的限制有:
- 不支持用户定义范型。如果您定义了自己的范型类型,则程序集可能无法运行。目前分析器简单地跳过了所有的包含范型类型的程序集。这是个令人恼火的解决方法,修补的优先级最高。
- 方法的递归调用在报表显示为调用的总合,显示程序在这方面需要更聪明一些。
- 对于阻塞方法(例如Read())将会显示总共时间,包括线程正在等待调度以及方法返回的时间。
- 目前不支持强命名程序集,它们必须在分析之后重新进行签名。目前还不存在这个功能。
- 被分析的程序集没有调试信息,这意味着您无法调试被分析的版本,尽管您一般不会去这么做。
- 还没有与Visual Studio集成。我们将会创建一个插件,这样可以更轻松的分析解决方案中的程序集。
这里有一段关于该分析器的视频示例。这个分析器可以在这里下载到。
查看英文原文:EQATEC Profiler: An Application Code Profiler for the .NET Compact Framework
支付宝首席架构师程立在本文分享了支付宝技术架构的发展,对架构的认识,成功架构的特点,如何避免架构设计的失败,以及在敏捷和SOA方面的实践等。
作为一个有别于Java、Ruby等语言的一个特性,C#可以用索引器(Indexer)将类型本身以对象数组的形式供外部使用。同时,把索引器和LINQ结合使用倒是一个非常不错的组合,索引器做接口、LINQ完成内部检索逻辑,客户程序在无需记住具体方法名称的前提下,按照键值检索即可,索引器内部则依托LINQ to系列的基础,提供对各种异构数据源的访问。
Scrum中,产品负责人这个角色具有很大的影响力,能够带来很高的价值。但要想运用得当,可没那么轻而易举。如果做得好,就可以在客户和开发者之间建立更为融洽的关系,并能够增加组织的竞争优势。
在本书中,作者Henrik Kniberg讲述了他在一年的时间里,带领40人的团队实施Scrum的过程。他们试过了多种团队尺寸(3~12人)、sprint长度(2~6星期),定义“完成”的不同方式,不同的backlog格式,各种测试策略,在多个Scrum团队之间进行同步的多种方式。他们还尝试过XP实践——持续集成、结对编程、测试驱动开发等等,还试过了把XP跟Scrum组合。
准时化生产(Just In Time)是精益生产(Lean Production)和丰田生产系统(Toyota Production System)中的概念,敏捷开发与准时化生产中的很多观点和实践是一致的,精益思想作为精益生产背后的指导思想也正在积极地影响着软件开发领域,向其中不断注入创新与活力。
I. Drobiazko和R. Zubairov合作撰写了一篇文章,详细介绍Apache Tapestry 版本5——一个面向组件web框架。文章向读者展示了创建组件方法,并谈到了Tapestry中的IoC以及Ajax的相关特性。
没有回复
回复