标签: 编程风格

重构指南

重构是一种规范化的技术,用于重构现有代码库,在不改变其外部行为的情况下改变其内部结构。其核心是一系列保持行为的小型转换。每个转换(称为“重构”)作用很小,但一系列这样的转换可以产生重大的重构。由于每次重构都很小,因此出错的可能性较小。每次重构后,系统都能保持完全工作状态,从而降低了系统在重构过程中严重损坏的可能性。

作者:Martin Fowler

阅读更多…

指南

编程风格 极限编程 重构

高质量软件值得付出代价吗?

软件开发项目中一个常见的争论是,是花时间提高软件质量,还是专注于发布更有价值的功能。通常,交付功能的压力主导着讨论,导致许多开发人员抱怨他们没有时间处理架构和代码质量。这场辩论是基于这样一个假设:提高质量也会增加成本,这是我们的共同经验。但与直觉相反的现实是,内部软件质量消除了减缓新功能开发速度的障碍,从而降低了增强软件的成本。

作者:Martin Fowler

2019年5月29日

阅读更多…

文章

编程风格 生产力 项目计划 技术债务

重构的工作流程

重构已经发展成为一种众所周知的技术,大多数软件开发团队至少声称都在定期进行重构。然而,许多团队并不了解重构可以使用的不同工作流程,因此错过了将重构有效地纳入其开发活动的机会。在本演示文稿中,我将探讨各种不同的工作流程。我希望它能鼓励团队将重构更深入地整合到他们的工作中,从而形成设计更好的代码库,使添加新功能变得更快、更容易。

作者:Martin Fowler

2014年1月8日

阅读更多…

信息演示

敏捷 编程风格 重构 信息演示

Web 应用程序安全基础

现代 Web 开发面临着许多挑战,其中安全问题既非常重要,又常常被忽视。虽然威胁分析等技术越来越被认为是任何严肃开发的必要条件,但也有一些基本实践是每个开发人员都可以而且应该作为理所当然的事情来做的。

作者:Cade Cairns 和 Daniel Somerfield

2017年1月5日

阅读更多…

文章

编程风格 安全

面向领域的 Observability

在我们软件系统中,Observability 一直很有价值,在这个云和微服务时代更是如此。然而,我们添加到系统中的 Observability 通常级别较低,技术性较强,而且似乎常常需要在代码库中充斥着对各种日志记录、检测和分析框架的粗糙、冗长的调用。本文介绍了一种模式,可以清理这种混乱,并允许我们以一种干净、可测试的方式添加与业务相关的 Observability。

作者:Pete Hodgson

2019年4月9日

阅读更多…

文章

持续交付 编程风格 应用程序架构 测试

重构访问外部服务的代码

当我编写处理外部服务的代码时,我发现将访问代码分离到单独的对象中很有价值。在这里,我将展示如何将一些凝固的代码重构为这种分离的常见模式。

作者:Martin Fowler

2015年2月17日

阅读更多…

文章

对象协作设计 编程风格 重构 应用程序架构

要明确

通常,设计技术用于使系统更加灵活,但最终却变得更难使用。其中一个原因是,在设计中经常会忘记显式性。

作者:Martin Fowler

2001年11月

阅读更多…

ieeeSoftware 编程风格

使用元数据

您可以使用基于元数据的方法来消除繁琐的面向数据任务的痛苦。

作者:Martin Fowler

2002年11月

阅读更多…

ieeeSoftware 编程风格

何时创建类型

关于何时为值创建新的用户定义类型(或类)的指南。

作者:Martin Fowler

2003年1月

阅读更多…

ieeeSoftware 编程风格

Beck 设计规则

Kent Beck 在 20 世纪 90 年代后期开发极限编程时,提出了他的四条简单设计规则。我这样表达它们。

作者:Martin Fowler

2015年3月2日

阅读更多…

bliki

极限编程 编程风格 重构

代码异味

代码异味是一种表面迹象,通常对应于系统中更深层次的问题。这个词最初是由 Kent Beck 在帮助我编写重构一书时创造的。

作者:Martin Fowler

2006年2月9日

阅读更多…

bliki

技术债务 编程风格 重构

命令查询分离

“命令查询分离”一词是由 Bertrand Meyer 在他的著作“面向对象软件构造”中提出的——这本书是面向对象早期最具影响力的面向对象书籍之一。(第一版是具有影响力的版本,第二版也不错,但你需要在健身房锻炼几个月才能举起它。)

作者:Martin Fowler

2005年12月5日

阅读更多…

bliki

API 设计 编程风格

组合正则表达式

编写可维护代码最强大的工具之一是将大型方法分解成命名良好的较小方法——Kent Beck 将这种技术称为组合方法模式。

作者:Martin Fowler

2009年7月24日

阅读更多…

bliki

编程风格

数据块

每当将两个或三个值收集在一起时——将它们变成一个 $%#$%^ 对象。

——我(用声音说更有趣)

这是我最喜欢的重构书籍中的代码异味之一。当你经常看到相同的几个数据项一起传递时,你就会发现它。start 和 end 是一个很好的例子,说明数据块想要成为一个范围。通常,数据块是没有人想过要变成对象的原始值。

作者:Martin Fowler

2006年1月5日

阅读更多…

bliki

坏东西 编程风格 重构

设计耐力假说

精心设计软件值得付出努力吗?

作者:Martin Fowler

2007年6月20日

阅读更多…

bliki

生产力 技术债务 过程理论 演进式设计 编程风格

不可测试

(这是对你的词典的补充。)

不可测试(形容词):不可测试的软件。

作者:Martin Fowler

2005年3月16日

阅读更多…

bliki

词典 测试 坏东西 技术债务 编程风格

函数长度

在我的职业生涯中,我听到过很多关于函数应该有多长的争论。这是一个更重要的问题的代表——什么时候我们应该将代码封装在它自己的函数中?其中一些指南是基于长度的,例如函数的长度不应超过一个屏幕。有些是基于重用的——任何使用多次的代码都应该放在自己的函数中,但只使用一次的代码应该内联。然而,对我来说最有意义的论点是意图和实现的分离。如果你必须花力气去看一段代码来弄清楚它在做什么,那么你应该把它提取到一个函数中,并根据“什么”来命名这个函数。这样,当你再次阅读它时,函数的用途就会一目了然,而且大多数情况下,你不需要关心函数是如何实现其用途的——这就是函数的主体。

作者:Martin Fowler

2016年11月30日

阅读更多…

bliki

指标 编程风格

四人帮

在我看来,《设计模式》是有史以来关于面向对象设计的最佳书籍——可能是任何设计风格的最佳书籍。这本书对软件行业产生了巨大的影响——看看 Java 和 .NET 库,它们都充斥着 GOF 模式。

作者:Martin Fowler

2004年8月3日

阅读更多…

bliki

编程风格 对象协作设计

自测试代码

自测试代码是我在重构一书中用来指代编写与功能软件相结合的全面自动化测试的实践的名称。如果做得好,这将允许您调用一个命令来执行测试——并且您确信这些测试将揭示隐藏在代码中的任何错误。

作者:Martin Fowler

2014年5月1日

阅读更多…

bliki

敏捷 持续交付 测试 极限编程 编程风格 重构

技术债务

软件系统容易积累障碍——内部质量的缺陷,使得修改和扩展系统变得比理想情况下更难。技术债务是由 Ward Cunningham 创造的一个比喻,它构建了如何处理这种障碍的思路,将其视为一种金融债务。添加新功能所需的额外努力就是偿还债务的利息。

作者:Martin Fowler

2019年5月21日

阅读更多…

bliki

技术债务 编程风格

测试驱动开发

测试驱动开发 (TDD) 是一种通过编写测试来指导软件开发的软件构建技术。它是由Kent Beck在 20 世纪 90 年代后期作为极限编程的一部分开发的。本质上,我们反复遵循三个简单的步骤

作者:Martin Fowler

2023年12月11日

阅读更多…

bliki

测试 编程风格

Yagni

Yagni 最初是一个首字母缩写词,代表“你不会需要它(You Aren't Gonna Need It)”。它是极限编程(Extreme Programming)中的一句口号,经常在敏捷软件团队中使用。它指的是,我们认为软件将来可能需要的某些功能,现在不应该构建,因为“你不会需要它”。

作者:Martin Fowler

2015年5月26日

阅读更多…

bliki

过程理论 项目计划 演进式设计 编程风格


所有标签

API 设计 · 敏捷 · 敏捷落地 · 分析模式 · 应用架构 · 应用集成 · 糟糕的事 · 桌游 · 构建脚本 · 认证 · 协作 · 计算机历史 · 会议小组 · 会议 · 持续交付 · 新冠肺炎 · 数据分析 · 数据库 · 设计 · 词典 · 分布式计算杂志 · 娱乐 · 多样性 · 文档 · 领域驱动设计 · 领域特定语言 · 家庭 · 封装 · 企业架构 · 估算 · 事件架构 · 演进式设计 · 经验报告 · 说明性架构 · 极限编程 · 前端 · 小工具 · 生成式人工智能 · IEEE 软件 · 信息卡 · 互联网文化 · 访谈 · 语言特性 · 语言工作台 · 精益 · 遗留系统改造 · 法律 · 指标 · 微服务 · 移动 · NoSQL · 对象协作设计 · 解析器生成器 · 摄影 · 平台 · 播客 · 热门 · 演示技巧 · 隐私 · 过程理论 · 生产力 · 编程环境 · 编程风格 · 项目计划 · 招聘 · 重构 · 重构边界 · 需求分析 · Ruby · 安全 · 演讲视频 · 团队环境 · 团队组织 · 技术债务 · 技术领导力 · 测试类别 · 测试 · ThoughtWorks · 工具 · 旅行 · UML · 版本控制 · Web 开发 · Web 服务 · 网站 · 写作

2024 · 2023 · 2022 · 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

所有内容