软件开发是一个年轻的职业,我们仍然在学习技术和构建工具来有效地完成它。我已经参与这个活动超过30年了,在过去的两年中,我一直在这个网站上写关于使构建有用软件更容易的模式和实践的文章。这个网站一开始是一个放我自己文章的地方,但我也用它来发表我同事的文章。

2000年,我加入了Thoughtworks,我的角色是学习我们已经学会的为客户交付软件的技术,并将这些技术传递到更广泛的软件行业。由于这个网站已经发展成为一个受人尊敬的软件开发平台,我编辑并发表了我的同事(包括ThoughtWorkers和其他人)的文章,以帮助有用的写作获得更广泛的受众。

马丁·福勒的照片188bet足球充值

照片:克里斯托弗·弗格森

188bet足球充值

一个关于有效构建软件的网站

如果有一个主题贯穿我在这个网站上的工作和写作,那就是向敏捷思维的转变与使敏捷软件开发成为现实的技术模式和实践之间的相互作用。虽然在我们的职业中,技术的细节变化很快,但基本的实践和模式更加稳定。所以写关于这些的文章可以让我在这个网站上有一些几年前的文章,但仍然和它们写的时候一样相关。

随着软件对现代业务变得越来越重要,软件需要能够快速地对变化做出反应,允许新特性被构想、开发并迅速投入生产。的技术敏捷软件开发从20世纪90年代开始,在过去十年中越来越受欢迎。他们专注于一种灵活的计划方法,这种方法允许软件产品随着用户需求的变化而改变方向,并且产品经理可以更多地了解如何使用户更有效。虽然敏捷方法现在被广泛接受,但它并不容易,它需要团队的重要技能,但更重要的是团队内部和团队伙伴之间的开放协作文化。

这对流畅地应对变化的需求有重要的影响体系结构一个软件系统。软件需要以这样一种方式构建,即它能够适应功能的意外变化。要做到这一点,最重要的方法之一是编写清晰的代码,使程序易于理解。这些代码应该被划分成模块,让开发人员只理解他们需要进行更改的系统部分。此生产代码应该得到自动化测试的支持,这些测试可以检测在进行更改时所犯的任何错误,同时提供如何使用内部结构的示例。大型和复杂的软件工作可能会发现microservices架构风格可以帮助团队以更少的依赖关系部署软件。

创建具有良好架构的软件并非一蹴而就的事。就像好的散文一样,它需要定期修改,程序员需要更多地了解产品需要做什么,以及如何最好地设计产品以实现其目标。bet188足球188足球比分直播是安全更改程序的必要技术。它包括不改变软件可观察行为的小改变。通过组合大量的小变化,开发人员可以修改软件的结构,以支持系统最初构想时没有计划的重大修改。

只在开发人员的机器上运行的软件不能为软件的客户提供价值。传统上,发布软件是一个漫长而复杂的过程,它阻碍了快速发展软件的需要。持续交付使用自动化和协作工作流来消除这个瓶颈,允许团队根据客户的要求经常发布软件。为了实现持续交付,我们需要建立一个坚实的基础测试,通过一系列自动化测试,可以让我们确信我们的更改没有引入任何错误。这导致我们将测试集成到编程中,这可以改进我们的架构。

照片流

巴赫拉奇,莱茵兰-普法尔茨,德国(2016)

数据管理

有很多种软件,我主要使用的是企业应用程序。在这个世界上,我们需要解决的一个长期问题是118金宝博官方网站 .我在这里重点讨论的数据管理方面是,当应用程序响应不断变化的需求时,如何迁移数据存储,如何处理跨大型企业的不同上下文,NoSQL数据库的角色,以及处理既大又乱的数据的更广泛问题。

领域特定语言

在复杂的软件系统中,一个常见的问题是如何以一种程序员既可以轻松操作又可以轻松与领域专家交流的方式捕获复杂的领域逻辑。领域特定语言(dsl)为特定问题创建自定义语言,可以使用自定义解析器,也可以根据宿主语言中的约定。

我已经写了七本关于软件开发的书,包括重构、企业应用程序架构模式和UML蒸馏。188足球比分直播我也是Addison-Wesley签名系列的编辑,其中包括五位震奖得主。

我的书页面…

会议谈判

我经常被要求在会议上做演讲,从这一点上我推断我是一个很好的演讲者——这很讽刺,因为我真的讨厌演讲。你可以通过观看我的一些会议演讲视频来形成自己的观点。

我的视频页面…

棋盘游戏

我长期以来都是桌游的粉丝,我喜欢一款完全占据我的大脑的游戏,在享受好朋友的陪伴的同时,暂时清空所有严肃的想法。随着欧洲游戏的兴起,现代桌面游戏在20世纪90年代取得了显著的进步,我想如果许多人没有尝试过这一代游戏,他们一定会感到惊讶。我也经常上电视重型纸板

我的桌面游戏页面…

标签

API设bet188足球计·敏捷·采用敏捷·分析模式·应用程序体系结构·应用程序集成·不好的事情·棋盘游戏·构建脚本·认证·协作·计算机历史·小组会议·会议·持续交付·新型冠状病毒肺炎·数据分析·数据库·bet188足球·字典·分布式计算杂志·娱乐·多样性·文档·领域驱动设计bet188足球·领域特定语言·国内·封装·企业架构·估计·事件的架构·进化型设计bet188足球·经验报告·旁白的架构·极限编程·前端·小工具·ieeeSoftware·infodecks·网络文化·面试·语言功能·语言工作台·精益·传统康复·法律·指标·microservices·移动·noSQL·合作对象设计bet188足球·解析器生成器·摄影·播客·受欢迎的·演讲技巧·隐私·过程理论·生产力·编程平台·编程风格·项目计划·招聘·188足球比分直播·188足球比分直播重构的边界·需求分析·ruby·安全·演讲视频·团队环境中·团队组织·技术债务·技术领导·测试类别·测试·thoughtworks·工具·旅行·uml·版本控制·web开发·web服务·网站·写作

2021·2020·2019·2018·2017·2016·2015·2014·2013·2012·2011·2010·2009·2008·2007·2006·2005·2004·2003·2002·2001·2000·1999·1998·1997·1996

所有的内容

最近的变化

如果你想在我发布新内容时得到通知,请订阅我的RSS推特提要。


Ship/Show/Ask:一种现代分支策略

9月8日星期三美国东部夏令时09:43

我已经写过很多关于使用pull请求如何降低集成频率、增加周期时间和阻碍重构的文章。188足球比分直播Rouan Wilsenach成功地使用了一种方法,将变化分类为船/显示/问-使用这个分类来决定是否以及如何使用拉请求。

更多…


我现在在做什么

8月26日星期四美国东部时间12:15

几个月前,我宣布退出演讲。一些人想知道我是否还会继续写作。我确实在那篇文章中说过我是,但我觉得可能有必要多说一点关于我这些天所关注的事情。

更多…


网关模式

8月10日(美国东部时间

我们经常需要访问来自外部代码库的api,而这些外部代码库通常具有与我们不同的词汇表。我发现用网关在我们的代码和外部代码之间转换。

更多…


遗产置换模式

7月20日星期二美国东部时间08:22

我的同事做了很多涉及替换遗留软件系统的工作。我的三位同事——伊恩·卡特赖特、罗布·霍恩和詹姆斯·刘易斯——已经开始收集他们的经验和建议。我们从一个文章概述这份报告列出了成功的遗产转移需要进行的四类主要活动。

更多…


停止说话

6月29日星期二美国东部时间11:02

我个人想谈谈为什么我想放弃谈判

更多…


传播流言蜚语

2021年6月17日星期四美国东部时间10:18

Unmesh Joshi正在完成他关于分布式系统模式系列的另一部分。首先是传播流言蜚语,它使用随机选择的节点来传递信息,以确保信息到达集群中的所有节点而不会淹没网络

更多…