期间: 2012
信息卡
当我向同事们抱怨幻灯片文档的危害时,我确实听到了一些有用的反驳。现在很多人喜欢通过幻灯片来交流,这些幻灯片不是用来演示的,只是用来阅读的。像我这样的人可能会嘲讽现在的经理们无法阅读任何不像要点的东西,但这些信息卡确实有其优势。
概率盲
在我写这篇文章的时候,美国总统大选即将结束,关于Nate Silver做出的预测,出现了一场附带的辩论。许多共和党人声称他是民主党的托儿,他对奥巴马获胜概率为85%的预测是假的。我有点希望我能认识更多不懂数学的共和党人,这样我就可以和他们打赌了。也许更好的愿望是,民意调查的结果是相反的,因为我认识更多倾向于民主党的的朋友。在现实中,无论哪种方式,我都不会获得太多,因为我认识的大多数人都是懂数学的。可悲的是,这种情况并不普遍——这场闹剧说明了大多数人对概率的严重无知,这对整个社会,特别是软件开发,都有一些重要的影响。
跨媒体应用
在过去几年中,移动应用一直是软件开发领域的热门话题。像许多软件交付公司一样,Thoughtworks 收到了许多客户要求我们为他们构建移动应用的请求。然而,大多数情况下,当一家公司要求我们(或任何人)构建移动应用时,他们一开始就走错了路。我认为,在大多数情况下,即使您希望用户与移动设备进行交互,您也应该**永远不要考虑构建移动应用**。相反,您需要考虑构建一个可以在多种设备上呈现的单一应用程序:移动设备、台式机、平板电脑——或者您的用户可能使用的任何设备。
回顾基本原则
回顾基本原则是回顾实践的重要组成部分,自 Norm Kerth 首次推出该实践以来,它一直是回顾思维中不可或缺的一部分。最近,我阅读了Pat Kua 的新书《回顾手册》,这本书基于 Pat 作为 Thoughtworks 技术负责人所拥有的丰富回顾经验。我发现 Pat 对基本原则的建议令人反感,但我不得不说他几乎肯定是正确的。
Thoughtworks 技术雷达常见问题解答
大约每半年,我都会与 Thoughtworks TAB(我们全球组织中精选的高级技术专家)聚会。我们会议的主要成果之一是我们的技术雷达。该雷达引起了广泛关注,并引发了一些常见问题,本常见问题解答希望能解答这些问题。
参加2012年奥胡斯大会
过去几个月,我的旅行非常频繁(到最后,我计算出在过去的44天里,我有40天都在路上),这就是为什么我的网站一直很安静的原因。现在我回家了,可以回顾一下其中的一些事情——goto 大会总是充满了值得反思的东西。
NoSQL 简介
在奥胡斯 goto 大会上,我们有一个关于 NoSQL 实践经验的专题。我被邀请做一个开场演讲,解释 NoSQL 数据存储的基本原理。我谈到了 NoSQL 的起源、NoSQL 数据模型的形式、许多 NoSQL 数据库如何看待一致性问题,以及多语言持久化的重要性。
人民 vs. NoSQL 数据库:小组讨论
在奥胡斯 goto 大会的一个专题中,NoSQL 供应商有机会谈论他们的各种工具。在专题结束时,各位演讲者被安排在一个小组中,讨论一些与 NoSQL 相关的常见问题。虽然我没有参与该专题(我的演讲是几天后进行的),但我参与了小组讨论。
《NoSQL 精粹》要点
在我们设计《NoSQL 精粹》这本书时,我们在大多数章节的结尾都总结了一些要点,以便读者在重读时能够快速回顾。我们在网站上也提供了这些要点,以便读者能够以另一种方式回忆起这些关键内容。
现代模拟工具与黑魔法
现代模拟工具对我们使用遗留代码的能力产生的积极影响,以及使用这些工具可能带来的负面影响。
BigQuery 概念验证
谷歌的新服务BigQuery能否在不需要昂贵软件或新基础设施的情况下,为客户提供大数据分析能力?Thoughtworks 和 AutoTrader 使用海量数据集进行了一周的概念验证测试。测试表明,在 7.5 亿行的数据集上,查询性能始终保持在 7-10 秒的范围内。我们使用 REST API、Java、JavaScript 和 Google Charts 创建了一个 Web 前端,并使用交互式图表来显示查询结果。整个测试由三个人在五天内完成。结论:BigQuery 表现良好,可以使拥有大数据和较少预算的组织受益——尤其是那些没有数据仓库或数据仓库使用受限的组织。
公共仪表盘
随着人们对数据分析和可视化的兴趣日益浓厚,我们看到人们正在投入更多精力来创建有趣的可视化效果,以便人们能够从组织中流动的数据中获得洞察力。这些仪表盘大多面向个人使用,但也有一种越来越明显的趋势是将它们用于更公共的目的。
雪花服务器
维护生产服务器的正常运行可能是一件很棘手的事情。您必须确保操作系统和任何其他依赖软件都已正确打补丁,以保持最新状态。托管应用程序需要定期升级。配置更改是经常需要的,以便调整环境,使其高效运行并与其他系统正确通信。这需要混合使用命令行调用、在 GUI 屏幕之间跳转和编辑文本文件。
结果就是一个独特的雪花——适合滑雪胜地,不适合数据中心。
凤凰服务器
有一天,我幻想开始为运营提供认证服务。认证评估将由我和一位同事组成,我们出现在公司数据中心,用棒球棒、电锯和水枪攻击关键的生产服务器。评估将基于运营团队需要多长时间才能使所有应用程序重新启动并运行。
多移动设备
移动设备作为客户和员工使用软件服务的平台越来越重要。很多人都在忙于构建移动应用程序,但也有很多供应商在忙于构建移动设备。这种移动设备的多样性带来了一个挑战——如何支持如此多的移动设备?
SE Radio 播客:敏捷数据库开发
Pramod Sadalge 带领开发了敏捷数据库技术,我们现在在 Thoughtworks 经常使用这些技术。SE Radio 采访了我们如何使用这些技术来迭代地改进数据库的设计,以及如何与使用数据库的应用程序一起进行迭代。我们讨论了如何将数据库纳入持续集成系统,如何通过可重复的脚本迁移来进行数据库更改,以及数据库重构是如何工作的。
选择移动实施策略
过去五年来,移动技术的突然快速爆发带来了巨大的机遇。虽然许多移动平台似乎都将继续蓬勃发展,但移动客户对其应用程序的用户体验要求非常高。本文介绍了两种移动渠道实施策略,可以帮助您在用户体验和平台覆盖范围之间取得平衡,同时为您的应用程序提供前进的道路。
对 ORM 的憎恨
几个月前,我在伦敦参加 QCon 大会时,似乎每个演讲都包含一些对对象/关系映射 (ORM) 工具的尖刻评论。我想我应该更仔细地阅读发送给演讲者的会议电子邮件,毫无疑问,其中肯定有什么东西告诉我们,每隔 45 分钟至少要对 ORM 表示一次蔑视。但正如你所知,我想稍微反驳一下这种对 ORM 的憎恨——因为我认为很多憎恨是没有根据的。
编辑发布分离
在过去一年左右的时间里,我与 Thoughtworks 项目团队的对话中,一个经常出现的主题是内容管理系统 (CMS) 日益增长的影响。它们通常不被认为是有帮助的,事实上,有明显的迹象表明,它们正在成为一种令人担忧的侵入性工具——被用于其核心目的之外,以至于阻碍了整体开发。
在其他令人恼火的事情中,一个常见的缺陷是它们为每篇文章保留一个副本。这个副本在创建内容时进行编辑,并发布给读者(通常通过某种状态更改标志)。
不断演变的数据全景
我们 2012 年伦敦 QCon 大会上的主题演讲探讨了数据在我们生活中所扮演的角色(它不仅仅是越来越大)。我们首先看看数据世界是如何变化的:它正在增长、变得更加分散和互联。然后,我们转向行业的反应:NoSQL 的兴起、向服务集成的转变、事件溯源的出现、云的影响以及可视化作用更大的新分析。我们快速浏览一下数据目前的应用方式,Rebecca 特别强调了发展中国家的数据应用。最后,我们思考这一切对我们作为软件专业人员的个人责任意味着什么。
测试覆盖率
我时常听到有人询问他们应该以什么样的测试覆盖率(也称为代码覆盖率)为目标,或者自豪地陈述他们的覆盖率水平。这种说法没有抓住重点。测试覆盖率是一个有用的工具,可以用来查找代码库中未经测试的部分。测试覆盖率作为衡量测试质量的数字指标,用处不大。
演示文稿的缺陷
我做过很多次演讲,而且由于我经常参加会议,所以我也看过很多次演讲。这意味着我看到了很多问题,人们做的事情降低了他们演讲的效果。我并没有试图列出一个全面的清单,所以我在这里提出的只是我想到的一些事情。像大多数缺陷一样,这些并不总是错误的,但应该总是让你思考。
未来不是 NoSQL,而是多语言持久化
一份关于企业数据存储未来的信息图,主要面向参与应用程序开发管理的人员。解释了关系数据库为何一直占据主导地位,NoSQL 为何挑战这一假设,并概述了多语言持久化的未来,即根据应用程序的不同需求,将使用多种数据存储技术。
SE Radio 播客:领域特定语言
我和 Thoughtworks 首席技术官 Rebecca Parsons(DSL 书籍的撰稿人之一)一起与 Markus Völter 讨论了 DSL。我们谈论了什么是 DSL、内部 DSL 和外部 DSL 之间的区别,以及何时应该(和不应该)使用 DSL。
慈善代码冲刺
在过去的几年里,我的几位同事一直在组织代码冲刺活动,让开发人员聚在一起为慈善事业编写软件。一个很好的例子是在纽约定期举办的代码冲刺活动,该活动致力于 RapidFTR。Chris George 是一位常驻纽约的 ThoughtWorker,他帮助组织了 2010 年 8 月在纽约举行的一次性活动。该小组当天并没有完成预期的所有工作,但在之后的一次酒吧聚会上,他们决定尝试更定期地聚会。从那时起,他们每周都会见面。这是一个小团体,主要由 ThoughtWorker 和朋友组成,核心成员有 3-4 人,当我们有一个大项目在城里进行时,人数会增加到 12 人。(Chris 很乐意有更多的人加入这个团体,所以如果你有兴趣,请 给他发邮件。)
许多人发现,这些活动让我们能够以一种比许多日常工作更有意义的方式来运用我们的技能,并让我们能够学习新技能,并从不同的人群中学习。所以我想我应该分享一下我们对如何建立一个这样的活动的看法。
面向聚合的数据库
我们在编写 《NoSQL 精粹》 时首先想到的主题之一是,NoSQL 数据库使用的数据模型与关系模型不同。我查阅的大多数资料都提到了至少四种数据模型:键值、文档、列族和图。仔细观察这个列表,你会发现前三种模型之间有一个很大的相似之处——它们都有一个基本存储单元,即一个由密切相关的数据组成的丰富结构:对于键值存储来说,它是值;对于文档存储来说,它是文档;对于列族存储来说,它是列族。用领域驱动设计(DDD)的术语来说,这组数据是一个 DDD 聚合。
多元化失衡
尽管很容易习以为常,但软件开发领域在多元化方面存在一些严重问题,这是很明显的。我的意思是,与普通人群相比,我们在人员比例方面存在一些显著差异。最明显的差异之一是女性比例低,这在全世界都是如此(尽管在中国不那么明显)。在美国,我经常在那里工作,非裔美国人的缺乏也很明显。关于造成这种失衡的原因以及可以采取哪些措施,人们已经写了很多文章。但在这里,我想集中讨论一个更基本的问题——这重要吗?
NoSQL 的定义
我们一开始编写 《NoSQL 精粹》 就遇到了一个棘手的难题——我们要写的是什么?究竟什么是 NoSQL 数据库?这个概念没有明确的定义,没有商标,没有标准组织,甚至没有宣言。
致皮尔森关于 SOPA/PIPA 的公开信
当我们得知我们的出版商皮尔森是备受争议的 SOPA 立法的支持者时,Jez Humble 和我写了一封公开抗议信。这封信发表后,其他一百位皮尔森的作者也联署了这封信。