期间:2021
2021年我最喜欢的音乐发现
2021年我最喜欢的六个新音乐收购
建筑实践的尺度,对话华体会体育网页版入口
华体会体育网页版入口建筑不必是一段独白;从中央集权的少数人的头脑和嘴巴自上而下地传达出来。本文描述了构建体系结构的另一种方法;华体会体育网页版入口作为一系列对话,由分散和赋权的决策技术驱动,并由四种学习和对齐机制支持:决策记录、咨询论坛、团队来源原则和技术雷达
整合是买不到的
商业集成工具到现在已经有几十年的历史了,但是在描述何时以及如何使用它们的总体架构原则方面还很少。在本文中,我认为“购买”决策机制导致我们夸大了这些工具的价值主张,通常导致使用特定集成工具而不是通用语言。我认为这样的工具在一个将集成主要视为连接系统的世界中蓬勃发展,但数字化组织已经重新想象集成主要是将干净的接口放在数字功能前面,强调功能而不是系统。最后,我列出了集成的现代观点背后的一些关键原则,并声称用通用语言最好地管理这些原则,将商业集成工具的主要价值定位为简化战术实现问题。
与戴夫·法利的工程室对话
我的老同事Dave Farley一直在运营一个越来越受欢迎的YouTube软件开发频道。华体会登录网址这是很好的材料,非常符合我自己的观点,毕竟他的经历对我的思想影响很大。我们讨论了一系列关于软件工程当前角色的主题,特别关注我目前支持的三个大型写作项目:数据网格、分布式系统的模式和遗留置换的模式。
默认的审判退休
在每个正常规模的团队中,将任何技术类别的选择限制在三个以内。它们是:当前合理的违约,我们正在试验的违约,以及我们讨厌并想要退休的违约。
建筑力量的强弱华体会体育网页版入口
好的技术设计决策非常依赖于上下文。经常为共同目标一起工作的团队能够定期沟通并快速协商变更。这些队伍展示了强大的力量并能做出利用这种强大力量的技术和设计决策。当我们缩小到一个更大的组织,越来越弱力存在于独立工作、较少合作的团队和部门之间。认识到这些强弱力量的差异,可以让我们做出更好的决策,并为每个关卡提供更好的指导,让更强大的团队更快地前进。
DevOps文化中的遵从性
集成必要的安全控制和审计功能,以满足DevOps文化中的遵从性需求,可以利用CI/CD管道自动化,但随着组织规模的扩大,会带来独特的挑战。理解由所选实现引起的二级影响和意外后果是构建有效、安全且可伸缩的解决方案的关键。
发布/展示/询问
Ship/Show/Ask是一种分支策略,它将Pull Requests的特性与保持发送更改的能力相结合。更改分为Ship(合并到主线中而不进行评审)、Show(打开一个拉请求进行评审,但立即合并到主线中)或Ask(在合并之前打开一个拉请求进行讨论)。
网关模式:
有趣的软件很少独立存在。团队编写的软件通常必须与外部系统交互,这些系统可能是库、对外部服务的远程调用、与数据库或文件的交互。通常,外部系统会有某种形式的API,但从我们的软件环境来看,这种API常常显得很笨拙。API可能使用不同的类型,需要奇怪的参数,以在我们的上下文中没有意义的方式组合字段。无论何时使用这种API,处理它都会导致不和谐的不匹配。
一个入口作为一个单独的点来面对这个外国人。我们系统中的任何代码都与网关的接口交互,网关的接口被设计成按照我们系统使用的术语工作。然后,网关将这个方便的API转换为外国人提供的API。
遗产迁移的模式
当面临替换现有软件系统的需求时,组织通常会陷入半完成的技术替换的循环。我们的经验教会了我们一系列的模式,这些模式允许我们打破这个循环,依赖于:有意识地认识到替换遗留软件的期望结果,打破部分替换,增量地交付这些部分,改变组织的文化,以认识到变化是不变的现实。
不说话
演讲一直是我职业生涯的支柱之一。我在世界各地的软件活动上做过主题演讲。其中一些演讲在youtube上有成千上万的观看量。但我一直讨厌做演讲,因此决定不再做演讲。
分布式系统的模式
分布式系统对编程提出了特别的挑战。它们通常要求我们有多个数据副本,这些副本需要保持同步。然而,我们不能依赖处理节点的可靠工作,网络延迟很容易导致不一致。尽管如此,许多组织依赖于处理数据存储、消息传递、系统管理和计算能力的一系列核心分布式软件。这些系统面临着共同的问题,它们用相似的解决方案来解决这些问题。本文将这些解决方案作为模式进行识别和开发,通过这些模式,我们可以建立对如何更好地理解、交流和教授分布式系统设计的理解。
论测试的多样化和幻想形态
关于测试组合应该是金字塔型还是更像蜂巢型存在争论。关于这个论点,我的第二大问题是,由于人们不清楚单元测试和集成测试之间的区别,它变得不透明。
注意平台执行差距
开发人员生产力平台越来越被认为是管理工程团队认知负荷的一种方式,并减少新功能的上市时间。然而,为了成功地执行平台战略,组织需要培养一些基本能力。平台团队需要将平台视为一个软件产品,需要与用户进行对话,关注可靠的操作,以及一个健康的团队环境。
用R的ggplot2静音意大利面条折线图
我如何用R绘制一个包含facet的静音意大利面图。
双时间历史
通常有必要了解一些财产的历史价值。但有时,这段历史本身需要修改以响应追溯更新。双时史视时间为两个维度:真实的历史记录了历史应该被赋予什么完美的信息传递,而记录的历史记录了我们对历史的认识是如何变化的。
优化代码评审
当人们想到代码评审时,他们通常会想到开发团队工作流中的显式步骤。这些天的预整合审查,进行了一个把请求是代码评审最常见的机制,以至于许多人都认为不使用拉请求就会删除所有进行代码评审的机会。这种对代码评审的狭隘看法不仅忽略了许多显式的评审机制,更重要的是,它忽略了可能是最强大的代码评审技术——由整个团队进行的永久优化。
把请求
Pull Requests是一种由github推广的机制,用于帮助促进工作的合并,特别是在开源项目的环境中。贡献者在中央存储库的分支(克隆)中处理他们的贡献。一旦他们的贡献完成,他们创建一个拉请求来通知中心存储库的所有者,他们的工作已经准备好合并到主线中。工具支持并鼓励在接受请求之前对贡献进行代码检查。拉请求已经在软件开发中得到了广泛的应用,但是批评者担心添加的集成摩擦会阻止持续集成华体会登录网址。
大大提高开发人员的效率
科技正不断变得更智能、更强大。我经常观察到,随着这些技术的引入,组织的生产力不但没有提高,反而降低了。这是因为技术增加了开发人员的复杂性和认知负担,降低了他们的效率。本文是本系列的第一篇,在本文中,我将介绍一个框架,用于最大化开发人员的效率。通过研究,我确定了关键的开发者反馈循环,包括开发者每天执行200次的微反馈循环。这些都应该经过优化,以便它们对开发人员来说是快速、简单和有影响力的。我将研究一些组织是如何使用这些反馈循环来提高整体效率和生产力的。
可以破坏民主的谎言
最近发生的事件突出表明,我们需要采取严肃措施,反击正在破坏民主的谎言。