qcon
在本文中,我们介绍了许多博客上 有关 QCon的博客的观点和观点,以便您可以体会QCon London(2008年3月)的印象和经历。 从最初的教程到最后的会议,人们在他们的博客中讨论了QCon的许多方面。 您还可以在Flickr上看到许多QCon与会者拍摄的照片 。
这次QCon是InfoQ的第三次会议,也是伦敦的第二届年会。 该活动是与在丹麦举办JAOO会议的公司Trifork合作制作的。 印刷了600多张徽章,其中70%的参与者是团队负责人,建筑师及以上人员。 60%来自英国,40%来自欧洲各地。 在QCon伦敦会议上,包括肯特·贝克(Kent Beck),马丁·福勒(Martin Fowler)和埃里希·伽玛(Erich Gamma)在内的100多位演讲者进行了演讲 。 展望未来,QCon将继续在每年3月左右在英国运行,而QCon San Fracisco( 请参阅先前的博客评论 )将在2008年11月17日至21日运行。
目录
讲解
* 引入敏捷实践的模式
* 特定领域的语言
* 对架构进行编码:从开发人员到架构师
* 敏捷管理之禅
* 使用nServiceBus构建可扩展,可维护,分布式的企业.NET解决方案
主题演讲
* Erich Gamma:Eclipse如何改变了我对软件开发的看法
* 马丁·福勒(Martin Fowler)和吉姆·韦伯(Jim Webber):我的公共汽车在这方面看起来很大吗?
* 肯特·贝克(Kent Beck):敏捷开发的趋势
转炉
* JCP
* InfoQ
SOA,REST和Web
REST:Web架构的实用介绍
* 使用REST辅助WS- *-构建RESTful SOA注册表
* REST,重用和意外
* 围网日记SOA Geek
* 几种方法可以为Internet规模的猫提供皮肤
云作为新的中间件平台
* 亚马逊服务:真正互联网应用程序的构建基块
* Web上的应用程序服务:SalesForce.com
* Google GData:在网络上读写数据
* Yahoo Pipes:云中的中间件
* 面板:对云进行编程
银行业务:复杂的高容量/低延迟架构
* 投资银行领域的技术
* 美林400多个关键系统的正常运行时间保持99.95%
* 用于延迟关键银行应用程序的实时Java
* 从投注到游戏再到交易会
* 流动性中心
明天的编程语言
* 繁忙的.NET F#开发人员指南
* Haskell:类固醇的功能编程
* 功能+消息+并发= Erlang
* 忙于Scala的Java开发人员指南
* 开放空间会议
不断发展的Java
* 并发,过去和现在
*将Java与动态语言混合
*改进JVM
* 大教堂,集市和政委:企业Java创新的演变
* 不断发展的Java语言
解决方案跟踪
* RESTful设计的架构含义
* 介绍Spring Batch
* 小组:开源和开放标准
* 小组讨论:性能和可伸缩性的架构
* 集群架构模式:提供可伸缩性和可用性
* 使用Spring 2.5进行示例测试
浏览器和新兴富客户端技术
* GWT + Gears:以浏览器为平台
* DOM脚本工具包:jQuery
* 处理代码债务
实践中的敏捷
* Scrum中的经理
* 敏捷混搭
* 超越敏捷
* 软件看板系统
XpDay采样器
* 量测
.NET:客户端,服务器,云
* 构建智能Windows应用程序
* 构建富Internet应用程序
* Windows作为Web平台
Ruby的崛起
* 小组:Rails什么时候是适当的选择?
有效的设计
* 意图和界面-使图案具体化
* 两个系统的故事
* 用户界面:应对简单性挑战
* 有效的设计
您一直想知道的架构
* eBay的建筑原则
* 媒体制作工作流程中的架构
* 在MySpace.com的幕后
* 法国巴黎银行的市场风险系统
实践中的领域特定语言
* 简化外部文本DSL
面试
社会事件
关于QCon本身的意见
外卖点
视频
播客
结论
Michael Hunger 在本教程中 谈到 了他的想法 :
星期一,我很高兴参加Lindas教程。 它具有非常个人化的感觉,非常互动。 她通过与参与者作为演员的戏剧介绍了将新思想引入组织的模式。 实际上,这就是她自己在1996年引入设计模式的故事。在讨论中,解决了模式的许多微妙之处(即上下文和作用力)。 让我们通过玩游戏和提出很多问题做出贡献,有助于真正吸收模式的本质。 很好玩。
[...]
琳达是一位出色的演讲者,具有深刻的理解和许多智慧。 非常感谢您的教程。
Leonardo Borges提供了本教程的详细摘要 ,其中包括:
Marting Fowler开始讨论DSL是什么,并举例说明了我们许多人在日常Job中使用的例子。 就像Java世界中的XML配置文件一样。 它是DSL的一种,它具有自己的关键字和语法,以表示将要使用的一些信息,例如,用于配置基础框架。
XML的问题在于,很难看到其背后的整体行为。 仅通过第一次查看XML文件就无法理解它的用途。 有太多的“噪音”。 妨碍可读性的事情。 -YAML文件是XML更具可读性的替代方案。
Ola Bini也参加了本教程并分享了他的想法 :
之前,我已经看过本教程的各个部分,但是由于三位演讲者正在努力将其发展为一个完整而连贯的用于教授DSL的“教学框架”,因此自上次以来,当前的演示文稿已发生了很大变化。 我真的很喜欢它,并向有兴趣对DSL是什么有兴趣的任何人推荐它。 让Rebecca在解析器和语法的上下文中谈论外部DSL完全有道理,而我唯一要说的真正问题是分配给它的时间。 她的科目足够大,以至于75分钟的时间都有些匆忙。 当然,我也看不到如何进一步压缩Martins或Neals零件,所以对于一天的教程来说,主题实际上可能太大了? 无论如何,很棒的东西。
Mark Edgington也 写了本教程:
我的收获是,以与敏捷开发类似的方式使用DSL的需求,从而更加突出。 花费了数年时间才成为主流。 通过使用DSL,开发人员将以更加优雅的方式获得技能并解决问题,因此,这无疑是一次胜利,而马丁·福勒(Martin Fowler)撰写的有关该主题的书应该会更加突出。
Cleve Gibbon也有几个要点 ,包括:
- 整个DSL领域存在很多未知因素,Fowler和Co正在做的事情是探索问题空间并提出选择。
- 某些语言,例如Ruby,Groovy和Scala,更易于编写可读的内部DSL。
- 房间里有很多 Ruby专家,包括rSpec的线索, rSpec是用于Ruby测试的内部DSL。
- DSL的定义是开放的,可以解释,在未来的几个月中,将会有更多的事情发生
- 我需要围绕语言工作台的概念做更多的阅读。 非常有趣的东西。
Jay Fields受启发撰写了有关DSL Simplexity的文章 :
在 QCon伦敦会议上,我 听了 Martin Fowler,Neal Ford和Rebecca Parsons 撰写的“领域特定语言(DSL)”教程。 在Martin讨论了如何以及为什么要创建DSL时,他讨论了隐藏复杂性和针对特定问题设计解决方案。 当马丁进一步深入研究时,我所能想到的是:简单性。
安德斯(Anders)始终喜欢简单。 当然,希望我们都喜欢简单。 但是,魔鬼通常生活在细节之中。
西蒙·布朗(Simon Brown) 在他的博客上发布了本教程中使用的文档:
上周在QCon上的教程中 ,我们要求与会人员定义小型软件系统的软件体系结构,并提供了包含一些准则的讲义。 由于这可能对其他人有用,因此我们正在提供 软件体系结构文档指南v0.1可供下载。
该文档也是在InfoQ上撰写的 。
Mark Edgington参加了本教程 :
David Anderson几乎从标准问题软件项目的角度来看敏捷。 他研究了如何通过清晰地识别价值流(流程)并检查围绕此的度量标准,将它们带入敏捷世界。 他的主要观点是,质量应该成为重点,减少在制品(WIP)可以提高效率:实际上,较短的周期或sprint效果要好于大批量的工作。 在专注于敏捷方法论之后,关于如何敏捷的观点激发了很多思想。 通常情况下,必须采取秘密的敏捷方法,而无法采用完全开放的方法(例如Scrum)。
Udi Dahan 对他的教程有一些想法 :
我在 nServiceBus上做了一整天的教程,我们的工作 很忙 ! 本教程大约有90%的人考虑分布式系统,而10%的人将这些概念映射到nServiceBus。 我努力为客户提供为期5天的培训课程中的3天,但我认为只有85%的成功。 人们没有时间让事情真正陷入困境并提出问题,但是可用的 活跃论坛和 Skype对话可能可以解决问题。
包括扬·巴尔杰 ( Jan Balje)在内的一些人对此主题发表了评论:
一个很好的主题演讲,关于Eclipse的开发,包括关于体系结构,开源,过程等方面的要点。最后,他演示了Jazz,这是一个(真的)大型分布式软件开发的大型环境。 看起来很有趣,可惜没有开源。
耶夫格尼·卡巴诺夫(Jevgeni Kabanov) :
我不知道的一件有趣的事是,Eclipse现在包括 API工具 ,该 工具允许使用版本信息和细粒度的访问控制来注释API,然后让Eclipse IDE为您检查这些。
那么WTF是爵士吗? 解释从巨大的迷雾开始:“集成”,“社区”,甚至是“ Eclipse体验”。 带有很多箭头的可怕图。 开始听起来像Twitter上的类固醇-您可以关注事件或频道,事件是从Web和Eclipse插件产生的。 您还可以跟踪基本统计信息,例如缺陷进度。 怀疑您可以获取IM或SMS的更新,但:)
西蒙·布朗 ( Simon Brown) :
我要说的是,听到现实世界中有关迭代开发的故事总是很高兴的-在这种情况下,Eclipse团队需要进行6周的迭代,并且在迭代末期不一定有一个完全可交付的产品。 Erich通过新Jazz平台的演示总结了主题演讲,该演示将标准开发套件中的所有工具整合到一个完全集成的工作流程中。 这看起来像是对以Eclipse为前端的Rational统一变更管理(UCM)平台的重新混搭和增强。 这可能并不完全准确(我想我在幻灯片中看到了Subversion桥),但是您明白了。
史蒂文·米勒姆 ( Steven Mileham) :
自从Erich Gamma开始编写 Eclipse以来的七年时间,他就 Eclipse IDE如何改变了他和他的团队的软件开发的开场白。 有趣的东西,展示了从封闭源项目到开源社区项目的过渡,他们如何从瀑布方法迁移,这种方法允许他们缓慢地进行开发,然后只需要在截止日期前惊慌,就可以使用迭代的敏捷方法。迫使团队将精力更多地放在交货和运输上。 最后,他介绍了 Jazz作为团队协作工具,该工具与Eclipse紧密集成。
Libor Soucek :
最大的收获是程序发布应坚持确定的发布日期。 从Eclipse的角度来看,最好的日期工作方式是6月,因为这会在节假日和其他事件中造成最小的干扰。 他们将在6周的开发中进行开发。 在一年中的“冲刺”时期(1周计划,4个开发以及1个集成和代码定稿/测试),以添加新功能以供年度发布。 发布前一个月,他们完全奉献了所有开发人员。 最终代码完善和测试所需的资源。
Erich的演讲中还非常有趣的是,它描述了快速形成的强大Eclipse社区。 社区完全涵盖了对新加入的开发人员/用户的支持,编写手册等,这些实际上释放了原始的IBM开发人员。 资源再次做他们最了解的事情-全速发展。 对于类似类型的项目,这绝对是一个非常有趣的模型。
和Maarten Manders :
Erich Gamma的主题演讲基本上是 IBM Rational最新产品 Jazz的促销演讲。 它像Jira(我们使用的那样)一样是一个项目管理软件,但是它在集成方面远远超出了范围,因为它与Eclipse很好地兼容。 此外,它似乎具有管理开发团队的良好系统。 总而言之,它似乎是一个不错的产品-我特别喜欢它是针对敏捷开发技术而制作的。 仍然存在的最大问题是:它与PHP的配合情况如何?
蒂姆·安德森(Tim Anderson)还详细介绍了该主题演讲 ,包括:
Gamma阐明了Eclipse哲学,其出发点是所有内容都是插件。 API非常重要,因此,正确使用小型API而不是出错并永远支持它是更好的选择。
然后,他谈到了迭代,这是敏捷开发的关键原则。 他展示了一张很棒的幻灯片,其中列出了一些项目的进度,从一开始的“世界上所有时间”到最后的“与亲人说再见”,然后在物品运完后完全精疲力尽。 每6周进行一次持续构建和批准的迭代开发减轻了压力,提高了生产力。
吉姆·韦伯(Jim Webber )在主题演讲中发表了一些评论 :
对我而言,这次会议的模因来自我与 马丁·福勒 ( Martin Fowler)所做的 主题演讲 。 中间件供应商并未像他们所想的那样向我们提供强大的软件,而是向其提供了松软的大型软件,而这些软件在谈话中被称为“企业傻瓜”。
这些幻灯片 可在QCon网站上找到 ,但没有视频(QCon家伙将在未来几个月内发行)可能没有太大意义,除了那张松垮的家伙的照片外,男人的胸部将永远成为企业的缩影。中间件。
许多人写了这个主旨演讲,包括安德鲁·怀特豪斯 ( Andrew Whitehouse) :
我亲身经历了我认为企业软件中许多不必要的复杂性,令人振奋的是,Martin和Jim克服了这一难题,提出了一套有效(轻量级)交付的原则。 我也很高兴ThoughtWorks在企业环境中积极 推广 (J)Ruby on Rails,因为这似乎是“传统” Java开发的自然继承者,而且我认为它们似乎是有关如何开发Java的最开明的顾问之一。有效交付企业软件。 (它们也很 敏捷 。)
Libor Soucek :
Day结束了 Martin Fowler和 Jim Webber的精彩有趣的主题演讲,主题是基于SOA的应用程序中ESB的使用。 在很多方面,这仍然是 Don Box的演讲。
甚至认为演示文稿本质上与我已经在互联网上看到的记录具有相同的信息价值,例如, 在这里,这无疑是一个很大的乐趣。 与ISV特定解决方案相比,它们具有如此高的显示力和巨大的营销价值,以说服所有与会人员更喜欢通过SOA的标准HTTP协议进行基于Internet的消息集成。 我要说的是,每个人都必须清楚地表达此信息,并认真考虑如何在自己的解决方案中使用它。
Patric Fornasier :
吉姆 和 马丁( Jim and Martin)的 主题演讲 “ 在这种无情地剖析的当前中间件方法中,“ 我的公交车看起来很棒吗? 那是一次极其机灵而有趣的演讲,他们用他们的全部语言来挑选中间件供应商,并构思出了雄辩的比喻,例如“ man boobs”(而不是直截了当地称其为胖,丑陋,肿的中间件产品)。
斯蒂芬·诺伯格 ( Stefan Norberg) :
在办公室忙碌了一天之后,我设法赶上了QCon,以听取Martin Fowler和Jim Webber的主题演讲。 正如您可能认识的那样,他们两个都是出色的演讲者,主题演讲很有趣。 他们有关于为什么EAI,SOA和ESB:s是个玩笑的幻灯片(作为一个概念,要保持),但是我不能说他们提供了任何替代方案。 他们基本上说:但实际上,您通常可以通过购买第三方软件来获得最大的业务价值。 而且它需要被集成...虽然我不是很喜欢。 如果您自己构建它,那么轻便的HTTP服务显然是可行的方法。
- 从第一次迭代开始就专注于业务价值
- 把事情简单化
马丁·曼德斯 ( Maarten Manders) :
想象一下, 马丁·福勒 (穿着他心爱的皮裤)在舞台上跳舞,而 吉姆·韦伯 ( Jim Webber )又对肿的企业中间件大肆宣传(请查看他对ESB的 最新看法 )。 当然,我说的是邪恶的企业服务总线,它变得如此胖,以至于它成为了企业的笨蛋! 幻灯片不言自明,就把它们放到 这里 ! 不幸的是,还没有视频。
还有蒂姆·安德森 ( Tim Anderson) :
韦伯说, TIBCO , BizTalk , webMethods ,您将其命名为“使用起来很麻烦”。
企业服务总线? 应该被称为“错误的意大利面条盒”。 SOA? “狗的早餐。”
根据Fowler和Webber的说法,网络就是答案。 “互联网的愚蠢是一个真正的胜利……它使您能够做您未曾想到的事情。” Web是无处不在的中间件,增量且低风险。
Squid是您的企业总线...我们将不需要中间件供应商试图向我们出售的所有疯狂中间件。 我们不喜欢ESB ...大的前期中间件方法不是很明智。
肯特·贝克(Kent Beck)的主题演讲是另一个受欢迎的讨论话题, 约阿希姆·雷赫特 ( Joachim Recht)等许多人对此进行了评论:
关于纪律,有一点有趣。 我一直说XP和敏捷过程需要纪律来实施和使用。 肯特·贝克(Kent Beck)对此的看法恰恰相反-不做XP对他来说很难。 相反,它或多或少是一个习惯问题,这通常是问题所在:改变自己的一部分需要投资,但是尚不清楚投资何时会产生利润。 具有讽刺意味的是,这种经济上的论点也被用来推广XP:将成本推向未来并拉近利润-例如,经常释放而不是镀金,等等。
彼得·吉拉德·莫斯(Peter Gillard-Moss) :
关于测试,快速发布和许多其他敏捷性的上升,有很多有趣的幻灯片,但对我而言,最有趣的方面是新一代精通技术的业务专业人员的崛起。 可通过其奇怪的不当社交行为发现的老“巫师”出世了,因为具有诸如聆听,团队合作和情商之类的社交技能的Nu-Geek一代正日益提高使企业幸福的挑战。
Patric Fornasier :
肯特·贝克的 主题演讲也很有趣。 他认为,将来我们将编写(甚至)更多的测试,更频繁地部署应用程序(显然 Flickr每30分钟执行一次!),在分布更分散的团队中工作,并解决更复杂的问题。 他还认为,随着新一代精通技术的商人的兴起,软件开发人员将越来越失去其“向导身份”,并且需要在非技术技能方面进行更多投资。
史蒂夫·维诺斯基 ( Steve Vinoski) :
肯特·贝克 ( Kent Beck )的主题演讲非常出色。 这是关于开发人员的责任,开发人员的完整性以及开发人员与周围人之间的关系( 这是一个很好的摘要 )。 极富洞察力,当然也不是意料之外的,并且涵盖了不幸地经常被技术人员禁忌的重要主题。
马克·埃丁顿 ( Mark Edgington) :
强调重点应该放在社交技能上,而不是技术技能上。肯特(Kent)诱使开发人员与业务人员融合。 他指出,诚实行事,隐藏复杂性和不断变化的需求并不是建立业务合作伙伴并使他们信任您开发的软件的最佳方法。 对于许多人来说,这是一个简单而又关键的问题。
蒂姆·安德森 ( Tim Anderson) :
肯特·贝克(Kent Beck)确实是一位关系顾问,还是应该成为顾问? 这不是一件坏事。 贝克今天上午在Qcon上发表了主题演讲,并谈到了一些技术主题,例如频繁部署(他声称Flickr每半小时部署一次)和更频繁地创建更多测试,但是他演讲的重点是开发团队内部的关系。在团队和业务人员之间(如果他们认为自己是独立的)。
贝克说,计算的普遍性正在改变程序员的典型特征。 当只有极客拥有计算机时,程序员不可避免地会极客-无论出于何种原因,这通常都意味着某种社会不适感。 今天,每个人都随着计算机的成长而成长,他说,计算机使具有更好社交技能的非极客可以更轻松地进行编程。
安东尼奥·贡萨尔维斯 ( Antonio Goncalves) :
他没有谈论团队应具备的技术技能,而更多地谈论社交技能。 如果他不能在团队中工作,就不需要一个非常切肉刀的技术人员。 一个人可能会破坏整个团队的生产力。 但这带来了另一个招聘问题。 如何评估社交能力? 这似乎是估计不足,但正如肯特所说,这是可以了解的。 对他来说,最重要的技能之一就是能够听。
和史蒂文·米勒姆 ( Steven Mileham) :
当天以关于敏捷开发方法的有趣演讲开始(再次)。 此演示文稿的不同方面在于,它更加关注团队中以迭代,协作方式工作所需的社交技能。 他的主要观点似乎是专注于团队的专长,并确保将自己的精力投入其中,而不是就表现为何不应该达到预期水平而进行创造性的撒谎和借口或借口。
Reg Developer的 Phil Manchester也撰写了有关此主题演讲的文章 :
贝克担忧地指出,传统的软件开发方法与经济现实背道而驰。 然而,尽管进行了大胆的尝试更改(例如URL驱动设计(UDD)的实验性工作),在XP的早期,它实际上是根据Web请求实时生成HTML代码的,但他还是选择了一种可行的方法。
“公认的智慧是,如果您花时间预先获得正确的设计,那么以后就可以避免成本。但是,花费较长的时间获得正确的设计,您的前期成本就越多,并且开始赚钱所需的时间就越长。软件的模型是快速设计它-即兴的经济压力提出了一个有趣的挑战,”贝克告诉QCon。
帕特里克·柯伦 ( Patrick Curran) 描述了周四晚上发生的JCP BOF :
讨论涉及多个主题,但主要重点是个人和JUG如何参与JCP。 一些人对他们认为是进入障碍的事物表示关注(例如,会员必须签署的法律“参与协议”,并且许多人感到恐吓),我们都认识到,个人参与比参与困难得多。某人的活动是由其雇主赞助的。但是,由于我们将组织称为Java 社区流程,因此我决心尽我所能鼓励和使个人参与。我参加QCon的主要理由是与广泛的Java社区成员部分,我很高兴地报告我能够做到这一点。我要感谢QCon组织者给我们这次机会,当然,我还要感谢参加会议的每个人。
Antonio Goncalves也谈到 了他对BOF的印象 :
我喜欢他们,这是一个非常非正式的BoF。 大约有20个人出现,与Patrick Curran,Rod Johnson,Peter Pilgrim ..我们讨论了JCP。 Rod毫不费力地承认JCP已经开放了很多。 我提供了成为专家成员以及其他成为JSR领导者的经验。 我们讨论了很多有关透明度,开放邮件列表,Wiki的想法,这些想法将使JCP更加透明。 看到规范负责人或多或少地做了他/她想要的事情,我感到很惊讶。 甚至有些JSR已经具有公共邮件列表。 我问帕特里克,参加JCP的个人百分比是多少。 我原以为这个数字在10%或20%之间,但不,是四分之三。 那时我不是唯一参与其中的人; o)
Dionysios G. Synodinos 描述了也在周四晚上举行的InfoQ BOF :
在这个BOF中,我有机会见识了 InfoQ背后的面Kong,并了解了它的发展以及未来的方向。 这是一次友好的互动,有几位参与者对这个信息丰富的社区网站如何发展发表了意见。
BOF花费了很长时间,以至于在同一房间内容纳下一个BOF的 软件工程电台的团队到达了,我们所有人都有机会一起互动,直到必须关闭该场所为止。
埃里克·约翰逊(Erik Johnson ) 对REST的一些想法是在参加此跟踪之后出现的:
RESTful应用程序的公共“ API”是其URI地址空间。 您可以发明所有想要的映射到资源和状态序列的URI列表。 但是重用潜力仅限于您的调用者可以从该URI空间中获取的任何内容。 与REST一样,SQL数据库具有统一的接口。 但是请注意您可以访问的资源实际上是无限的。 显然,REST URI不应是SQL语句,并且我也不想将XQuery塞入URI。 我要说的是,URI空间可以合并数据模型中的父子关系特征和关系特征-使用关系数据库行为作为指导。 这是为我们的产品开发URI策略的关键方面(超过8年,BTW)。
新兴的规范和工具包(例如WADL和WCF)具有URI模板构造。 但是URI模板没有资源链接的概念(父,关系或其他),这限制了它们的有效性。 在QCon上,几乎没有共识认为WADL是描述REST应用程序的正确方法。 但是我认为REST描述语言资源类型即将到来,我希望它们的创建者至少考虑URI模板的资源链接功能。 之前已经做完了。
Mark Little还重申了他在会议上提到的关于REST和HTTP的两点 :
- 自从Web 发布以来,我一直在开发应用程序:当时在大学,我有很多玩耍的自由。 我什至在InterViews中编写了一个浏览器! (其他人还记得gopher吗?)无论如何,我记得第一次提出URN提案时感到很高兴,因为它旨在通过定义一组特定的名称服务器来解决我们当时提到的一些问题:您将不再必须直接使用URL,但是您将使用URN,基础结构将通过名称服务器为您查找它们。 听起来很熟悉 ? 快进10年了,这从未发生过。 还是呢? 好吧,如果您考虑使用命名服务 (或交易服务 ),那么WTF是Google还是Yahoo ?
- 我的朋友和InfoQ的同事/编辑Stefan还有另一篇有关REST的文章 。 在其中,他解决了关于REST的一些常见误解,尤其是认为缺乏发布/订阅。 你什么? 正如他和我分别提到的那样,很明显, RSS和Atom是RESTland中正确的方法。 上周我在QCon上获得的反馈使这种方法在这个假期的宠物项目列表中名列前茅,因此我一直在为我们的ESB以及我自己的其他一些隐形项目进行研究。
蒂姆·安德森(Tim Anderson)还讨论了整个赛道 :
Stefan Tilkov领导了有关SOA,REST和Web的研究。 现在,此主题的总主题(紧接 在Enterprise Bus的 缺点的前一天的Fowler / Webber会话之后)是SOAP和WSDL和WS- *无法交付,并且REST从根本上是一种更好的设计方法分布式应用程序间系统。 WS-*,SOAP和WSDL有什么问题? 标准太多; 太复杂 太脆了 太不兼容了; 免费和开源实现太少; 泄漏的抽象; 被中间件厂商劫持,他们对保持技术的神秘性和昂贵性感兴趣。
相比之下,REST出于各种原因而被接受,从有关基于资源的计算的价值的纯粹论据(其中所有内容都具有URI)到沿用“它起作用,我可以使用,我理解它”的务实论据。 ” 但是,如果您查看一些描述为REST的解决方案,事实证明某些解决方案比其他解决方案更具RESTful-使用HTTP作为POX(普通XML)的传输不一定是REST。
史蒂文·米勒姆(Steven Mileham) 喜欢学习 REST:
我剩下的时间都花在“ SOA,REST和Web”轨道上。 现在终于掌握了REST服务的概念,我想回过头来重写我已经构建的所有Web服务。 传统的“ Web服务”侧重于定义必须不断维护的特定接口和API,因此,如果更改了后端,则必须更新该服务的使用者,而REST使用HTTP的标准操作。通过使用这些方法,任何HTTP客户端现在都可以使用您的服务,这些服务由描述资源的URI标识。 http://example.com/orders/2007将返回2007年以来的所有订单。
- 得到
- 放
- 开机自检
- 删除
Callista的 Johan Eltes写了一篇长篇文章,讨论 API中复杂性与简单性的挑战,并评论道:
前Web服务的推广者,例如Steve Vinosk(爱奥那州,Virtue),Mark Little(惠普,WS- *规范负责人,JBOSS)都在花时间抨击SOAP和WS- *。 HTTP Web服务和REST代表的体系结构是对过于复杂的最佳实践的新React。 REST已经使用了很多年,并且是Google等全球性公司的核心接口技术。 亚马逊还增加了REST的使用。 从历史上看,REST有什么特殊之处可以阻止它开始复杂性规模的发展,重复主流主流产品的历史吗? 还是由于无法适应新要求而失败? 我们要去REST- *吗?
Jan Balje对本演示文稿有一些评论 :
因为这对我来说是个新概念,所以我决定听一听。一个很好的谈话,尽管我并没有完全了解它。 REST是一组5条原则,在开发Web应用程序时可以应用。 这为您提供了许多技术可能性。 但据我所知,它是Web服务的替代方案。 一个重要的新趋势已经出现,而我们还没有结束上一个趋势。
Dionysios G. Synodinos也很喜欢这种表现 :
很好地介绍了REST的基本原理以及为什么要关心它。 有趣的是,经过近几年的大量技术开发,一切都回到了WWW的基本性质。
Stefan Tilkov写了这篇演讲的详细摘要 ,包括:
- 讨论是关于将REST应用到实际的应用程序问题-管理Web服务元数据
- 尚未看到也是API的Web UI-例如,人们无法在其浏览器中设置用于调试目的的Accept标头
- AtomPub的优点:POST,GET,PUT,DELETE的明确行为
- 也许可能存在通用的REST或Atom查询语言
- SOA中的主要问题:信任是根本原因
- WS- *元数据还不足以用于现实世界-需要一些现实生活中的注释
- 生命周期处理-仍是基本的,版本1.1中有更多功能
Stefan Tilkov写了这篇演讲的详细摘要 ,包括:
- “遗留应用程序的定义是'有效的应用程序'”-QoTD!
- EAI产品通常是集中式集线器,专有且昂贵,昂贵
- 代码生成(无论是从WSDL还是从代码生成)都会产生看似重要的消费者-服务耦合
- 集成问题摘要:专有方法过于昂贵,标准方法侧重于实现语言,而不是分布式系统问题,新接口->新应用程序协议(他从来不曾注意),与接口耦合的临时数据格式-所有这些都阻碍了重用
- 需要考虑的问题-管道是在第一天发明的吗? 还是后来发现-巧合?
- Steve过去所做的大部分工作(构建ORB等)都涉及具有特定接口的影响(生成代码,创建运行时基础结构)。 这些东西大部分都在REST中消失了
- 对REST论文的称赞-“他读过的最清晰的体系结构文档”
- 简介:面向RPC的系统尝试通过网络扩展语言范例-鼓励无法扩展的变化(方法,数据类型)
- REST是专为分布式系统而构建的,可以适当地分离关注点,并且仅在需要时才允许受限制的可变性
Antonio Goncalves也总结了这次演讲 :
他从一张结构化幻灯片开始,该幻灯片显示了使用DB,SMTP,HTTP,MOM(昂贵),ESB和EAI(同样的东西,刚刚重新标记),JCA,RPC(忽略部分故障),JAX-WS(编组/拆组)的不同系统之间的互操作性。 )...在谈论REST之前,史蒂夫谈到了Unix管道。 它们具有非常统一的界面和标准文件描述符。 任何命令都可以在输入(stdin)中输入内容,在stdout上生成内容,并处理错误(stderr)。 这就是为什么我们可以以任何方式将它们组合在一起的原因。 REST还具有统一的接口(GET,PUT,POST,DELETE),您可以通过管道传输资源并鼓励正交应用程序的组合。
Stefan Tilkov还撰写了有关此演讲的详细说明 ,包括:
- 2000年至2005年:用了5年的时间使发行透明化-就像1970年一样
- 分配必须明确,否则您将无法处理失败
- 通过使远程交互看起来像本地交互而引入的紧密耦合问题
- 统一的界面可实现通用的基础设施支持
- 特定的接口允许更多有限的通用支持
- 标准:Web是一系列标准,普遍采用必须有所作为,REST / HTTP随处可见
Stefan Tilkov 从这次演讲中获得了详细的注释 ,例如:
- 精神分裂症患者是否喜欢消息传递或Web
- XML精灵在您的企业系统上撒了一点点粉尘(实际上可能是可卡因)
- 并非所有内容都需要成为OASIS标准。 我们知道不要公开泄漏。 (他这样说)
- 机缘巧合-不要让RESTafarians告诉你与众不同
- Web边缘的创新-不是像W3C这样的中央设计权威
- 随着合同的变更成为资源的一部分,我们再也不必如此
- 简介:Web和Web服务社区都遭受着糟糕的模式和实践以及糟糕的工具的困扰
帕特里克·福纳西耶(Patric Fornasier)也评论说,这次演讲“展示了一些非常有趣的想法,这些想法使用现有的Web基础结构(即没有WS- *)来集成应用程序和实现业务工作流程”, 马克·埃丁顿 ( Mark Edgington)表示 ,这次演讲是“正如人们所期望的那样,充满活力为什么REST与Internet一起成为企业总线,这比任何供应商或WSDL和WS-*(死亡之星)规范都具有的优势要大得多。”
Maarten Manders描述了他认为基于云的应用程序开发的一种新方法 :
需要更多存储空间吗? 以S3。 是否需要快速扩展另外20台服务器? 拿EC2! 是否需要获取用户的邮件,日历和其他内容? 使用Facebook,Google和Yahoo的服务。 最后,只需将其与Yahoo!融合在一起即可! 管道! 我认为是Nati Shalom,他对云计算发表了一个有趣的评论:开发新应用程序如今产生的风险很小,因为它非常便宜且易于将您的应用程序组合在一起。 如果您绊倒了,就不会摔倒。 如果您成功了,云将为您带来沉重的负担,并帮助您进行横向扩展。 在我看来,这可能是在动态类型化语言兴起之后使(Web)开发再次变得更加敏捷的下一个重大飞跃。
菲利波·迪奥塔列维(Filippo Diotalevi)说,这是“我在QCon参加的最有趣的曲目”,并且:
可以通过两种不同的方式查看云计算:
- 从开发人员/架构师的角度来看,它是一种体系结构样式,它依赖于具有由应用程序发现和使用的(非本地化,动态,分布式,不可靠但冗余)服务的“云”的想法。
- 从“用户”的角度来看,它可以看作是一种无需任何代码(或只有几行代码)即可创建新服务的方法,只需将不同的服务和内容提供商免费连接到云(互联网)上即可
扬·巴尔耶 ( Jan Balje)介绍了亚马逊服务如何消除项目失败的一些借口 :
大多数程序员或学生都使用缺乏硬件资源,这是他们的项目不符合老师(或他们自己)最初对项目的期望的原因之一。 他们说,如果我们有更多的计算能力,那么我们可以使该功能正常运行,可以在项目可用的短时间内完成更多的工作,否则查询就不会花很长时间现在。
来自Amazon.com的杰夫·巴尔(Jeff Barr)掩盖了这种争论。 用他自己的话说,他是一位真正的网络服务传播者,将这次聚会介绍给了另一个Amazon.com,该聚会目前拥有三个数据中心(美国两个,爱尔兰一个),使每个人都可以只需很少的钱,就可以即时获得所需的计算能力。 亚马逊创建的网络服务可以处理所有繁琐的编程工作(就像来自亚马逊的另一个人杰夫·贝佐斯(Jeff Bezos)所称的那样),例如负载平衡,初始化服务器和服务以及诸如此类的日常工作。 注册后,用户可以使用FireFox扩展名启动服务器并立即对它们进行SSH。 如果需要,可以使用第一个服务器的确切配置启动另一个服务器。
Jevgeni Kabanov 概述了谈话中描述的Amazon服务 ,包括:
演讲的第一部分是关于 S3文件托管的,它是通过Firefox插件(我首先误认为FireFTP)完成的。 您可以上传文件,分配ACL,获取发布的URL,并按比例支付已使用的存储空间,已完成的请求和已使用的带宽(这三者均已分配了费用)。 技术上没什么花哨的,但是很酷。
下一部分是关于 EC2的 ,这是虚拟服务器的即时租用。 您基本上将一个(特殊的)磁盘映像存储在S3服务上,然后从中启动许多虚拟服务器。 您具有对服务器的超级用户访问权限,并按小时付费。 您可以通过编程方式或从Firefox扩展中添加/删除服务器。
史蒂文·米勒姆 ( Steven Mileham ) 惊讶地了解到亚马逊的服务:
我当时还不知道亚马逊在这个领域也没有任何东西,我期望电子商务的服务是诚实的。 但是,它们实际上涵盖的是完全可伸缩的服务器基础结构,您可以在该基础结构上运行所需的任何应用程序。 通过使用服务器场,他们托管了许多虚拟服务器,这些服务器以合理的费用可以动态创建,群集和使用,并且可以在任意时间范围内使用,并按小时和存储收费。 服务器的创建完全采用脚本编写,以便在需求达到特定点或需要更多存储时进行扩展。
匿名与会者查看了使用这些服务的成本效益:
考虑到典型的老式计算中心的成本和灵活性,这对我们来说无疑是一个有趣的选择。 一个快速的计算告诉我,如果要复制部分基础架构(亚马逊可能是个好主意),则每月大约要花费我们900美元。 我不知道我们当前数据中心提供商的确切数字,但是如果它这么低,我会感到惊讶。
马克·埃丁顿(Mark Edgington)也参加了这次演讲 :
我已经使用了Amazon S3(简单存储服务)的Jungle Disk。 但是,本次讨论贯穿了整个服务集,为每个服务提供了足够的洞察力,以激发人们对潜在用途的思考。 我最感兴趣的是弹性计算云,它可以使用时间,带宽和计算能力定价模型实现快速的可伸缩性和设置。 即将面世的简单数据库对象数据库看起来非常有趣。
Callista的Johan Eltes讨论了此演示文稿引起的一些想法 :
因此,SalesForce只是在Forces.com SaaS平台上构建的应用程序的示例。
该平台具有许多精美的4GL功能,可促进业务应用程序(Force.com的领域)的开发。 我对Force.com的了解越多,它使我对SAP MySap ERP应用程序和构建SAP应用程序已有很长时间的业务应用程序平台的思考就越多。
当SalesForce架构师揭示了一种专有的业务逻辑语言Apex(SAP业务逻辑语言被称为“ ABAP”)时,该循环就被关闭了。 随着SaaS的发展,有趣的是,看看Force.com是否成为“ SaaS的SAP”。
马克·埃丁顿(Mark Edgington)总结了这次演讲 :
谷歌数据API讨论集中在基于SOAP的REST选择背后的决策上。 基本上,REST的四个操作get,put,post和delete可能满足您90%的需求。 他们还围绕查询,身份验证,并发操作和批处理更新开发了扩展。 这些概念与使用示例和有关建立或建立标准的好处的注释很好地结合在一起; 少记录一个大文件。
演讲结束后, 马克·埃丁顿(Mark Edgington)有一些想法 :
大约一年前,我发布了有关管道的信息,此后它的模块数量从20个增加到了50个,占到了Google的所有混搭调用的1/3。 我确实需要更多地使用它,它确实非常酷,无需编码即可带来很多功能,并使那些可以花更多时间在使用数据的应用程序上的人使用。
马克·埃丁顿 ( Mark Edgington) 将这个小组描述为 “毫无疑问,到目前为止,今天的亮点”:
当天的演讲者涵盖了从当前职位到未来问题的整个云计算领域。 我有五页的笔记,因此没有N810的笔记,否则我的拇指会死掉。 我感兴趣的关键点是,云几乎是一些旧技术的更新,而实际上并没有完全做到这一点,这与标准的久经考验的思想和创新的定价相结合。 如果存在或将要解决一个关键问题,则必须是安全性(信任),我认为这只会造成一个重大的安全漏洞(数据丢失或窃取),并且可能会使一家公司倒闭。 许多人将必须以信任为基础,因此值得一看。
马克还讨论了给小组每个成员的魔方 。
Libor Soucek在此轨道上有一些总体思路 :
银行业务对我来说非常有趣,这不仅是因为我在完全相同的领域工作,而且还因为高容量/低延迟系统所带来的挑战需要非常平衡的体系结构以及使用时要谨慎选择的技术。 此外,在这个领域中确实存在一些最新/最先进的新兴技术在这里并不总是可用的(例如,动态语言,WS- *等)。
西蒙·布朗 对此演讲作了概述 :
首先是约翰·戴维斯(John Davies),他在最后一刻跳了进来,因为该时段的发言人无法参加会议。 John没有讨论有关领域特定语言的会议,而是对投资银行领域的技术进行了概述。 这是一个非常有趣的演讲,并且很好地总结了我们在过去几年中看到的许多趋势(例如,压缩在有线消息格式而不是XML等上)。 对我来说,主要的要点是您需要进行设计以实现可伸缩性。 这就是为什么我认为重要的一点,软件系统必须具有明确的,有意的架构,并且要有人负责。
Libor Soucek也有一些要点 :
实际上,在“银行”领域中所呈现的应用程序都没有碰到Windows和/或基于.NET的系统,这令我惊讶! 根据约翰·戴维斯(John Davies)的介绍,该领域中80%至85%的应用程序实际上是用Java编写的。 然后,由于其性能/内存功能和执行的可预测性,其余的“市场”份额主要由C / C ++占据(即,所有基于“标准” GC的环境都在争夺低延迟的近实时应用程序上的执行时间无法预测) 。
这次演讲给 Maarten Manders 留下了深刻的印象 :
我认为,在银行业最好的演讲是由Merill Lynch的首席架构师Iain Mortimer主持的。 他告诉我们他们 每天如何收集 9亿条监控消息 ! 事实证明,其基础结构和应用程序堆栈中的每个组件都在不断生成监视消息,并且它们似乎确实在关注微秒级的延迟。
自然,最具挑战性的任务是弄清这场原木海啸。 目的是可靠地发现系统故障,而不会被无用的警报所淹没。 因此,例如,如果您的硬盘已满,系统将产生大量错误消息:首先,您将收到容量错误。 然后,无法再写入文件,查询失败,服务队列堆积起来,最后,您将耗尽内存。 这些故障中的每一个都会产生大量的冗余错误消息。 但是,您唯一感兴趣的消息是磁盘已满。 修复它会使其他元素消失-称为关联。
马克·埃丁顿(Mark Edgington) 对这次演讲也有一些想法 :
它提供了非常清晰的视图,说明Merrel Lynch如何处理全球各地系统产生的数十亿条每日消息。 消息优先级的分解以及18秒内自动解决问题的目标非常有趣。 不同的供应商错误消息,仪表板以及将这些错误信息组合到区域,站点,区域和全球级别的监视仪表板中的首要工作的复合问题确实令人大开眼界。
西蒙·布朗 也参加了这次演讲 :
尽管这是一个相对有趣的会议,但我确实认为标题有误导性。 Iain没有谈论如何满足99.95%的可用性目标,而是谈论了美林如何监视这些系统,尤其是它们用来监视那些系统的规则。 Iain说,他们的可用性要求允许每天18秒钟的停机时间,但是没有详细介绍任何能够使他们达到目标的故障转移或恢复技术。
西蒙·布朗 总结了这次演讲 :
尽管有一些银行业的例子,但本次会议本质上是一个通用的RTJS讨论。 我最接近实时Java的是具有确定性垃圾收集功能的BEA的JRockit JVM,但正如Betrand所说,垃圾收集只是其中的一部分-Java应用程序还会因为JIT编译器在不希望的时间进入而产生抖动,等等。虽然这不是我可能会尝试的事情(Sun的实时Java VM目前仅在Solaris 10上运行),但他们所做的是建立了一个框架,您可以在该框架上构建应用程序。确定其中的哪些部分是常规Java,软实时或硬实时。 我的理解是,除了适当地调度垃圾收集器以免干扰之外,还可以利用底层的OS实时线程和对非堆内存空间的一些巧妙使用来使硬实时内容成为可能。 很酷的东西,我想我们很快就会在银行业看到这种现象。
Nik Silver 对本演示文稿有一些评论 :
甚至非常具体的演示文稿也包含可以概括和重用的宝贵观点。 例如,必发(Betfair)的Matt Youill和Asher Glynn讨论了他们如何将服务器上的事务处理扩展一百倍。 Guardian.co.uk不需要这种吞吐量,因此详细信息主要具有知识优势。 但是,一个重要的实践课是他们如何解决该问题:将其呈现给行业参与者,这是对获胜公司的巨大荣誉的挑战。
西蒙·布朗也参加了这次演讲 :
接下来,必发会谈了他们的新Tradefair平台,以及他们为提供高度可扩展,高度可用的交易平台需要克服的一些挑战。 再次,对问题和高级解决方案进行了一些有趣的讨论,尽管会议中有很多人(包括我自己在内)并不真正了解他们所做的事情。 他们对细节非常粗略,而我却想知道为什么他们不能使用JavaSpaces之类的东西来实现他们的系统(他们所说的听起来像是JavaSpace,将很多东西放入并匹配它们)。 我对本次会议喜欢的事情是他们公开承认所有解决方案都不理想(都需要权衡),因此他们必须选择最适合其需求的解决方案。
西蒙·布朗 ( Simon Brown) 将其描述为 “一天中最好的会议之一”:
它概述了业务问题,概述了所选的体系结构,并介绍了如何使用某些技术来构建平台。 该项目表明,可以使用基于Java的主流技术来构建大容量,低延迟的平台。 BEA的JRockit JVM用于减少Java运行时的抖动,从而有可能达成服务水平协议,该协议规定消息应在100毫秒内通过平台。 由于涵盖了从业务问题到某些实施细节的所有内容,因此这是结束第一天的好方法。
扬·巴尔耶(Jan Balje)也对此演讲进行了总结 :
这些人面临着与以前相同的问题。 他们必须*每秒*完成20.000个事务*,最大延迟为100毫秒。 他们使用Java实现了这一目标! 关键是Weblogic Real Time,这是具有实时保证的替代JVM实现。
奥拉·比尼(Ola Bini)参加了这次演讲 :
我作为Ruby的人和编程语言的书呆子有很多不错的曲目。 我最终看到了Ted关于F#的介绍,这让我感到:哇! 微软采用了ML,并对CLR上的所有语言进行了完全相同的处理-添加了对.NET对象的支持。
Dionysios G. Synodinos 对此讲话发表了评论 :
尽管演示文稿的标题已从时间表中的标题更改,但有关类固醇的部分是演讲者的100%代表。 具有学术背景的人,在Microsoft Research工作并维护GNU许可的Haskell编译器...哇,那个家伙真棒
一位匿名与会者还补充说:“显然,轻松地是整个会议上最好的演讲。不幸的是,我对此感到有点不知所措,并且没有做很多笔记。”
许多人讨论了此演示文稿,包括Jan Balje :
之后,我们进行了有关Erlang的演示,这是一种特别适合用于并发的新编程语言。 该语言在时尚单子上很热门,并且可能与多核系统的兴起息息相关。 看看有没有可用的幻灯片。 一个值得一看。 乔·阿姆斯特朗(另一位参与者称为“坚果教授”)也写了一本书。
“保罗” :
我很幸运参加了Joe Armstrong在 QCON2008上的演讲。 他指出,在硬件世界中,没有人期望限制多核扩展。 预计未来十年内将有 成千上万个内核 。 乔还指出了 阿姆达尔定律,并指出,如果程序的10%是串行的,则可获得的最大加速是10倍。 这是非常发人深省的:我们将需要将并发编程推入开发的核心,但是根据我自己的经验,我们迫切需要新的编程范例来确保我们不会创建非常麻烦的软件。
还有史蒂夫·维诺斯基 ( Steve Vinoski) :
但是,本周最好的部分是与Joe和其他Erlang的人见面并闲逛。 乔真是个好人。 他非常精力旺盛,他的大脑永不止步。 他对Erlang以外的许多技术性事物感到好奇,我发现与他的讨论充满了有趣的问题和见解。 考虑到这些天我与Erlang经常合作,我的希望只是希望有机会向他打个招呼,但事实证明我很幸运能在他的陪伴下花很多时间陪他。会议过程。
一位匿名与会者还写了详细的演讲摘要 ,包括:
Erlang本质上是通用的,但设计用于特定领域:电信交换机。 这些程序是高度并发的(具有成千上万的并行活动),具有实时的软性要求,庞大的网络分布,高可用性和非常大的软件(LOC> 1M),这些软件需要可升级而不关闭任何设备。
直到2002年,人们可能会在一个时钟周期内击中整个芯片。 因此内核不再变大,但数量更多。
因此:
- 每年,顺序程序都会变慢
- 每年,并发程序将变得更快
彼得·皮格里姆(Peter Pilgrim)也参加了会议,并作了详细的总结 :
为什么发明Erlang? 它是20年前发明的,用于实时解决100 000次活动的高并发性电话交换机。 电信是全球范围内最大的分布式计算机。
为什么Erlang受欢迎? 在1980年代,芯片变得更大,时钟频率变得越来越快。 一天,光速照到你身上。 阿姆达尔定律的极限是在1992年预测的,但实际上是在2002年突破的。您不可能在一个时钟周期内物理击中整个芯片的100%,因此电子无法传播的光速距离是不可能涵盖的。 因此,该技术变为多核(多核)。
:
Dionysios G. Synodinos对此演示文稿有一些想法 :
泰德的演讲内容丰富而有趣。 他有一种直接与听众交流思想的方式,并且有一种非常独特的幽默感可以使这一切变得糖衣sugar绕。
这次演讲给我留下的印象是,尽管近来这种语言流派得到了人们的广泛关注,但实际上没有人在企业领域拥有丰富的经验,而且尚未建立使用的实际模式。
彼得·皮尔格里姆(Peter Pilgrim)也对此演讲进行了详细说明 ,包括:
Scala中的Quickshort比Java中的Quickshort短很多。 另一个示例是将XML打印到控制台。 使用Scala XML框架的任意占位符语法。 Scala使用刚刚导入的库支持XPath语法,因为Scala允许使用带有任意字符的函数名称。 总体而言,Scala没有任何操作意识。 从每个值都是对象的意义上讲,Scala是一种纯面向对象的语言。 Scala也是一种功能语言。
达尼洛·佐藤(Danilo Sato)谈论了一场即兴开放空间会议 ,该会议取代了被取消的谈话:
该课程以“开放空间”风格的会议结束,与会者讨论了哪些因素正在推动不同语言的兴趣和复兴。 对我来说,这是当今最有趣的讨论,它增强了 多语言程序员的实力。 主题之一是,通常某人要成为某事的专家需要花费数年,并且很难将这些知识抛在后面去学习新的东西。 我认为这取决于您是要成为 专业人士还是通才 ,我已经声明了 两者的立场。 讨论的另一个有趣的方面是 马丁的观点,即进化是周期性地发生的,经过一段时间的稳定之后,是时候(再次)扩大选择范围并寻找新的想法,将我们带入下一个重大事件。 在这些时候,重要的是寻找新的学习机会而不是缩小知识面。 我认为是时候该使用通才帽了... :-)
彼得·皮尔格里姆 ( Peter Pilgrim)撰写了演讲的详细摘要 ,其中包括:
Brian Goetz不会期望人们很快抛弃Java并转而使用JKOCaml,Erlang或其他模型。
他提倡“在可能的地方有不变的物体”。 惊喜,惊喜。 有时制作副本比分享便宜。 复制不可变对象始终是线程安全的。
他建议看一下Scala,尤其是Scala Actors库。
奥拉·比尼(Ola Bini)对这次演讲表示赞赏 ,他说:“这次演讲对解释为什么您想要做这样的事情以及为什么它是如此强大的技术很有用。”
Reg Developer的 Phil Manchester也撰写了有关此演讲的文章 :
软件培训公司Agile Developer的主席Venkat Subramaniam告诉QCon Java已经超越了一种语言,现在的兴奋点集中在Java平台与动态语言(例如Groovy,JRuby和Jython)的结合上。
Subramaniam说:“多语言环境意味着您可以在使用不同语言创建的结构之间获得完全的互操作性。动态语言还为您提供了元编程和领域特定语言的功能。这提高了生产率,并使用户更具表现力。”
Peter Pilgrim撰写了此演示文稿的摘要 ,包括:
动态字节码加载-当前引入任意字节码的方法很麻烦。 ClassLoader,JVM内存昂贵。 基本上,一种解决方案是使用包含字节码的匿名类。
延续-本质上,Ola提出了直接在JVM内部执行堆栈操作的能力。
这个想法非常强大,因为RIFE为此提供了一个库。 连续的概念允许基于工作流程和会话状态的计算被暂停和恢复。
Dionysios G. Synodinos撰写了此演讲的摘要 :
该演示文稿建立在 Eric Raymond的开创性论文的基础上 ,该 论文分析了开源为何如此出色的原因 ,该论文被称为“大教堂和集市”。
增加的是 Commissar ,这是来自苏联的角色,是Rod对 Java Community Process在Java生态系统的演变中扮演的实际角色的看法。 这是一个粗略的比喻,他尝试用苏联解体后的几个例子来加以支持。
在过去,他的许多讲道,例如POJO而不是EJB的轻量级方法,都已经成功地影响了Java的发展。 这在Java EE 5和拟议的Java EE 6的路线图中比以往任何时候都更加明显。很有趣的是,看看他对JCP如何更改其 操作方式的看法是否会说服Sun从根本上重组驱动程序的过程。 Java的未来。
蒂姆·安德森(Tim Anderson)还详细讨论了此演示文稿,包括:
约翰逊问我觉得什么是关键问题:应该标准化什么? 他说,尝试同时进行创新和标准化是愚蠢的,因为委员会会弄错它。 您应该在市场上众所周知,理解和证明的领域进行标准化。
尽管出现了,约翰逊不是JCP的敌人。 他热情地谈到了现任主席帕特里克·柯兰(Patrick Curran),他正试图改革该组织。 并认为正在取得真正的进步。 Curran也在QCon上寻求关于JCP及其未来的意见。
约翰逊还认为Java已经发展。 他说:“ Java世界不再是一党制国家。”
Antonio Goncalves也写了这个演讲 :
有时候,对联合执委会的看法很难。 作为专家成员并且已经使用Java EE多年了,我不得不说我同意他的大部分意见。 他的演讲分为三个部分:1)创新的源头是什么:与人,实验,竞争的分歧……2)Java EE的历史:在J2EE(供应商锁定,市场支离破碎)之前,J2EE的承诺(JCP成为主导,它创造了一个市场),J2EE的下降和开源的兴起。 3)下一步。 在那儿,罗德谈到了大教堂(一家公司创造了一切),集市(许多人以无序方式创造了这座大教堂)和政委(一种独裁的经商方式,即JCP是苏联政委)。 现在,开源不再是义卖市场,而可以看作是大教堂(JBoss,Eclipse,Spring ...)。 The JCP doesn't control Java, there's also OASIS, OSGi, W3C, OMG, Open source...
Peter Pilgrim 也为这次演讲做了详细的笔记,包括:
开源产生了快速的实验/评审周期。Johnson认为JCP未来的最大事件根本与Java无关。很明显,他相信,Sun对开源是非常认真的,因为Sun最近以10亿美元的股票和股份购买了MySQL AB。明天是什么样子?从Johnson所描述的预期和已知的标准化周期来看,他说我们正处于缺乏创新的周期中,至少是来自JCP的创新。我们的目标应该是在不失去创新优势的情况下保持标准的好处。改变需要更快。JCP需要适应才能生存。
Peter Pilgrim Peter Pilgrim发布了本次演讲的许多主题,包括Java的长期目标:
* 规范现有的语言
** 具体化
** 进一步简化泛型
* 并发支持
** 不可变数据
** 控制抽象
** 封闭
** Actors, 等
Simon Brown也参加了这次讲座,他有一些感想:
我参加的最后一个会议是Neil Gafter的关于Java 7及其以后的新特性的讨论。
我并没有太密切地关注这一点,能赶上这一切是很有趣的。
最让我震惊的一件事是Java平台JSR还没有启动,Sun似乎没有足够的资源来做他们想做的一切(显然JavaFX更重要?)
我一直以为该平台的主要版本将以18个月为周期发布,但显然这是不可能的。
我也不一定理解开源的东西在哪里或者如何适用于所有这些。
Java 7中有一些不错的小特性正在考虑中(多异常捕获、简单的异常重抛出、打开字符串的能力等),但部分我认为更大的语言变化(如闭包)不应该实现。
也许停止对Java语言做大的改动,开始把更多的精力投入到其他方面(如Scala、Groovy等)会更好。
Antonio Goncalves也评论道:
基本上,Java 7的路线图仍然不确定。Neal说过,属性提案可能不会在JDK 7上。于是就有了结束的话题。Neal说了一句很有趣的话:“很多公司都想关闭,除了两家:Sun微系统公司和我的老板谷歌Inc。”事实上,令人难以置信的是,Java 7的JSR甚至还没有开始。正如Neal所指出的,Sun没有足够的资源在一个合适的时间框架内实现它(看起来团队都在忙着使用JavaFX)。
Michael Hunger对这次演讲有几个想法,他描述了这次演讲的基本原则:
1)所有资源都由URI命名
2)资源是不可变的和复制的
3)可以构造任意的URI来表示一个计算,并使用其他URI作为参数
(如活动:imageOperation + operation@fllcc: / doc / rotate45.xml + image@http: / / imageurl)通过这些假设,Peter展示了一种函数式编程方法。您只需将程序(函数、表达式)以级联的方式编写(或让工具编写)。
蒂姆·安德森也参加了这次演讲:
1060 Research的Peter Rodgers谈到了他的NetKernel,它是一种REST运行时。“我正在键入字节码”,他解释说,因为他把URI字符串放在一起,执行各种操作。他注意到,很多计算都可以简化为使用另一个资源对某个资源执行某些操作,这可以表示为URI。这是一个例子:
Active:toUpper+operand@ffcpl:/demo/data.xml
实际上,这是通过uri进行的函数式编程。
Reg Developer的Phil Manchester写了一篇关于这次演讲的文章:
Spring Batch的主要委员之一Dave Syer说,大约有40个组织正在使用Spring的基于java的框架,其目标是取代用Cobol编写的老化的大型机批处理应用程序。它与SpringSource的企业Java工具(如Spring Integration)一起工作。
Patrick Curran描述了这个小组的气氛:
会议座无虚席,讨论十分热烈。
总的来说,人们是支持JCP的,并且相信我们所做工作的重要性。
有人认为,开放源码和开放标准都有各自的位置,它们可以而且经常相互补充。
(开源方法支持来自真实用户的反馈,从而改进规范,而标准化鼓励采用和互操作性。)
一些小组成员和听众表达了熟悉的担忧——过程是对个人的权衡,我们需要更加开放和透明,我们应该采用开源开发和许可模型作为参考实现和一致性测试套件(TCKs)。
在接下来的几个月里,当我们努力改进JCP时,我一定会考虑到这些反馈。
除了小组的总结外,Simon Brown说:
我在第2天参加的第一个会议叫做“为性能和可伸缩性而设计架构”,来自Terracotta、(Oracle) Coherence、GigaSpaces等(和eBay)的代表聚在一起讨论构建可伸缩系统的不同方法。这是令人惊讶的文明,比较和对比每个供应商处理可伸缩性问题的方法是很有趣的。
州长詹姆斯为这次演讲做了详细的总结,包括:
我坐在一个在大型投资银行工作的人旁边,他说这是一个有趣的、开创性的方法。
Terracotta对于状态分配的作用就像垃圾收集器对于内存管理的作用一样。
这似乎是一个很好的过渡到阿里的演讲。和往常一样,Ari从头开始,他为Walmart.com构建了集群架构。这是一个非常好的故事,因为它涉及到建筑工程自上而下与自下而上的现实。
Jevgeni Kabanov也很喜欢这次演讲:
到目前为止,我做过的最棒的演讲是TerraCotta的介绍和模式。阿里是一个很好的演讲者,我很欣赏他的激情、强度和速度(尽管其他人可能觉得他的演讲信息量太大了)。
我以前听说过赤陶土,但这是我第一次知道细节。他们声称的基本功能是透明地集群对象,以便在一个JVM上的所有更改在所有其他JVM中都可见。
Mark Edgington也讨论了这个演示:
Terracota公司的CTO Ari Zilka就该产品如何工作以及如何使用做了精彩的演示。我不打算参加这次会议,但他在前几次会议的小组讨论中表现出色,所以我被吸引了。他关于在内存数据和复制中使用有状态的观点与许多人的观点相左,但非常有说服力。我会深入调查的。
正如安东尼奥·贡卡尔维斯所说:
Ari Zilka会话是使用Terracotta提供可伸缩性和可用性的集群架构模式。从应用服务器集群来看,Terracotta看起来是一项令人耳目一新的技术……但也隐藏了一些神奇的背后。它连接到JVM以跨JVM复制对象图。经常出现的一句话是:对象的序列化是昂贵的,所以不要序列化它们。Terracotta复制活的对象,而不是序列化它们,这就是为什么它比一般的缓存或集群快10倍的原因。
Steven Mileham参加了这次演讲:
在eBay演示之后,我走到解决方案跟踪处,查看Spring平台的测试框架。基本上,它围绕JUnit 3.8、4.0或TestNG创建一个包装器,让您可以通过Spring配置和Java 5注释“连接”应用程序。
Antonio Goncalves谈到了他对这次演讲的印象:
在他的演讲之后,我对选择Flex作为富客户端真的有些怀疑。
我认为Flex是开发富internet应用程序的一个非常强大的平台,但GWT看起来真的很有前途,而且它是Java,而不是动作脚本。
迪迪埃做了很多演示,最后用一张有趣的幻灯片预测了jsp和asp的死亡。
历史上充满了预言,让我们看看这一次是否会发生。
GWT以一种非常有效的方式将Java代码编译成JavaScript:每个浏览器一个JavaScript文件(如果代码中有IE,就不会有更多),并且代码是混淆的。
完整的演示只有60kb的javascript(你不能也不想读)。
Didier Girard 还在他的博客上发布了他在这次演示中使用的所有演示应用程序。
Remy Sharp概述了他的演讲,并描述为:
上周五,我做了第一次公开演讲。我在QCon上展示了jQuery。
约翰几个月前问过我这个问题,所以我把恐惧抛在一边,给了他奉承的空间,同意了。
如果你正在阅读这篇博客文章,并且碰巧看到了我的演讲,我真的很想听到你的反馈——好的或坏的——这些都对我非常有用。
Simon Brown 写道 :
接下来是一个名为“解决代码债”的会议,主要关注为什么持续重构对于维护高质量代码库是至关重要的。这似乎是对关于重构和敏捷开发的一些现有材料的重新讨论。但有一件事确实引起了人们的共鸣,那就是需要有人接管整个过程,并激励团队在开发时进行重构。我想说这是建筑师角色的一部分。
Therese Hansen 很喜欢这条赛道:
在这个轨道上有几个伟大的演讲者,其中包括Linda,她总是从一个有趣的角度来研究这个话题——今天是关于周期的,它引发了关于睡眠周期和工作周期的大讨论。我真的学到了一些非常有用的东西,我可以带回家——人类在90分钟的时间段内工作/睡眠最好,因此最好在90分钟的倍数内完成所有事情。关于工作,休息一下,一次专注于一件事是很重要的,一些观众有数据支持这个说法。
卡尔·尼布斯贴出了这次演讲的笔记和图表。
Jan Balje讨论了这次演讲:
讨论这个领域的团队如何不遵循XP/DSDM/Scrum-book,而是结合对他们有效的实践。没有什么新鲜的,但是从在这个领域有很多熟人的发言人那里得到了很好的确认。房间里挤满了人,证明了人们对敏捷方法的持续兴趣。顺便说一下,Ziffer是一个零功能迭代。顺便说一下,女性观众的比例比我们的学生要高得多。也许这只是荷兰人的问题?
“保罗”也参加了这次讲座,并补充了几点想法,包括:
我参加了Rachel Davies在QCON 2008上关于敏捷mashup的演讲。
她指出,在现实世界中,人们从不同的敏捷方法中获得各种实践;
举个简单的例子,Scrum团队使用TDD, XP团队使用burndown图表。
她指出了一些看起来更可选的实践,比如结对编程和坐在一起。
我发现有一种非常有趣的紧张关系。
一方面,我认为了解“好的敏捷”是什么样子是很重要的。
有一种危险是,一些团队扔掉他们的文档,胡乱修改,并声称自己是敏捷的。
因此,要将这种“牛仔式敏捷”与真正的敏捷区分开来,你可以使用诺基亚测试,这是一个清单:在方框上打勾,你就在做Scrum:-)
“Paul”还讨论了抛光迭代的想法:
Rachel Davies在QCON 2008上的敏捷混搭演讲中指出,许多团队都有一个“抛光”迭代,没有发布任何新功能。
我的团队最近添加了这样一个内容:我们发现我们需要一点空间来后退一步,从“大图”的角度来看这个应用程序。有时,查看整个应用程序的一致性是有用的:特别是从GUI的角度。腾出时间进行探索性测试也很好。最后,我们希望留出一些空间来合并我们在迭代期间从业务部门获得的反馈。
Therese Hansen很喜欢演讲者提出的一些问题:
其中一个问题是“您的XP怎么样?”
你能自称是xp团队吗?
- 如果你不用索引卡呢?
- 如果不编写代码,测试优先?
- 如果你们不结对编程呢?
- 如果你们不坐在一起?
- 如果你没有一个现场客户呢?
卡尔·尼布斯贴出了这次演讲的笔记和图表。
Willem van den Ende描述了他和Marc Evers的谈话:
Marc和我在qcon上展示了“超越敏捷——人与过程”的另一个迭代。这个文字记录的灵感来自于重新设计的介绍。我计划很快再写一些……我们有一篇文章正在生产中,我们将基于上周的Agile Open France进行重写。你在这篇文章顶部看到的编舞、随机顺序和问题都很好,所以我们将在这方面做得更多。
Adam Shimali认为这次演讲是QCon上最好的演讲,他详细描述了这次演讲,开头是:
像许多敏捷的东西一样,开始时你所需要的只是一块白板和便利贴。然而,演讲者大卫·安德森(David Anderson)急于打破看板实际上与白板和便利贴有关的神话。这些都是可行的“技术”,它们也有助于建立透明度的基础。然而,真正的问题是:
“目前有多少工作正在进行中?”
我将回到这一点,但本质上“正在进行的工作”就是看板的全部意义。
Steve Freeman对这次演讲有几点看法,包括:
昨天,在QCon的XpDay采样器的轨道上,Keith Braithwaite展示了他关于测试驱动代码特性的最新版本的演讲。
简单地说,许多自然现象遵循幂律分布(阅读幻灯片获得更多解释),在口语中这通常被称为Zipf定律。
Keith发现,跟踪每个圈复杂度级别的代码库中方法的数量,就像这样一个幂律分布,其中的代码具有全面的单元测试,并且实际上所有符合规则的示例都是测试优先编写的;
相信物理学家会注意到这一点。
这一点很重要,因为低复杂性方法包含的错误要少得多。
Jan Balje提到了这个演讲:
Daniel Moth展示了Visual Studio的一些有趣的新特性。他这样做的速度是如此之快,以至于公众必须从他的博客上下载视频,然后以半速播放。不过,看看现在能做些什么还是不错的。
Mike Taulty在他的博客上张贴了他演讲的全部内容。
Jan Balje有一些评论:
纳尔逊先生是一个非常驱动spreaker保持有趣的和有趣的接触他的观众,不试图证明实际上是多有趣的那一刻,谁能使他的故事为他去(这证明他知道他在说什么)。
Siva Jagadeesan描述了这个小组的讨论:
由于某种原因,讨论完全离题了。
大概有5%的时间会讨论什么类型的项目可以用rails实现。
大多数的讨论都是关于为什么ruby社区没有人担心ruby在Windows下运行得这么慢。
一些听众提到,如果Ruby社区希望Ruby成为主流语言并被所有企业接受,那么它应该在Windows中运行得更快。
小组成员说,他们真的不太关心ruby是否被企业接受。
他们说,他们这么做是因为Ruby作为一种语言使他们更容易解决这些问题。
我完全接受。
如果我发现一种语言能更有力地帮助我解决问题,我会使用这种语言。
我不在乎这种语言是否会被所有的大企业所接受。
如果这些企业中有聪明的人,那么他/她将决定哪种语言适合解决他们的特定问题。
彼得·皮尔格林也对这个讨论做了总结:
这是信任和混乱的问题。
Rails能在企业中扩展吗?
无可否认,小组同意了。
他们建议问这个问题,你需要多大的性能?
Ruby比Java慢一到两个数量级。
然而,就性能而言,VM会产生一些影响。
基本上没有技术解决方案,除了显而易见的。
这个讨论将深入到我们如何向企业推销Ruby ?
他们给出的一个想法是颠覆性的。
例如,在测试中开发,自动化构建。
将其作为系统管理员工具引入,以便仅在内部使用。
Groovy和脚本工具一样可以做到这一点。
Mark Edgington这样描述他的演讲:
Kent在另一个精彩的演讲中提供了他关于如何从设计的角度解决问题的最新观点。他从他的主题开始,推动我们必须在设计时考虑到人;针对现有开发人员的技能进行设计。
Udi Dahan对他的演讲有一些看法:
从我在演讲后听到的反馈来看,我想很多人都对系统中如此多的不同部分可以被设计成这种方式感到惊讶,而且这种方式在不增加代码复杂性的情况下是多么的灵活感到惊讶。
消息是:使角色明确,尽管它的简单性,导致IEntity, IValidator T: IEntity,(我写了一年前,通用验证)和服务定位器的功能,您可以添加一行代码到您的基础设施,将验证所有实体之前他们从客户机发送到服务器。
Simon Brown对这次演讲有一些看法:
我参加的下一个会议叫做“两种系统的故事”,基本上展示了当你设计和不设计你的软件时会发生什么。
任何有软件开发经验的人在这里都不会感到任何惊奇,但是很高兴能够很实际地看到好的和坏的对比。
所有这些都有一个明确的敏捷的旋转;
讨论了扁平化的团队结构和整个团队的设计责任分配。
事实上,Pete说“他从来没有参与过一个需要架构师的项目”。
虽然这些方法对于小型和/或简单的项目很有效,但是我仍然认为*一些*架构需要预先执行,并且需要有人承担最终的责任。
Peter Pilgrim 对这次演讲做了详细的总结,包括:
好的设计带来更好的代码、更好的团队和成功。
设计很重要:它可能会非常错误,也可能会非常正确。
然而,好的项目管理是必不可少的。
一个人必须在正确的时间做出决定。
在有足够的时间和必要时才做出困难的决定和用例,这确实是个好主意。
(我认为他的意思是进一步思考,我们应该把复杂的战略决策留到你有“思考”的时间,而不是在“做”的时间里做出错误的决定。)
好的设计来自于不害怕改变设计。
好的设计也来源于健康的工作关系。
Phil Wills 同意这个陈述:
在证明我惊人的预见性,或者总缺乏独到的,几乎就在我做了我以前的帖子,我参加了一个优秀的谈话,贾尔斯Colborne在QCon simlicity在用户界面表示之间的区别我和绝大多数的喜欢,谁不欣赏Vim编辑文本的最佳方式,说,大多数人都更感兴趣从A到B没有崩溃,比有效地这样做。我不确定他是否意识到我们中的一些人对坠机风险的偏好有多么真实。
Mark Edgington 叙述了这次演讲的要点:
介绍一些帮助设计用户界面的指导原则。对我来说,这个演讲缺乏深度,因为有些观点感觉有点个人化,而不是有很多证据来支持它们。这是我需要的,让我能思考之前的谈话。指导方针:
- 理解上下文
- 非常简单(缩小,体现和隐藏)
- 组织
- 不要让用户等待
- 测试
是的,这些都有点笼统和明显,但这就是简单的全部;那些被忽略的简单事情。
Simon Brown 对这次演讲也有一些看法:
在谈到软件设计之后,我们又谈到了用户界面设计,题目是“用户界面:迎接简约的挑战”。这节课讨论了如何设计用户界面,使其在用户面前显得简单,以及如何做出哪怕是最小的改变也能产生巨大的影响。本届会议最有趣的部分之一是,它几乎与之前的届会完全平行;在谈到敏捷开发、反馈、简单性时,你不需要它(YAGNI),等等。
Filippo Diotalevi 对赛道有一些想法:
另一个伟大的记录。
来自eBay、BBC、MySpace的人们解释着他们架构的内在,他们的失败和成功;
这是一种在会议上绝不应该错过的展示。
顺便说一句,你知道MySpaces运行在.net栈上吗?
有很多与会者对这次演讲进行了评论,如Jan Balje:
这一天从Randy Shoup讲述eBay背后的架构开始。这是最高级别的架构。ebay拥有的数据/交易/服务器等的数量是巨大的。令人印象深刻的演讲,热烈推荐幻灯片。
Nik Silver :
他的演示非常清晰地展示了他们的可扩展性原则,以及一些具体的例子来说明这些原则在实践中是如何工作的。你可能不会使用他们的周期性的批处理方法生成的建议——如果只是因为它的可能性你没有推荐系统,但你可以用“异步无处不在”的总体原则和应用到下一个可伸缩的应用程序,你需要工作。
斯蒂芬·诺伯格 ( Stefan Norberg) :
分区一切!
分区我们的系统(“功能分割”)和你的数据(“水平分割”)。
使用什么工具或技术并不重要。
如果你不能分割它,你就不能缩放它。
就这么简单。
无论您使用的是别致的网格解决方案还是多个数据库。
到处使用异步处理!
如果您有同步耦合的系统,它们会一起伸缩,一起失败。
可伸缩性最低的系统将限制可伸缩性,而可用性最低的系统将限制运行时间。
如果你使用异步的、解耦的系统,那么系统就可以相互独立地伸缩。
Danilo Sato :
我已经读过关于eBay通过数据分区来实现可用性和可伸缩性的无事务风格,但是听到他们部署新代码和新特性的方式还是很有趣的。没有不能撤销的改变。它们拥有自动化部署工具,管理不同组件之间的依赖关系(像apt这样的包管理系统),允许不同代码片段的rollout ant回滚(像Rails的迁移)。有趣的东西!
西蒙·布朗 ( Simon Brown) :
Randy Shoup谈到了主要原则,这些原则是:
- 分区的一切
- 异步无处不在
- 自动化的一切
- 记得每一件事失败了
我之前也说过一些其他的会议,但我真的很喜欢当我们看到幕后其他人在做什么,特别是当你看到每个系统都有自己的一套权衡和妥协。
史蒂文·米勒姆 ( Steven Mileham) :
看看他们是如何设计一个灵活的体系结构,使他们的系统能够根据eBay站点的流量进行伸缩,并且仍然能够在几周内推出新的代码发布。
[…]
该体系结构的主要推动者是他们致力于使其尽可能无状态。他们使用会话的唯一时间是用户通过多页面向导风格的界面在站点上创建拍卖的过程。
Peter Pilgrim :
资源减价。
他们希望尽可能快地检测出故障。
它们不断地监视应用程序,有一个很好的降低失败资源的方法,这样它就被标记下来了。
应用程序停止对该资源的调用,工作被延迟到队列中。
关键功能将会失败。
首先,他们尝试在设定的时间内反复调用它。
其次,如果资源仍然可用,则工作延迟到异步事件。
显式“标记”允许资源成为资源,并以可控的方式上线。
它们管理仍试图连接到资源的客户端。
许多与会者讨论了这次演讲,包括马克·艾金顿:
BBC在识别请求位置以提供广告和应用DRM方面存在的问题很有趣。我们往往会忘记,BBC的运营费用几乎是固定的,所以花钱在英国以外免费提供内容将是一项昂贵的业务。另外,在许可协议下发布内容也会引发法律问题。我很感兴趣地了解到,由于英国外交部对BBC在英国以外地区的广告收费政策,广告现在正在上线。
西蒙·布朗 ( Simon Brown) :
我参加的下一个环节是关于BBC网站的,主要是从用户所看到的角度。演讲者在前一天就已经准备好了,虽然我喜欢他们的实际演示,但我还想了解更多关于网站背后架构的信息。他们确实详细说明了他们有多少服务器,等等,但并没有在技术等方面做太多。为你这么快就把东西拼凑在一起而脱帽致敬!
Danilo Sato :
没有突破性的技术,但有意思的是听到他们当前的进程迁移的一个巨大的物理介质存储(与人在摩托车磁带从站点到站点)数字格式,以及它如何改变他们的编辑过程…人的形象在一辆摩托车让我想起了鸽子的高带宽传输协议:-)
还有蒂姆·安德森 ( Tim Anderson) :
他们正在谈论bbc.co.uk上的视频。
以前,这是通过弹出式页面处理的,在Windows Media Player和Real Media之间进行选择。
BBC现在将对Adobe Flash视频进行标准化,嵌入到页面而不是弹出窗口中。
他们的研究发现,嵌入式视频比弹出式视频有更好的点击率。
它还具有编辑意义,因为它可以更好地整合到页面中。
在适当的时候,Flash将是唯一的公开格式(存档也会以其他格式保存)。
网站上的视频会越来越多。
显然,BBC在视频内容的版权谈判上做得越来越好,我们可以期待今年奥运会的大量视频。
Anderson还讨论了BBC重建网络平台的计划:
显然,预算刚刚获得批准,这意味着BBC将继续使用基于Java的新内容平台,并辅以一个轻量级的PHP层。
主要目标是灵活性。
最近BBC直播了一个新的widgety主页,显示了它对个性化的兴趣;
他们的目标包括更广泛的定制,更社会化的平台(可能使用OpenSocial, OpenID);
让一个平台更适合mash-up;
纯数据api。
顺便说一句,BBC的主页现在有点破损;
它说:“由于技术问题,我们正在显示一个简化版的BBC主页。”
经过昨天的会议,我知道了一些原因。
BBC目前的站点主要基于Perl脚本和静态页面。
它不是一个真正的内容管理系统。
我最近在博客中提到的最近的主页创新并没有托管在新平台上,而是在使用SSI和正则表达式解析cookie的旧平台上构建的有点不太自然的事情。
它运行了,但目前不太可靠。
它还使用更多的CPU,这最终意味着需要更多的服务器。
Peter Pilgrim发布了一个详细的总结,包括路线图:
- 与iPlayer更流畅的集成
- 越来越多的移动
- 可搜索的媒体
- 更完整的本地内容
- 更多正确的运动
- 更多小部件和联合
- 更多的广告
- 开玩笑地说,随着2012年奥运会的临近,工作越来越多,假期越来越少
Nik Silver认为这次演讲是“没有魔法,没有银弹,但有很多可靠的建议和经验”这一更大主题的一部分:
BBC新闻团队约翰·奥多诺万(John O'Donovan)、凯文·辛德(Kevin Hinde)和罗斯·Heritage对这一切进行了很好的总结。他们被问及如何管理iPlayer的性能测试。约翰花了一些时间来描述他们使用的一些技巧,但当他意识到观众真的想要一些他没有的大开眼界的启蒙时,他说到了点子上。这时凯文走上前,直截了当地说:“没有什么秘方。”确实不是:他们只是努力工作,坚持严格的原则。
Dionysios G. Synodinos 称赞了这次演讲:
很好地介绍了处理Myspace.com的团队在。net平台上构建的各种管理工具,这些工具用于监控服务于数百名用户的系统。
Mark Edgington 对这次演讲做了一些笔记:
通过清晰地概述问题空间和IT部门在银行界面临的问题;采购和战略签字和采购。
您对架构是如何结合在一起的有了很好的感觉。
在这种情况下,我觉得开源决策(许多是由于限制而做出的)最终导致了成功,这是我所期望的一个快乐的开发团队。
可能架构中最令人惊讶的部分是一组从Java Main运行的进程;
它似乎是作为另一个团队的职权范围的应用服务器出现的,要求他们参与并不是一个选项。
Ola Bini评论说,这次演讲“信息量很大,如果我看到了什么可以从中受益的东西,我会牢记于心的。”当然,这种方法并不适用于所有的问题领域。”
Steven Mileham 讨论了在伦敦QCon上测试的新的面试模式:
会议的组织者InfoQ经常在他们的网站上录制对行业塑造者的采访。
为了这次会议,他们邀请了一位听众参加采访。
我观看了对Mark Little的一次精彩的采访,他是Redhat的一名开发人员,他致力于许多当前的web服务标准。
他谈到了事务性web服务,特别是WSTX的两个模型acid事务和业务活动事务。
对于SOA环境,应该使用BA事务,尽管这仅仅意味着为每个服务提供补偿方法。
他谈到了SOAP Web服务和RESTful服务之间的巨大鸿沟,他多么希望它们能够“言归正出”。
最后,他提到了去年与Redhat合并的JBoss,将JBoss比作一个十几岁的儿子和Redhat 40岁的父亲。
一些人写了关于社会事件的文章,比如伦敦银行同业拆借利率(Libor Soucek):
在酒吧里,我终于有机会和像史蒂夫·维诺斯基和吉姆·韦伯这样的名人私下交谈,我经常阅读这些博客已经很久了。
我主要感兴趣的是他们对于在高性能系统中使用REST/ATOM的个人意见,因为他们通常不会在他们的评论/演讲中提到这一点。
Jim Webber非常开放,他承认他的建议主要适用于延迟一般在1秒以上的系统。
这对我来说似乎很公平。
实际上,绝大多数企业应用程序都可以归入这一类,其中主要的例子是ERP系统之类的。
Steve Vinoski建议,对于这种情况,由于性能限制,如果不能直接通过通用HTTP版本,那么在概念上应该遵循REST模型。
这当然是可能的,但我对这种做法的实用性有相当强烈的怀疑。
有人知道在这个领域有这样成功的应用来证实Steve的建议吗?
Therese Hansen :
参加QCon最棒的事情之一就是你可以在一个非常非正式的场合见到所有出色的演讲者。昨晚我在酒店的酒吧里和像乔·阿姆斯特朗、史蒂夫·维诺斯基、乔纳森·特雷弗和克雷斯顿·克拉伯·托鲁普这样的人进行了交谈,那真是太棒了——我学到了很多。
还有 Ola Bini :
然后是演讲者的晚宴……和可爱的人进行有趣的讨论。=)
Erik Johnson 说:
我刚参加完在伦敦举行的QCon 2008会议,正在飞机上返程。这是一场一流的活动,在众多精彩的演讲中,有两件事让我受益匪浅。第一个是我需要学习Erlang。我与Erlang的发明者乔·阿姆斯特朗(Joe Armstrong)一起度过了一段时间,并从中获得了极大的乐趣,以至于我已经下载了这些片段并购买了这本书。其次,其余的基本原理已经真正成型,支持者不再认为有必要为自己的论点辩护——是时候让故事变得成熟了。
Nik Silver 说:
在2008年伦敦QCon大会上,我很少有惊天动地的时刻——如果有的话。但是,在为期三天的会议中,每一个小时都有一些见解和指导,这些见解和指导可以被隐藏起来,并在以后重复使用,从而在其他地方节省数小时、数天或数周的时间。卖蛇油的人寥寥无几,取而代之的是几十个人说着其中一个或两个:
- 这就是我们所做的;
- 和这就是你能做的。
没有魔法,没有灵丹妙药,只有大量可靠的建议和经验。
其他的想法:
Jan Balje said:
So, what do we make of all the information that was poured over us the last days? What is the most important? Of course, we will need to investigate all this stuff further. But at first outlook, I would say:
- REST looks like an important new trend.
- Erlang might answer the need for more Concurrent Oriented programming languages.
- Java for enterprise applications is very much alive, also for real time systems.
Peter Bakker had a long list, including:
- Stateless Architectures push the "state" problem to the database, the trend is to reclaim the state in the application server and services, and put state close to the user
- To make really scalable solutions: divide, split, partition, work asynchronously, no state
- first build something simple, then think of all the "...ilities"
- the accountability of software also holds for organic food: effective, reliable, reasonably priced. Compare bloathed software to industrial food: unneccessary features are like unneccessary additives.
Mark Little related a thought that came to mind:
I wanted to mention something that came up there but which has been playing on my mind for a while anyway: the art of beautiful code and refactoring. I heard a number of people saying that you shouldn't touch a programming language if you can't (easily) refactor applications written using it. I've heard similar arguments before, which comes back to the IDEs available. I'd always taken this as more of a personal preference than any kind of Fundamental Law, and maybe that (personal preference) is how many people mean it. However, listening to some at QCon it's starting to border on the latter, which really started me thinking.
Maybe it's just me, but I've never consciously factored in the question "Can I refactor my code?" when choosing a language for a particular problem.
Markus Voelter posed some questions about functional programming and concurrency:
So, functional and concurrency experts in the world, please unite! and write a bunch of (context,problem,solution,tradeoff)-tuples (also known as Patterns) and present them at a future JAOO or QCon conference.
- if I use a nice, potentially sideeffect-free functional language (say: F# ), what do I do with all the libraries (here: .NET) that are not functional?
- which parts of my system should I write in a functional language for good concurrency support, and where should I not do that?
- How much concurrency do I handle on platform/infrastructure-level (eg processes, EJBs, etc.) and how much do I handle on the language level? Which granularity is useful for which task?
- Also: Assuming the platform provides a concurrency model, what can the language do to make sure I cannot (or I am discouraged from) interfering with the platform's concurrency model?
Cleve Gibbon pondered how software development has changed:
Rebecca was spot on when she pointed out that tools such as yacc/lex and to a lesser degree antlr, have received bad press as being archaic, blunt tools with magical powers that are wielded by the chosen few. In reality, there hasn't been much cause for the masses to use them. Will the drive for external DSLs where you want to create your own language make them more popular? 我对此表示怀疑。 I think people will still opt for internal DSLs that are written essentially in the host language (eg rSpec, JMock, and so on).
But I have to realise now that those guys/gals born in the eighties and heaven forbid the nineties, are operating off a completely different programming stack. Their minds are in different places and their toolset is somewhat orthogonal to mine.
Mark Edgington described the week after returning to the office from QCon:
Conversation around cloud computing has been a big hit. I got some good contacts and these have lead to investigation on using the Elastic computing and S3 services from amazon for one of our clients. Thoughts from 'The Zen of Agile Management' have allowed me to view our Agile and Prince 2 processes in a new light; I expect my observations to work round to discussion and change in the coming weeks. Also the Domain Specific Language knowledge has invigorated conversation around framework and language selection on projects. All in all a good week.
Simon Brown questioned whether UML is losing popularity:
So then, is UML on the way out? I'd be interested in your thoughts on the following.
- What notation do you use for your architecture and design diagrams?
- Is a standard diagramming notation important to you?
- How does your audience influence how you create diagrams?
- If you do use UML, what's your UML tool of choice?
This year at QCon, a new experiment was tried out - a video blog called Live@QCon :
Coding the Architecture has created a podcast discussing QCon London:
As promised the 2nd CTA podcast is a roundtable discussion between some of the CTA contributors - namely Simon Brown , Sam Dalton and Kevin Seal . In this podcast we discuss some of the themes emerging from the recent QCon conference held in London and our views on those themes.
QCon London was a great success and we are very proud to have been able to offer such a conference. 它将继续是伦敦和旧金山的年度盛会,下一届QCon将于明年同一时间在每个地点举行。 We also look forward to bringing QCon into other regions which InfoQ serves, such as China and Japan. Thanks everyone for coming and we'll see you next year!!!!
翻译自: https://www.infoq.com/articles/qconlondon-2008-summary/?topicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1
qcon