期间:2011
Slideument
幻灯片是幻灯片和文档的混合体。这个想法是,你可以使用一张幻灯片,既可以在你的演示中作为幻灯片,也可以作为供人们阅读的讲义。问题是,这两种需求对你的幻灯片有截然不同的要求,所以你不能同时满足它们。结果是滑轨通常在这两个方面都失败了。
持续交付
我们对持续交付进行了一个小时的概述。主题包括持续交付的论证、部署管道、持续集成、devops和部署策略。最精彩的是杰斯将发行候选人拟人化为希腊神话中的英雄。
迅雷显示
几个月前,公司给我发了一台新的笔记本电脑——带有Thunderbolt端口的Macbook Pro。当我拿到它的时候,我开始无所事事地想要一个Thunderbolt显示器。尽管苹果显示屏价格不菲,但我听说它们都很不错,而且将显示屏作为接口的想法很有吸引力。
通晓多种语言的持久性
2006年,我的同事尼尔·福特(Neal Ford)创造了这个术语通晓多种语言的编程,以表达应该用混合语言编写应用程序的想法,以利用不同的语言适合处理不同的问题这一事实。复杂的应用程序组合了不同类型的问题,因此为工作选择正确的语言可能比试图将所有方面都放到一种语言中更有成效。
在过去的几年里,人们对新语言的兴趣激增,特别是函数式语言,我经常想花些时间钻研Clojure、Scala、Erlang或类似的语言。但我的时间有限,我将优先考虑另一个更重要的转变,那就是DatabaseThaw.第一批资金已经从客户和其他联系人那里获得,前景非常诱人。我可以自信地说,如果您开始一个新的战略企业应用程序,您不应该再假设您的持久性应该是关系的。关系选项可能是正确的选项——但是您应该认真地考虑其他选项。
过早加大
软件的好处之一是人们似乎想要它,而且想要得很快。对于组织来说,要求团队加快软件的生产速度是很常见的,并且组织不时地以真正显示其承诺的方式寻求帮助——花钱为团队增加更多的人。
投机取巧的重构华体会app下载二维码
从我开始谈论和撰写重构的时候起,就有人问我如何将重构纳入更广泛的软件开发过程中。华体会登录网址华体会app下载二维码在软件开发生命周期中是否应该有重华体会app下载二维码构阶段?一次迭代中应该有多少比例的时间用于重构任务?华体会登录网址我们应该如何确定重构任务应该分配给谁?尽管有些地方可以进行一些预定的重构工作,但我更倾向于鼓励将重构作为一种机会活动,无论何时何华体会app下载二维码地,只要需要清理代码——由谁来清理——就可以进行重构。
2011年转到奥尔胡斯
转到(以前称为jaao)一直是我最喜欢的会议。多年来,他们在保持高水准的内容和高效友好的组织方面做得很好。因此,虽然我对会议的过度消费通常导致了会议恐惧症,但在前往奥胡斯(Aarhus)进行有点复杂的旅行时,我仍然会有一种愉快的期待感。
避免视频
制作和编辑视频曾经是一项昂贵的工作,但现在相机和编辑软件都很便宜。因此,许多像我这样的大嗓门开始制作视频来帮助传播他们的想法。这么做有很多原因,这是一种有很多可能性的媒介,它适合像我这样在舞台上很会讲话的人,有很好的证据表明人们会为视频付费——这对一个人的收入和人们认真对待视频都有好处。尽管有这些原因,到目前为止我还没有冒险。
五个仲夏夜
不久前,辛迪和我,还有几个邻居,开始了一项漫长的探索,谁知道我们能不能完成。我们的目标是观看莎翁的每一部戏剧,每一个合理可用的视频版本。这是非常有趣的,尽管我们不能像我们想的那样多,因为我经常旅行。我们正在按照大致的时间顺序进行创作,刚刚完成了《仲夏夜之梦》。
内存映像
当人们开始一个企业应用程序时,最早的问题之一是“我们如何与数据库通信”。如今,他们可能会问一个稍微不同的问题:“我们应该使用哪种数据库——关系型数据库还是NOSQL数据库?”但还有另一个问题需要考虑:“我们到底应该使用数据库吗?”
敏捷宣言作者10周年聚会
十年后我们写了敏捷宣言在2011年敏捷大会期间,我们被邀请参加一个特别的活动来庆祝周年纪念。17位作者中的15位来了,我们在公园长凳上举行了一个专题讨论会,回答观众的问题和评论。我想我们都惊讶于再次见面是多么美好,我们如此容易地回到舒适的合作和讨论中。我们的讨论包括撰写宣言的一些背景,回顾过去十年中我们满意和不满意的事情,敏捷的未来发展,以及敏捷和精益之间的关系。
软件专利
我认为,在软件开发领域,我认识的几乎所有人都对专利及其在我们领域的使用方式深华体会登录网址恶痛绝。我已经在我的待办事项列表上写了一篇关于这方面的文章很久了特别好的调查新闻报道《美国生活》我的文章的简短形式是,虽然专利(甚至软件专利)在原则上是一个好主意,但在实践中它们已经变成了一场彻底的灾难,最好是废除。
播客
几周前,一个朋友想要推荐播客。我花了一些时间来回答这个问题,但我认为这是一个很好的机会来建议我喜欢听什么。
语义冲突
那些听到我和同事谈论的人FeatureBranch要知道我们不喜欢这种模式。我们反对的一个重要部分是观察到分支很容易,但合并很难。我们不时听到的一个论点是,现代VersionControlTools让合并变得足够容易,这样特性分支才有价值。
重载的Getter Setter
我最近一直在研究JavaScript,有一件事打动了我,那就是getter和setter使用相同的函数名的习惯。如果你想在jQuery中找到横幅的高度,你会使用$(" #旗帜”).height ()
如果你想改变高度,你可以用$(" #旗帜”).height (100)
.
我很熟悉这种约定,因为Smalltalk使用过它。你可能得到一个值旗帜高度
然后用旗帜高度:100
.知道这是一个闲聊的惯例,就足以期望我喜欢它,因为我对那门语言有一种遥远但持久的爱。但即使是最好的东西也有缺点,我无法掩饰我对这种编码风格的厌恶。
频率可以降低难度
我最喜欢的一句话是:如果疼,那就多做几次.它有一个令人高兴的特性,表面上看起来毫无意义,但当你深入挖掘时,会产生一些有价值的含义
CQRS
CQRS代表命令查询职责隔离.这是我第一次听到格雷格·杨描述的模式。其核心概念是,您可以使用不同于用于读取信息的模型的模型来更新信息。对于某些情况,这种分离可能是有价值的,但要注意,对于大多数系统,CQRS增加了有风险的复杂性。
LMAX架构华体会体育网页版入口
LMAX是一个新型零售金融交易平台。因此,它必须以低延迟处理许多交易。该系统构建在JVM平台上,以一个业务逻辑处理器为中心,在一个线程上每秒可以处理600万个订单。业务逻辑处理器使用事件源完全在内存中运行。业务逻辑处理器被干扰器包围着——这是一个并发组件,实现了不需要锁就能操作的队列网络。在设计过程中,团队得出结论,使用队列的高性能并发模型的最近发展方向与现代CPU设计根本不一致。
canon70 - 300
有一段时间,我对我的镜头设置很满意DigitalSLR:一个σ18 - 200作为一个普通的相机镜头,佳能10-22为宽,佳能50支而且100个f2用于低光人像和狭窄的景深。这是一个很好的设置,帮助我拍了很多我喜欢的照片。
但是,像我这样痴迷的业余爱好者都知道,对更好设备的渴望总是挥之不去。我听说像18-200这样的消费级镜头的清晰度不如好一点的,我可以买一个自动对焦更快更安静的镜头,也许我的远距离镜头比我认为我应该能拍到的更柔和一些?
包定制
IT部门中的一个常见问题是,是通过构建定制软件还是通过购买软件包来提供功能。早在我开始编程之前,关于如何做出选择的辩论就已经很激烈了。我的基本立场是建立在UtilityVsStrategicDichotomy.归结起来,这意味着如果您支持的业务流程是您竞争优势的一部分,那么您应该构建定制的软件,如果不是,则应该购买一个软件包并调整您的业务流程以适应软件包的工作方式。
尽管我的观点很明确,但似乎没有很多公司这么做。他们常常忽略了二分法,这是一个问题。但我在这里想强调的问题是他们在购买套餐时常见的陷阱。
H p_ n36 l
我最近决定装修一下我的房子MediaServer和有一个惠普N36L.到目前为止,我对它很满意。
国旗的论点
标志参数是一种函数参数,它告诉函数根据其值执行不同的操作。让我们想象一下,我们想预订一场音乐会。有两种方法可以做到这一点:常规和付费。要在这里使用flag参数,我们将以如下的方法声明结束:
敏捷开发大会的主题演讲
三段谈话:测试中的非决定论,软件开发的经济性,敏捷宣言发布10年。华体会登录网址
一半大小作文
演示面板的一个常见问题是,它们把文本和图表做得非常小,以至于只有坐在房间前面的人才能正确地看到它们。我做了一件简单的事情来减少这种情况发生在我身上的几率——当我在编写我的演示文稿时,我将视图大小设置为50%。如果我不能在50%的情况下轻松阅读,那么观众也会很纠结。
三大支柱
Thoughtworks是一家不同寻常的公司,这就是为什么像我这样对公司持怀疑态度的人在这里呆了十年。Thoughtworks的一个重要特征是,我们对我们的目标有更广阔的视角,而不仅仅是一个简单的商业实体。在过去的几年里,我们一直在使用三支柱模型来描述我们对自己的看法。
宽容的读者
使用web服务的好处之一是它帮助您分离系统的各个部分。人们可以在不同的代码库上进行一定程度的分离。尽管您得到了一些解耦,但您不能完全消除耦合,因为服务仍然必须通过它们的接口彼此通信。遗憾的是,许多团队把这种耦合搞得比应该的更糟。
沉思在电子书
我的第一个电子书阅读器才过了一年多。现在我只在必要的时候才买纸质书。我写我的上一本书时主要是把它当作纸质书,但那将是最后一次,在未来电子形式将在我的脑海中出现。这些变化将彻底改变书籍的版图,但除此之外,下一步还不清楚。
敏捷在10
SD Times专访敏捷宣言诞生10年
法治酊
ppt不是中世纪发明的,那时骑士们穿着全副武装在战场上奔袭。但是今天的幻灯片和那些古老的骑士有一个共同的特点。两者都需要能够从远处清晰地区分符号。我们可能没有泥土和灰尘,但许多投影机在对比方面并不出色。
跨平台的移动
随着众多手机平台的崛起,每个平台都拥有不同的UI,许多人开始关注跨平台工具包。这允许您编写一次移动应用程序,然后将其部署到一系列移动设备上。这些工具包值得使用吗?
Uml作为笔记
昨天,我浏览了一个代码库,查看了代码的领域模型部分。在研究代码库时,我喜欢做笔记,以帮助我记住所学的内容。对于一些代码基,特别是领域模型,我发现绘制UML类图非常方便。
定律演示
演示失败的几率与用户的重要性成正比。
统一访问原则
模块提供的所有服务都应该通过统一的表示法可用,这不会泄露它们是通过存储还是通过计算实现的。
——Bertrand Meyer
Bertrand Meyer在他那本影响深远的书中提出了这个原则面向对象软件构造.
该原则的要点在于,如果您有一个person对象,并要求它提供其年龄,那么无论年龄是对象的存储字段还是计算值,都应该使用相同的符号。这实际上意味着,人的客户机既不知道也不关心年龄是存储的还是计算的。
萨凡纳查尔斯顿
我们最近在南部城市萨凡纳和查尔斯顿度假了一周。我听说过这两个城市的美丽和历史名胜,我可以证实这些优点。这两个地方都值得你逛上几天。
消除测试中的不确定性
自动化回归套件可以在软件项目中扮演重要的角色,对于减少生产中的缺陷和进化设计都很有价值。在与开发团队的交谈中,我经常听到关于非确定性测试的问题——测试有时通过,有时失败。不受控制的、不确定的测试会完全破坏自动化回归套件的价值。在本文中,我将概述如何处理非确定性测试。最初隔离有助于减少它们对其他测试的损害,但您仍然必须尽快修复它们。因此,我将讨论不确定性的常见原因的处理方法:缺乏隔离、异步行为、远程服务、时间和资源泄漏。
敏捷签署
不时有人介绍我是“敏捷宣言的签署人”。通常他们的意思是我是敏捷软件开发宣言华体会登录网址因此,它也是最初的签署国之一。但实际上,签名者比17位作者要多得多,我上次查看的时候,签名者的数量达到了10104人。如果你愿意,你可以加入这个名单。
资源池
许多程序需要利用创建和维护成本高昂的资源。例如数据库连接和线程。资源池提供了一种管理这些资源的好方法。
认证能力相关
我的大多数朋友和同事都对软件开发中的认证计划持否定态度,我也一样。华体会登录网址这并不意味着我认为软件认证从定义上来说是不好的,只是我们看到的几乎所有认证都没有通过基本测试。
佳能60 d
当我第一次搬到DigitalSLR我故意买了一台便宜的相机——佳能Rebel XTi/400D。我这么做的部分原因是为了把更多的钱花在隐形眼镜上,但也是因为我知道技术会不断发展,我希望在几年后用它来取代身体。
交易质量的假设
我经常遇到一些开发者因为“管理层想要更多的功能,他们不关心质量”而感到沮丧。当我听到这句话时,我总是很难过,因为当我听到这句话时,我知道开发者、管理层和他们的客户已经失去了。他们的失败是由于把形势框定在交易质量的假设.
皮下测试
我使用皮下测试指的是在应用程序的UI下运行的测试。这在进行应用程序的功能测试时尤其有价值:当您想测试端到端行为,但很难通过UI本身进行测试时。
工艺和裂缝
Daniel Terhorst-North最近发表了一篇关于软件工艺的博客文章,引发了大量的博客讨论(如果您感兴趣,我将在下面进行总结)。书中有很多内容,但其中一个主题特别引起了我的共鸣,因此我写了这篇文章。
合同的测试
一个最常见的使用TestDouble是当您与外部服务通信时。通常,这样的服务由不同的团队维护,它们可能会受到速度慢、网络不可靠的影响,甚至可能自身也不可靠。这就是为什么测试替身很方便,它可以防止您自己的测试变慢和不可靠。但是对double类型的测试总是会产生这样的问题:double类型是否确实是外部服务的准确表示,如果外部服务更改了它的契约会发生什么情况?
搬到Nokogiri
这个网站的大部分内容,包括这个bliki,都是使用XML到HTML的转换过程构建的。我用自己的XML词汇表编写文章和bliki条目,然后将这些源文件转换为您所阅读的HTML。我在2000年说过,我是用XSLT做的。虽然我很擅长XSLT编程,但我得出的结论是,我还没有到想要继续使用它的地步。在飞往班加罗尔的航班上,我做了一个简短的实验,用Ruby编写了bliki转换器,然后使用REXML库切换到Ruby。现在是时候将核心库更改为Nokogiri了
安达曼群岛
在印度的时候,我们在安达曼群岛度过了一周的假期,主要是去潜水。我们大部分时间都在哈夫洛克岛度过,从布莱尔港的主要中心坐轮渡要几个小时。以下是我们的一些经验之谈。