refactor重构编程

     
  • 拜托:不要像鲍勃大叔那样重构

    53 1 2K

    博客文章“不要像鲍勃大叔那样重构”批评了罗伯特“鲍勃大叔”马丁在其颇具影响力的著作“清洁代码”中给出的重构建议。关键点如下:重构并不总是答案: 鲍勃大叔提倡不断、强迫性地进行重构,这可能会导致过度工程.

  • 三体人:不要重构

    30
    点击图片 完整视频 .
  • VS Code中可要求Copilot重写Java语法

    24

    GitHub Copilot 的众多新兴功能之一就是用于在 Visual Studio Code 中重写 Java 语法的新功能。现在可以在微软基于开源的跨平台代码编辑器中重写你的 Java 代码,这.

  • 代码行数越多可读性越好?

    57 2K

    人们很容易认为最小化代码行数对于提高代码可读性很重要。然而,减少行数并不总是最好的选择。在本文中,我们将解释优先考虑可读性而不用担心代码行数的重要性。代码简洁但难以理解的问题下面的代码是一个函数,用于.

  • 三个因素是软件本质?

    51 2K

    作者在文章中提出了三个因素,用以解释软件的特性,并对软件开发中遇到的困难进行了深入的思考。以下是文章的主要内容概述:三个因素(Triad)1、软件处于边缘状态(Liminal State):软件介于物.

  • 简单是优势,但为何复杂性还受欢迎?

    73 1 4K

    Eugene Yan 撰写的文章《Simplicity is An Advantage but Sadly Complexity Sells Better》,这篇文章探讨了为什么简单性在某些情况下可能.

  • 编程语言中表达式更优于语句

    91 1

    表达式应该优于语句:这才是编程语言设计的更简单方式!有些编程语言(如 Lisp 和 OCaml)只有返回值的表达式,而其他编程语言(如 Java 和 Python)既有表达式,也有不带返回值的语句。这.

  • 如何判断自己是否是一名优秀开发人员?

    61

    如何知道您是否是一名优秀的开发人员,这相当简单:您收到一个问题——一个商业问题或一个科学问题。你看看问题所在。你会想出如何用你的知识解决问题。你解决问题。如果你每天都能重复这个过程,并且偶尔会出现一些.

  • 为什么开发人员痴迷于“关注点分离”?

    155 1

    高级开发人员经常提到以下三件事: DRY Clean架构 关注点分离 这其实是一种宗教,教条主义。就像盲人摸大象一样,只有摸过大象才知道它有多少个部位,有多少个值得关注的地方,然后才能分离这些关注点。.

  • JetBrains推出类似Copilot的IDE内AI助手和AI服务

    239

    只需在聊天中提出问题,人工智能助理就会自动根据项目上下文中的必要细节对您的询问进行补充。无需复制和粘贴代码片段,只需给 JetBrains AI 下达任务,如 "解释打开文件中的代码 "或 "将 My.

  • 编程经验:上拔if、下压for

    185 1 4K

    “push ifs up and fors down”是代码结构的经验法则, 将 if 条件向上推和将 for 循环向下推: 尽可能将 if 条件移出函数并移至调用代码中。这集中了复杂的控制流,并且更.

  • 无头组件:一种构建 React UI 的模式

    214 12K

    随着 React UI 控件变得越来越复杂,复杂的逻辑可能与视觉表示交织在一起。这使得很难推理组件的行为,难以对其进行测试,并且需要构建需要不同外观的类似组件。无头组件提取所有非视觉逻辑和状态管理,将.

  • NASA 向 120 亿英里外的航天器发送了软件更新

    135

    旅行者 2 号距离地球超过 120 亿英里,正在穿越星际空间。在近 50 年的旅程中,探测器看到的宇宙范围比我们以往任何时候都多。现在,NASA 已经完成了Voyager 2的关键软件更新,这将有助于.

  • Meta:自动清理死代码

    209

    Meta 的系统代码和资产删除框架 (SCARF) 有一个用于识别和删除死代码的子系统。 SCARF 结合了程序的静态和动态分析,从业务和编程语言的角度检测死代码。 SCARF 自动创建更改请求,删除.

  • 迁移:唯一可扩展的技术债务解决方案

    134 2K

    我参与过的最有趣的迁移是 Uber 从 Puppet 管理的服务迁移到完全自助式的供应模式,在这种模式下,公司的任何工程师都可以通过两次点击启动一项新服务。他们不仅可以,而且还做到了,在服务完成时,每.

  • 使用Holder类实现通用值对象

    461 1 2K

    假设我们有一个简单的Holder类,它包装了T类型的值。我们可以这样定义它:public class Holder<T> {    public T value;    public Holder(T.

  • 幽默:企业软件

    432
    .
  • 幽默:解决BUG简单直接办法是注销代码

    345
    解决BUG简单直接办法是注销代码,当然你得先定位存在Bug的那段代码,否则只能全部注销,没有代码运行了。.
  • 如何通过80%抽象建模防止单体走向混乱

    738 9K
    熵是一个普遍法则:如果不重新投入能量,一切都会趋于无序。软件也不例外。当进化发展受到时间和/或预算的限制时,系统就会变得“单体”。单体架构通常是对不一致抽象的意大利面条的委婉说法。Gusto已经建立了.
  • 吐槽:低质量代码对业务影响最大

    472
    对 39 个专有生产代码库的定量研究结果:开发人员花费更多的时间来解决低质量源代码中的问题。对于类似复杂性的更改,低质量代码的更改实现时间平均要长2倍以上。代码质量仍然是一个抽象的概念,无法在业务层面.
  • 如何将核心服务与单体应用解耦?

    407 5K
    与许多其他产品一样,WeTransfer最初是一个小型单体应用程序,但很快就变成了一个拥有太多责任和贡献者的大型单体应用程序。发布新功能变得越来越困难,技术债务也在增加。这就是为什么我们开始将一些核心.
  • 用Rust很难编写出糟糕的代码

    486

    "坏代码无处不在。Rust让坏代码变得更难。Tangram Vision正在全心全意地拥抱Rust。嗨,我是布兰登-麦纳尔,Tangram Vision公司的首席执行官和联合创始人,这是一家感知传感器.

  • 什么是认知重构?

    4811 1

    认知重构、或称重新构思问题(Reframe the Problem):是指从不同的角度来看待当前的情况。重构背后的基本理念是,一个人的观点取决于他所处的框架(背景上下文)。当框架被改变时,意义就会改变.

  • 使用Rust和Axum实现整洁代码 - PropelAuth

    3026 13K

    在《Clean Code》一书中,我最喜欢的部分之一是看到一个代码片段开始时很粗糙且难以管理,然后看着它迭代改进。在这篇文章中,我们将做同样的事情,但特别使用 Rust 和 Axum 的接近真实世界的.

  • 如何在不重构的情况下将单体拆分成微服务?

    1743 1 2K
    微服务在过去几年获得了很大的普及,并且对我作为全栈开发人员的工作产生了很大的影响。但这些年来,我从未对单体失去信心。微服务带来了很多额外的复杂性,在我所见的大多数情况下,这些复杂性并没有超过它们带来的.
  • 软件开发中业务知识的激活 - Feathers

    1263 2K

    使用系统不仅仅是编写代码,它是主动知识的生成。 在这篇文章中,Michael Feathers描述了这个概念,以及如何使用它来影响组织决策:就其核心而言,软件开发是一个知识生成过程。当我们思考这到底意.