qcon_从QCon伦敦2010中学到的重点知识和教训

qcon

在本文中,我们介绍了许多博客上有关 QCon的博客的观点和观点,以便您可以体会QCon London的印象和经历。 从最初的教程到最后的会议,人们在他们的博客中讨论了QCon的许多方面。 您还可以在Flickr上看到众多与会者拍摄的QCon照片。

这次QCon是InfoQ的第九届会议,也是伦敦的第四届年会。 该活动是与在丹麦举办JAOO会议的公司Trifork合作制作的。 这个QCon是有史以来最大的一次,共有700多名注册参加者,其中56%来自英国,超过30%来自欧洲大陆,其余来自世界各地。 在QCon伦敦会议上有100多位演讲者 ,包括Dan Ingalls , Ralph Johnson , Robert C. Martin(“叔叔Bob”) , Martin Fowler和Rod Johnson 。 QCon将继续在每年的3月在英国运行, QCon San Francisco将在2010年11月再次运行, QCon Beijing和QCon Tokyo将在4月底运行。 我们的第一个QConSPaulo也计划在今年9月举行。

目录

讲解

  • DCI /精益架构,作者:Jim O. Coplien
  • UService Dahan的NServiceBus开发企业
  • Francesco Cesarini的实用Erlang编程
  • 面向资源的体系结构:信息优先作者:Brian Sletten
  • REST实践-Ian Robinson和Jim Webber的基于Web的分布式系统教程
  • 开发人员的软件体系结构,Simon Brown和Kevin Seal

主题演讲

  • Robert C. Martin的错误代码,Craft.io,工程和认证
  • Dan Ingalls玩电脑四十年
  • Ralph Johnson的老化软件的生活和工作

2015年软件开发

  • DCI体系结构:Jim O. Coplien的代码级精益和敏捷

敏捷进化

  • Eric Evans将设计折叠到敏捷过程中
  • 看板-越界,超越极限或重新发现敏捷愿景杰斯珀·博格(Jesper Boeg)

NET上的AlphaGeeks

  • 美丽的团队和领导者Roy Osherove
  • 扩展应用程序:复杂性,性能,可维护性Oren Eini
  • .NET的发展水平-Josh Graham和Amanda Laucher学习12个月的知识

您一直想知道的架构

  • 建筑Skype。 Skyres架构师AndresKütt五年的学习
  • Facebook:Aditya Agarwal的建筑与设计

浏览器平台

  • Web应用程序中的数据表示:Simon Oxley的创业之旅
  • Bespin简介-Joe Walker的Mozilla基于Web的代码编辑器
  • 怎么办戴伦·席曼(Dylan Schiemann)
  • Torrey Rice的Web App设计的现状与未来

Java的酷东西

  • Stefan Norberg的事件驱动架构
  • Rod Roo和Spring 3.0带来了极高的Java生产率
  • 用Java中的Actor建模并发-Kresten Krab Thorup从Erjang中学到的教训

开发与运营:一个团队

  • 开发人员来自火星,SET也来自Simon Stewart
  • 从开发到生产:通过构建管道和团队合作实现更好的生活Sam Newman
  • Siloes适合农民:使用Julian Simpson的所有团队进行生产部署

功能编程

  • 阿曼达·劳彻(Amanda Laucher)揭秘单子
  • Don Syme的并行和并发功能方法
  • Aino Vonge Corry编写的函数式编程模式
  • 约翰·休斯的测试之乐

您如何测试

  • 机器中的齿轮:Roy Osherove测试嵌入在不可渗透的框架中的代码
  • Alois Reitbauer在边缘进行性能测试
  • Nat Pryce的异步系统的测试驱动开发
  • 移动测试挑战:Doron Reuveni为何移动应用需要真实的测试范围以及众包如何提供帮助

不负责任的架构和不寻常的建筑师

  • 乌迪·达汉(Udi Dahan)的命令查询责任分工
  • LMAX-Dave Farley和Martin Thompson如何以小于1ms的延迟每秒完成超过10万个竞争的复杂业务交易
  • 简单-Dan North的非凡建筑师之路
  • Ian Robinson的违反直觉的网络

IT-不仅仅是工具和技术

  • 我们打算做什么马丁·福勒(Martin Fowler)

非关系数据库和面向Web的数据

  • Enda Farrell的沙发上的阿姨
  • MongoDB:SourceForge上的huMONGOus数据,Mark Ramm撰写
  • 不仅是SQL:EmilEifrém的替代数据持久性和Neo4J
  • Gilt Groupe的Voldemort项目:Geir Magnusson认为失败不是一种选择
  • 社交网络和数据的丰富性:Lars George&Fabrizio Schmidt用Nosql完成分布式Web服务

务实云计算

  • 云的开发模型:范式转变还是旧的旧的作者ümitYalcinalp
  • 正常情况,一切都必须改变西蒙·沃德利
  • Cloud Silver Bullet:哪种口径适合我克里斯·里德(Chris Read)

SOA 2010

  • REST是否需要中间件比尔·伯克(Bill Burke)
  • Cesare Pautasso的RESTful业务流程管理

软件Craft.io

  • 超越学徒和学徒:Jason Gorman的可扩展的,由同行主导的模型,用于在大型多样的开发团队中建立良好的习惯
  • 危险:David Harvey的软件工匠在工作
  • 锐化工具Dan Dan North
  • 软件技巧,超越炒作

并发挑战

  • Justin Sheehy大规模拥抱并发
  • Erlang中的消息传递并发。 Joe Armstrong的可扩展容错系统的体系结构基础

社会事件
关于QCon的观点
外卖
结论

讲解

DCI /精益架构 ,作者: Jim O. Coplien

Twitter在本次会议上的反馈包括:

mouneer :重新发现OO编程AKA DCI数据上下文交互#qcon教程Jim Coplien

alblue :“建筑是结构的本质:形式。结构混淆了形式。” – #qcon的 Jim Coplien

UService Dahan的 NServiceBus开发企业

Twitter在本次会议上的反馈包括:

sumek :NServiceBus预先制定了许多明智的配置决策。 好东西!

martinnjensen :在#qcon与@udidahan一起享受一整天的NHibernate会议

marcjohnson :就像@UdiDahan对NServiceBus的描述一样,它是一组非常敏锐的特定工具-正确使用时应该感觉不错

Francesco Cesarini的 实用Erlang编程

Twitter在本次会议上的反馈包括:

alexmarie84 :享受二郎介绍教程, @FrancescoC并期待着进一步挖掘到明天Erlang和OTP!

面向资源的体系结构:信息优先作者: Brian Sletten

Glen Ford也参加了本教程 :

第2天,我参加了Brian Sletten主持的面向资源的体系结构教程。 在开始之前,我想知道选择两个REST教程是否犯了一个错误-但事实证明这是一个不错的选择,它是前一天的补充。

本教程最令人难忘的部分之一是“音乐插曲”,其中Brian出色地解释了衍生作品,以及公共数据如何打开了无限可能。

Twitter在本次会议上的反馈包括:

rferraz :第二天在#qcon开始。 另一次休息讲座,但旋律不同。 好东西了。

der_miggel :今天@bsletten在#QCon上参加http://bit.ly/c9qrqk ( 展开 )-到目前为止非常有趣,很多有趣的概念

REST实践 -Ian Robinson和Jim Webber 的基于Web的分布式系统教程

Glen Ford在第一天参加了本教程 :

该教程基于他们即将出版的Savas Parastatidis的书,该书现在可以精简了 。

该教程涵盖了很多基础,并且介绍得很好。 通过使用Hypermedia,您可以创建非常丰富的服务,本教程对如何以及为什么应该这样做提供了很好的见解。 它很好地概述了REST实际使用的是Leonard Richardson成熟度模型,以及大多数宣称为RESTful的服务实际上不是完全RESTful的(尽管它们确实仍然有价值)。

Twitter在本次会议上的反馈包括:

doxla : @nfma星期一早上您要谈什么#RESTInPractice今天很好。 期待#qcon的其余部分

alexip : @jimwebber非常感谢您关于Rest的教程。 开辟了许多可能性。 我现在完全拥抱宁静的方式!

开发人员的软件体系结构, Simon Brown和Kevin Seal

Twitter在本次会议上的反馈包括:

tolukemi :开发人员教程的软件工程师拱门@ #qcon非常有见地,提供了很多值得深思的地方。 希望有机会将想法付诸实践。

主题演讲

Pinar Yanardag 发现了激发灵感的主题演讲 :

丹·英加尔斯(Dan Ingalls ,计算机娱乐四十年 ),拉尔夫·约翰逊(Ralph Johnson, 生活和使用老化软件 )和罗伯特·马丁(Robert Martin)又名鲍勃叔叔(Bob叔叔, 不好的代码,Craft.io,工程学和认证 )的主题演讲都鼓舞人心。

Robert C. Martin的 错误代码,Craft.io,工程和认证

乔基姆·霍尔姆(Joakim Holm)谈到演讲者 :

在大礼堂第二排观看鲍勃叔叔的演讲,有点像被火车碾过。 那里有700多个人,而鲍勃可能不需要麦克风。 他当然是令人信服的发言人。

他在谈话中的结论是:

请记住,工匠的一个特定属性是他们从不编写不良代码。 即使在压力下。 如果您想不起来,请从Clean Code Project中订购绿色的腕带。 他们唯一要问的是您要捐款。

蒂姆·安德森(Tim Anderson) 总结了关键点 :

Martin的观点之一就是拥有有效的代码还不够。 他用机器比喻。 你的车还不够用。 当您打开引擎盖时,您希望看到的是良好的工程设计,而不是缠结在一起的管子,金属丝和皮带缠结在一起。

[…]

马丁的演讲原来是实用的。 真的没有什么新鲜的; 但是有很多要考虑的。 以下是他的一些提示:

  • 使函数和方法简短。 多短他的原则是使用提取方法重构,直到没有更多要提取的内容为止。 我感觉到他会考虑任何超过20行的怀疑。
  • 具有仅带有少量参数(最好不超过两个)的函数,并且不要使用布尔型参数,因为它们会引起混淆。
  • 同样,一个类应该是一小批代码,只有几个变量,几十个方法。
  • 消除代码中的重复; 使用抽象。
  • 给公共方法起短的名称,但对私有方法使用长的描述性名称。 该代码是文档。
  • 每次触摸都会稍微改善代码。 有时情况恰恰相反。 代码随着修补程序的添加而衰减。 如果您改进它,那么您的项目就会随着时间的推移而改进。
  • 您需要进行全面的测试,否则,您将不敢进行更改以防万一。 测试代码应与生产代码具有相同的质量; 如果测试缓慢且有错误,您将不会使用或信任它们。
  • 简短迭代。 一个月可能太长了。 两周好。 他建议,一个星期可能很理想。 在某些情况下甚至更少。

Pinar Yanardag 总结了这个演讲 :

  • 遵循童子军规则:总是把事情比发现的要好。
  • 方法应少于20行。
  • 没有一个需要布尔值的函数。 显然,它有两件事: 一个为假,另一个为真。
  • 剪切/粘贴是错误复制
  • 提取直到滴下! 继续提取,直到所有功能都只做一件事情
  • 源代码代表设计而非UML工具。

Dan Ingalls玩 电脑四十年

Joakim Holm在Ingalls的主题演讲中 :

Dan向我们展示并执行了他用Fortran编写的第一个程序,以自发地鼓掌。 他描述并说明了他为职业生涯选择的道路,曾与施乐PARC的Alan Kay等照明专家一起工作。 他描述了Smalltalk的发展,以及Squeak (本身编写的Smalltalk实现!),以及今天在Lively Kernel上的工作。 作为标准Web浏览器中的交互式编程环境,这最后一件事情真是太奇妙了。

在丹讲话期间,令我印象深刻的是,他似乎总是去他认为自己会最开心的地方。 在当今通常非常严肃的软件世界中,这是一种非常罕见的态度。 但是,可以认为这种态度实际上是成功的秘诀,这并非没有道理。 如果您喜欢自己的工作,那么您可能会做得很好。

Pinar Yanardag认为Ingalls的主题演讲很有趣:

Dan Ingalls的主题演讲非常有趣。 他展示了自己的早期代码,并在Squeak进行了所有演示,还分享了生动内核的演示。 英格尔斯(Ingalls)的一句名言:

我们不善于吸取过去的教训,因为:

  • 我们没有足够的讲故事的人,
  • 我们这一代人听的不太好。

Twitter在本次会议上的反馈包括:

patkua :从明智的话@daningalls ,“如果事情可以计算,他们应连续计算”桌面早期的演示发布@ #qcon

erik_van_oosten :在#qcon上研究Squeak,灵感来自Dan Ingalls的惊人演讲,完全来自Squeak内部

Ralph Johnson的 老化软件的生活和工作

Twitter在本次会议上的反馈包括:

alblue :“工具很重要;但设计专业更重要”- #qcon的 Ralph Johnson

georgemcintosh :RT @marknijhof :当管理人员开始谈论重构时,这是一个不好的信号,这意味着您做得不好,Ralph Johnson(GOV) #QCon

kiltec :RT @tastapod :Ralph Johnson #QCon主题演讲:将来,大多数人将使用比他们更旧的代码

jlindstorff :RT @jcoplien :上大学时间过长,您将获得类似于GOF书中的模式[解释] -Ralph Johnson #qcon

2015年软件开发

DCI体系结构: Jim O. Coplien 的代码级精益和敏捷

Twitter在本次会议上的反馈包括:

alblue :“ Java是一种玩具脚本语言;您无法使用Java编写面向对象的代码”- #qcon的 Jim Coplien

敏捷进化

凯文·海尔(Kevin Seal)批准了对敏捷的新的更务实的观点 :

敏捷运动在敏捷进化的轨道上也受到了严格的审查。 (最终!)有人对它提出了一个务实的看法,因为它似乎是在一些好意建议的支持下兴起的。 在某种程度上具有讽刺意味的回顾中,我们看到了敏捷是如何导致我们抛弃了自此以后被重新发明的东西,而坚持了仪式而不管其实际价值如何。 “我们患有多动症,逆行性健忘症和强迫症,”基思·布雷思韦特说。 “敏捷教练”的作者雷切尔·戴维斯(Rachel Davies)提到“ w-agile”:每天站立的小型瀑布,在这一点上许多尝试采用敏捷的尝试都陷入了僵局。 但是,令人耳目一新的是,这被视为一个良好的开端,并提醒人们,这不是目标的特定过程,而是不断的改进。

Eric Evans将 设计折叠到敏捷过程中

马特·齐默尔曼(Matt Zimmerman) 在本届会议上作了详尽的笔记 ,包括:

埃里克(Eric)解决了如何在敏捷框架内解决设计问题的问题。 […]

他强调了建模的重要性,“当项目的关键复杂性在于理解和交流领域时”。 建模的“预期”方法是合并前期分析阶段 ,但是Eric认为这是错误的。 因为“模型是提炼出来的知识”,并且团队在项目开始时相对无知,所以以这种方式进行建模可以捕获这种无知并使它持续存在

他说,取而代之的是,我们应该采用“拉”方法 ( 精益意义),并决定在以下情况下进行建模:

  • 与利益相关者的沟通恶化
  • 当解决方案比问题更复杂时
  • 当速度变慢时(因为完成的工作成为负担)

[…]

这是一个非常引人入胜的演讲,其概念显然适用于敏捷开发的特定问题领域。

Joakim Holm注意到了这个话题 :

埃里克(Eric)谈论了他是如何故意将过程东西排除在DDD书之外 。 但是,这意味着有些人实际上以为他主张BDUF设计风格。 没有东西会离事实很远。 埃里克(Eric)解释了他如何思考寻找驾驶用户故事,探索不同的设计以及使用简单的故事测试评估设计的过程。

看板-越界,超越极限或重新发现敏捷愿景/span> 杰斯珀·博格(Jesper Boeg)

马特·齐默曼(Matt Zimmerman)在这一点上指出 :

Jesper与看板分享了经验和教训,以及它解决的其他方法中存在的一些问题。 他的资料很平衡且很有见地,我想回去看完整的视频。

这里再次明确而务实地致力于将工具和流程与团队,业务和情况的特定需求相匹配。

NET上的AlphaGeeks

美丽的团队和领导者Roy Osherove

Adrian Hills选择了.NET跟踪,此会话是他认为最好的会话之一 :

整个会议中最有趣的话题是去Roy Osherove( twitter )。 精彩的单曲吉他演奏结束了关于“美丽的团队和领导者”的激烈讨论。 辉煌。

扩展应用程序:复杂性,性能,可维护性 Oren Eini

Adrian Hills也参加了此.NET会议:

Ayende Rahien(Oren Eini)[…]讨论了如何通过“分而治之”的方法扩展应用程序。 我特别喜欢他的会议,是他通过一个真实的例子进行了工作,并提供了一些有关性能改进的实时指标。 这次演讲是提及CAP定理的众多例子之一 ,其中分布式只能满足以下3个中的2个,但不能满足所有3个:

  • 一致性
  • 可用性
  • 分区容限

雨果·罗杰·布朗 ( Hugo Rodger-Brown )对此讲话发表了评论:

来自Ayende的精彩演讲–包括一些代码演示,该演示总是在人群中流行。 要点与其他所有人的观点相同-仅在将系统分为功能组件并分别进行攻击时才可以进行横向扩展-例如,用户登录与用户注册有不同的要求,因此请不要将其全部粘贴在RDBMS的单个表中。 使用服务总线进行异步通信,数据总是很脏等,等等。在他的新(json)文档数据库-CouchDB的.net复制品上,做了一些不必要的演示,带有一些Mongo功能(围绕查询)。 看起来不错,很值得一看,尽管它显然处于alpha阶段。

.NET的发展 水平-Josh Graham和Amanda Laucher 学习12个月的 知识

蒂姆·安德森(Tim Anderson)指出,格雷厄姆(Graham)和劳彻(Laucher)建议学习以下工具,语言和技术 :

  1. F#(再次)
  2. M –建模/ DSL语言
  3. Boo-.NET的静态Python
  4. NUnit –单元测试。 很少考虑Microsoft在Team System中的测试框架,这被认为是浪费和次等的努力。
  5. RhinoMocks –模拟库
  6. Moq –另一个模拟库
  7. NHibernate –对象关系映射
  8. 温莎 –依赖注入,是Castle项目的一部分。 有争议 一些与会者认为这太复杂了。
  9. NVelocity – .NET模板引擎
  10. 游击队SOA –见上文
  11. 有人告诉我们,Azure

    来源:cunfu6353

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月8日
下一篇 2020年6月8日

相关推荐