InfoQ 上有不少优秀的文章,特别是有不少前沿的信息和资料。我自己侧重于其中的软件工程方法论和经验、质量保证、性能优化以及业内新闻。
会不定期整理更新一下,有同好的朋友可以看看。
另外,列表中会包含部分英文资料,建议大家英文好的可以直接去 InfoQ 英文站点查阅资料,会比中文站点更多更快。
- InfoQ: Adium的Peter Hosey谈代码复审
- 无疑规范的代码复审可以捕获错误,并推迟似乎所有成功项目最终都逃脱不了的“大泥球(big ball of
mud)”宿命。然而,每次提交代码都得安排一次会议的做法,除了最要紧的项目,很快就会坚持不下去。Peter
Hosey讲述了他在Adium指导代码复审的经验。
- InfoQ: AJAX应用的客户端负载均衡问题探究
- InfoQ: Crap4J力求通过算法判定代码质量
- 虽然名字很幽默,但是Crap4J项目却有一个很严肃认真的目标。这个项目力求定义一种算法,使用诸如代码复杂度和测试覆盖率等因素来判定代码质量。
- InfoQ: Crap4J力求通过算法判定代码质量
- 虽然名字很幽默,但是Crap4J项目却有一个很严肃认真的目标。这个项目力求定义一种算法,使用诸如代码复杂度和测试覆盖率等因素来判定代码质量。
- InfoQ: Esper近况:事件流处理框架
- Esper是一个事件流处理(Event Stream Processing,ESP)和复杂事件处理(Complex
Event
Processing,CEP)的系统,它可以监测事件流并当特定事件发生时触发某些行动——可看作是把数据库反过来,语句是固定的,而数据流进进出出。
InfoQ恰遇Esper的创始人,向他了解了项目的近况,以及最近的基准测试问题。
- InfoQ: Google可拓展性会议报告
- Dare Obasanjo分享了Jeff Dean在一次会议中关于Google可拓展性讲座的会议笔记,内容包括“MapReduce,BigTable,以及其他处理大规模数据集的分布式系统抽象方式”。
- InfoQ: NetBeans:Ruby开发者的新伙伴
- Sun在过去的一年时间里大量的投入到Ruby,成果包括JRuby和Netbeans
IDE的Ruby语言支持。InfoQ将刊载NetBeans传道士Roman
Strobl介绍NetBeans的新Ruby特性的一系列文章。这篇是第一篇,文中介绍了代码自动完成、调试以及重构支持。
- InfoQ: NetBeans:Ruby开发者的新伙伴
- Sun在过去的一年时间里大量的投入到Ruby,成果包括JRuby和Netbeans
IDE的Ruby语言支持。InfoQ将刊载NetBeans传道士Roman
Strobl介绍NetBeans的新Ruby特性的一系列文章。这篇是第一篇,文中介绍了代码自动完成、调试以及重构支持。
- InfoQ: RSpec增加了众所翘首以待的RBehave功能以供集成测试所需
- RSpec是一个为Ruby编写的基于行为驱动开发的验收测试框架,同时也可用于Java,它提供了一种机制,即由开发人员从业务中获
取验收标准并将它们转换为可读、可运行的示例。Dan
North构建了一个独立的扩展——RBehave,用于在RSpec中描述故事级别的集成测试。David
Chelimsky已经把类似RBehave的功能添加到了RSpec trunk中。
- InfoQ: RSpec增加了众所翘首以待的RBehave功能以供集成测试所需
- RSpec是一个为Ruby编写的基于行为驱动开发的验收测试框架,同时也可用于Java,它提供了一种机制,即由开发人员从业务中获
取验收标准并将它们转换为可读、可运行的示例。Dan
North构建了一个独立的扩展——RBehave,用于在RSpec中描述故事级别的集成测试。David
Chelimsky已经把类似RBehave的功能添加到了RSpec trunk中。
- InfoQ: Ruby x Agile:从机器工作效率到人的工作效率的转变
- 这篇文章是介绍Ruby x Agile系列的第二篇。Ruby x Agile是一个包含六个简短视频的播客系列,探讨Ruby和敏捷方法论之间的关系,值得一提的是Ruby的创始人松本行弘(Matsumoto, Yukihiro)是其中的主要人物。
- InfoQ: Ruby x 敏捷: Matz探究Ruby与敏捷开发的关系
- Ruby语言的创始人松本行弘(Yukihiro
Matsumoto/Matz)最近在一个六集视频短片中的第一集中出镜,在短片中讨论了Ruby语言和敏捷方法论之间的关系。与Matz同时出现在视频
短片中的还有平锅健儿(Kenji Hiranabe)和角谷信太郎(Shintaro
Kakutani)。平锅健儿是一位极富热情的敏捷方法鼓动者,并且也是许多极限编程和敏捷开发相关书籍的日文版译者。角谷信太郎则是一位Ruby语言的
忠实的拥护者。
- InfoQ: Ruby与技术成熟度曲线模型
- 最近有一篇关于基于Rails失败项目的博客文章,引发了一场针对Ruby on
Rails可靠性的大辩论。仔细研读过这篇文章后,我们发现它的根源其实不是这方面的问题。我们对Ruby社区中的反应进行了了解,并将这次的讨论与今年
早些时候针对Twitter的大讨论进行比较。
- InfoQ: Ruby与技术成熟度曲线模型
- InfoQ: S+S:微软克制SaaS的未来战略?
- 在《程序员》杂志2007年第十期的“2.0时代的软件商业模式——SaaS”专题中,作者方舟撰文“服务不够,还得有软件——微软S+S战略初窥”的文章中,介绍了微软目前提出的Software plus Services(S+S)战略。
- InfoQ: Selenium Grid: 并行的Web测试
- 深入人心的用户接口/验收测试可以纳入到测试正堂并使构建加速。Selenium Grid提供了一种很方便的方法可以使Selenium tests在一台或多台机器上并行运行。InfoQ就此采访了Selenium Grid团队。
- InfoQ: Visual Studio终于开始关注性能问题
- Visual Studio的性能问题一直以来都让人们头痛不已,且在各个版本中有越来越差的趋势。在Channel 9的一段采访视频中,Cameron McColl对以往的性能问题表示了道歉并谈到了VS 2008中的性能改善。
- InfoQ: xUnit.net:下一代单元测试框架?
- InfoQ: 下一代功能测试展望
- 下一代的功能测试工具应当提供怎样的功能?敏捷联盟在2007年10月11日和12日于俄勒冈州的波特兰市召开了专题讨论来展望下一代的功能测试工具。你觉得哪方面应该获得最多的关注?
- InfoQ: 为什么敏捷实践会遭遇失败?
- 虽然众多敏捷专家都在帮助敏捷项目走向成功这方面投入了很多精力,但是我们也应当过一段时间就停下来思考一下,为什么有些敏捷项目或是对敏捷的实施会失败呢?了解了这些以后,或许我们就能在日后的实践过程中躲开前行路上的种种陷阱。
- InfoQ: 什么使工具敏捷起来?
- “个体与交互胜过过程与工具 ”是《敏捷宣言》的第一条价值观。不过,工具好象成了大多数敏捷团队的重要组成部分。那么工具在什么情况下可以起到积极作用,什么情况下它又会对(敏捷)软件开发形成障碍呢?
- InfoQ: 什么是“成功项目”:谈谈软件的价值
- 如果我足够幸运的话,也许一些读者已经被这篇文章吊起了胃口:既然有这么好的软件开发方法,既然它能够为我们创造更大的价值,那还等什
么呢,我们马上就动
手吧。事情不会那么简单。为了让迭代式开发能够成为现实,为了确保尽快、尽可能频繁地交付,为了确保每次交付的都是最有价值的功能,我们——包括软件开发
者、软件企业和客户——需要很多的改变。这里既有职责与权利的划分,也有开发过程和团队的重组,还有技术层面的实践指导。这些正是敏捷方法学所涵盖的内
容。缺少了这些东西,“为客户创造最大价值”就只能成为一句空话。
- InfoQ: 什么是Ruby之道?
- 作者Hal Fulton刚刚更新了他的经典之作——《Ruby之道》。Hal之所以要这么做的原因是由于十月第三周要赶上
RubyConf 2006,并且要配合着Addison
Wesley专业Ruby系列图书的启动。在这次InfoQ的独家采访中,Hal回答了贯穿整本书的问题:什么是Ruby之道?
- InfoQ: 代码分析工具FxCop最新Beta版:修复200个bug,支持匿名方法
- 在修复了超过200个bug,并显著提升性能之后,该beta版
是许多FxCop用户期盼已久的版本。这个少为人知的代码分析工具,可以检查.NET托管代码装配件,查看其是否符合Microsoft .NET
Framework 设计指南
。除可完成基本的库设计和命名规范检查外,在指出多语言全球化处理(globalization)、互操作性(interoperability)和安全
等问题领域方面,FxCop尤其具有特殊的价值,而即使经验丰富的开发者也有可能缺乏这些领域的技能。
- InfoQ: 代码规范的自动化监管
- 多数大型开发组织都有一套自己的编码和实践规范。但是对这些团队而言,光是将这些规范文档化,并保证实时更新,就是一个巨大的挑战。此
外,在工作中长期、忠实地执行这些规范和标准,难度就更大。我们团队在这些方面做了积极探索,在整个构建过程(build
process)中实现了代码规范的自动化监管。
- InfoQ: 你真的明白什么是可伸缩性吗?
- 人们都把可伸缩性挂在口边,但你真的知道它是什么意思吗?Royans K Tharakan破除了一些神话,并且就与可伸缩性相关的一些词汇给出了详细的解释。
- InfoQ: 使用ETags减少Web应用带宽和负载
- Gavin Terrill 探究了一个可被web开发者利用的、鲜为人知的工具,不引人注意的“ETag响应头(ETag Response Header)”,以及如何将它集成进基于Spring和Hibernate的Web应用,以提升应用程序性能和可伸缩性。
- InfoQ: 使用Selenium和Castle进行测试驱动开发
- Dan Bunea为开发人员展示了如何在.NET中使用Selenium
RC和Castle应用测试驱动开发。测试先行原则为架构师们提供了一个早些进入应用开发周期中积极开发阶段的方法。测试驱动开发的好处是,通过迭代应用
得以快速引入,从而使得错误大幅减少,而代码库灵活性增加。
- InfoQ: 使用高度抽象的DSL来减轻测试负担?
- 用户界面和用户期待之间的不一致性,是bug的一个重要来源。Leonardo Vernazzade的观点是,这是因为用户和UI所使用的并不是同一种语言。在高度抽象的层次上使用DSL,可以帮助我们避免翻译错误所带来的风险,同时减轻测试的负担。
- InfoQ: 信仰驱动的产业?热门词和指南 vs.思考和审视
- 最近,James O. Coplien发表了一个这样的观点,即当今的产业是基于热门词和指南的。某些技术或方法的应用(例如TDD)已经成为“一种信仰问题”。这阻碍了我们去审视其可能的代价,也阻碍了我们集中精力去找寻最合适且最节约成本的解决方案。
- InfoQ: 关注:InfoWorld年度最佳开源软件尘埃落定
- InfoWorld日前公布了2007年的Bossie
Awards奖项,评选出各个领域中最佳开源软件。这些面向企业应用的最佳开源软件,是通过InfoWorld测评中心编辑与评论家悉心评选得出,涵盖了
从CRM和ERP应用,到开源中间件、存储及安全方面的各类开源软件。奖项共分为6个大类,共36个获奖的项目。
- InfoQ: 分析JavaScript的性能
- Kirk Pepperdine在一篇新文章中详细讨论了关于JavaScript性能的主题。文章涵盖了Getters/Setters、内存泄露,以及局部基准评测等方面。
- InfoQ: 在没有已定义好的过程的情况下,我们如何知道该指责谁?
- “从‘火车失事’而引出管理的概念,这个过程有一个最基本的前提,那就是事故发生的首要原因是‘玩忽职守’。"Peter
Scholtes在他2003年关于领导力的一本书中如是说。Mary
Poppendieck在最近的一篇有关过程、人与系统的文章中问道:“什么才是更加重要的——过程还是人?”她还描述了精益过程如何替代像ISO
9000那样经过认证的过程改进体系。
- InfoQ: 多核处理器真的能提升软件系统性能吗?
- Larry O'Brien对关于多核处理器和适应它的语言一定能带来性能提升的假设提出质疑。
- InfoQ: 多核处理器趋势对软件架构的影响
- “Java开发者”的一篇文章中提到,当我们在多核处理器架构这条路上高歌猛进的时候,单线程性能的提升即将在一至三年内迅速减缓。在某些情况下,单线程性能甚至会降低。这便要求软件开发者改变开发软件的方式,进一步利用并行处理架构。
- InfoQ: 大型Java Web系统选型问题探讨
- 一位ID是jackson1225的网友在JavaEye询问了一个大型Web系统的架构和部署选型问题,希望能提高现有的基于
Java的Web应用的服务能力。由于架构模式和部署调优一直是Java社区的热门话题,这个问题引发了很多热心网友的讨论,其中一些意见对其它大型
Web项目也有很好的指导意义。
- InfoQ: 如何对敏捷实践相关的实验性数据进行分析利用
- 在敏捷相关的文献中,处处可见有关某个或多个实践其实际作用的实验数据。但是并不是所有的实践都能得到同样的结论。有些实践的结果就有
可能和你所在团队的实际经验不一致。要想理解这些实验结果,明白对这些数据应该持有何种程度的信心,那么充分理解一些简单的评估标准是很有帮助的。
- InfoQ: 将程序记在脑子里
- Paul Graham写了一篇文章,为开发人员提了个八个建议,以使开发人员自己更好地理解正在写的代码。这些实践与敏捷实践相匹配吗?
- InfoQ: 并行编程:并行层次(Parallel Hierarchies)模式
- 多核处理器的降临带来了新的性能潜力。然而,Intel的Shekhar
Borkar强调软件开发时间必须改组整备工具以利用起提升的性能潜力。在这个方向上,墨西哥国家自治大学(the National
Automonous University of Mexico)的Jorge L.
Ortega-Arjona教授提出了一个新的并行编程架构模式:并行层次(Parallel Hierarchies)模式。
- InfoQ: 微软.NET Framework的开源之路
- 最近微软宣布将在微软参考许可协议(MS-RL,Microsoft Reference License)下发布.NET Framework的源代码。
- InfoQ: 微软发布IE、Firefox、Opera和Safari的JavaScript兼容性研究
- 长久以来JavaScript兼容性一直是Web开发者的一个主要问题。在正式规范、事实标准以及各种实现之间的存在的差异让许多开发者日夜煎熬。为了解决这个问题,Microsoft发布了一份文档,详细描述了4款最流行的浏览器的不兼容性。
- InfoQ: 持续性IT架构工作组成立
- SustainableITArchitecture.com是一个向最终用户、基础设施厂商和系统集成商开放的新工作组。这个工作组关注于定义一个信息系统再造方法,该方法基于面向服务架构和开放及公开的企业方法学。
- InfoQ: 提高软件开发生产力的秘方
- 当敏捷团队徘徊在平庸的“照本宣科”阶段,有时候团队合作没法继续前进到令人兴奋的“大放光彩”的阶段,反而让团队表现受困于看不见的“学习瓶颈”。敏捷实践要求我们花时间去反省和学习——学得快的团队才会成为赢家。
- InfoQ: 敏捷、架构和凌晨五点的产品问题
- 重构和单元测试是否真的可以创建强壮、可用的软件,并且让其在现实世界中生存下去?下面的内容节选自Michael Nygard
的书《Release
It!》,他认为“抽象有漏洞”:我需要考虑架构(甚至在Agile项目中),以便保证当基础抽象层没有正常工作时,我们也不会遇上这类5AM问题。
- InfoQ: 敏捷日程表:敏捷活动,即将发生在你身边?
- 假如你想过“真希望我知道Agile这方面的活动”的话,那看一下敏捷活动日程表上的近期活动吧,从2007年9月1日起。
- InfoQ: 敏捷社区需要成熟度模型么?
- 随着时间的推移,在人们的视野中慢慢出现了叫做敏捷成熟度模型或是敏捷实施框架的东西。现在还颇有一些咨询公司在使用敏捷“执行能力评
估(readiness assessments)”来帮助客户“变得”敏捷,开创了一代先河。这些迹象是否表示在我们的社区内,尚有未满足的需求?
- InfoQ: 案例研究:Lawson并购产品线的架构集成
- Lawson和Intentia两家公司2006年合并后,开发者遇到的一个重要问题是解决用Java、.NET和其他技术构建的遗留应用和业务服务的集成问题。在本次案例学习中,我们将研究Lawson对此问题的解决策略,并深入分析其中一些让人感兴趣的技术细节。
- InfoQ: 测试驱动开发:众人关注,讨论热烈
- 近日以JavaEye为主的技术社区发起了一系列关于测试驱动开发的讨论。从讨论中可以看出,越来越多的开发者对测试驱动开发表现出浓厚的兴趣,一些人已经在实践中总结出了自己的经验;但与此同时,各种与测试驱动开发相关的误解仍然广泛存在。
- InfoQ: 理解REST软件架构
- REST软件架构是当今世界上最成功的互联网的超媒体分布式系统。它让人们真正理解我们的网络协议HTTP本来面貌。它正在成为网络服
务的主流技术,同时也正在改变互联网的网络软件开发的全新思维方式。AJAX技术和Rails框架把REST软件架构思想真正地在实际中很好表现出来。今
天微软也已经应用REST并且提出把我们现有的网络变成为一个语义网,这种网络将会使得搜索更加智能化。
- InfoQ: 用“看板图”实现敏捷项目的可视化
- 本着“信息辐射体”和“人人可见的大图表”的精神,Kenji Hiranabe提出用“看板图”来管理三个视角(时间、任务和团队),让整个团队都理解当前的项目状态,从而以自主、有动力且互相合作的态度来工作。
- InfoQ: 真正的线性可伸缩性需要新的模式和中间件架构吗?
- Nati
Shalom声称已有基于分层的中间件不能用于真正的线性可伸缩性。他提出了新的基于自给自足处理单元的中间件栈(middleware
stack)作为替代,它支持分区/向外扩展(scale-out)模型。几年前,微软的Pat
Helland就提出了某种事务性模式及形式描述,它们可被用在被他称为准无限可伸缩的系统中。
- InfoQ: 管道式的持续集成解决方案好吗?
- 当团队或代码基线变得很大时,持续集成的速度就会开始下降。构建内容在增加而反馈速度却在下降,构建一次可能要花上一小时甚至更多才能
知道成功与否,而些时,有人可能已经将他们的代码检入到构建失败的版本中了。为了解决这个问题,很多团队让他们的持续集成变成管道化。但这种方法好吗?
- InfoQ: 自动化敏捷工具太冷冰冰了?
- InfoQ: 谁来检查我们的单元测试?NCover2!
- InfoQ: 软件开发社区“信仰”之争风波未息
- InfoQ: 软件架构的十大错误
- InfoQ: 辩论:为什么多数大型网站不是用Java写的?
- GigaSpaces的Nati Shalom最近问到为什么多数大型网站是用非Java语言编写的。这个问题在Java社区引发了一场大辩论,InfoQ抓住机会了解到更多围绕这个问题的主要观点。
- InfoQ: 高效分布式Session管理
- Session是绝大部分ASP.NET项目需要都面临的问题。由于ASP.NET内置Session管理的局限性,在一些情况下整个
ASP.NET应用性能会急剧下降;伴随着SOA和企业应用的整合的浪潮,很多时候Web应用间需要共享Session。可以通过采用第三方产品作为专用
的进程外Session管理宿主,来解决这样的问题。
- Topics: Performance & Scalability
- InfoQ.com (Information Queue) is an independent online
community focused on change and innovation in enterprise software
development, targeted primarily at the technical architect, technical
team lead (senior developer), and project manager. InfoQ serves the
Java, .NET, Ruby, SOA, and Agile communities with daily news written by
domain experts, articles, video interviews, video conference
presentations, and mini-books. InfoQ offers personalization features
allowing you to customize the site and your RSS feed to the specific
subset of content you are interested in.