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月举行。
目录
讲解
- UService Dahan的NServiceBus开发企业
- Francesco Cesarini的实用Erlang编程
- 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的创业之旅
- 怎么办戴伦·席曼(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服务
务实云计算
- 正常情况,一切都必须改变西蒙·沃德利
- 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的观点
外卖
结论
讲解
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!
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)批准了对敏捷的新的更务实的观点 :
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)建议学习以下工具,语言和技术 :
- F#(再次)
- M –建模/ DSL语言
- Boo-.NET的静态Python
- NUnit –单元测试。 很少考虑Microsoft在Team System中的测试框架,这被认为是浪费和次等的努力。
- RhinoMocks –模拟库
- Moq –另一个模拟库
- NHibernate –对象关系映射
- 温莎 –依赖注入,是Castle项目的一部分。 有争议 一些与会者认为这太复杂了。
- NVelocity – .NET模板引擎
- 有人告诉我们,Azure
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!