refactor重构编程

     

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

24

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

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

127 1

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

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

202

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

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

164 1 4K

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

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

165 12K

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

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

111

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

Meta:自动清理死代码

177

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

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

118 2K

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

使用Holder类实现通用值对象

437 1 2K

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

幽默:企业软件

417
.

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

320
解决BUG简单直接办法是注销代码,当然你得先定位存在Bug的那段代码,否则只能全部注销,没有代码运行了。.

如何通过80%抽象建模防止单体走向混乱

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

吐槽:低质量代码对业务影响最大

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

如何将核心服务与单体应用解耦?

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

用Rust很难编写出糟糕的代码

468

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

什么是认知重构?

4506 1

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

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

2925 13K

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

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

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

软件开发中业务知识的激活 - Feathers

1228 2K

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

编写易于删除的代码 - ploeh

1270 1 14K
如何编写易于更改的代码?朝更方便地删除代码方向努力。“您可以删除部分而不重写其他部分的系统通常称为松散耦合” - 特福你会认为删除代码是世界上最简单的事情,但事实并非如此。想象一个代码库,其中的依赖图.

处理坏代码的 4 种策略

1353 2K

坏代码时有发生——但你不需要成为坏人来打败它。从更轻松的角度来看,糟糕的坏代码还会产生充足的就业机会: 需要许多优秀的开发人员修复错误的代码。 需要一两个高级开发人员审查代码并确保它不会再次变坏。 可.

Rust能让我写出好的代码 - Reddit

1334 1

Java是 "强类型 "的,但来自java这种督促并没有让我的代码结构变得更好。例如,Java能让你使用UnsignedInteger类型,但人们通常不会使用它。相反,建立“类”的感觉是很麻烦的,有很.

重构:首先要让改变变得容易?

2183 2
First make the change easy, then make the easy change首先使改变变得容易,然后再做改变这句话来自肯特-贝克,他是一位软件开发者,也是极限编程方法的创.

Rust中用元组模式匹配替代if-else

1117 3K

在当前项目(多人游戏服务器)中遇到的常见情况如下: 1)运行多个返回 Result<T, String> 的函数。 2a) 如果他们都成功了,继续走快乐的道路 2b) 如果他们中的任何一个失败了,用他.

deprank:使用PageRank算法查找代码库中最重要文件的工具

998

Deprank 使用PageRank算法在您的 JavaScript 或 TypeScript 代码库中查找最重要的文件。它使用dependency-cruiser来构建源文件的依赖关系图,然后根据它.