refactor重构编程

     

为什么程序员会有最喜欢与最讨厌的编程语言?(earthly)

1754 1 5K
Stack Overflow的2020年调查结果对“最恐惧的编程语言”和“最喜欢的编程语言”进行了排名。这两个排名都来自这个问题:在过去的一年中,您完成了哪些编程,脚本和标记语言的广泛开发工作,并且在.

乱弹马斯克与比尔盖茨两位首富的不同思维模式

2406 4

比尔盖茨在地球范围内搞内卷化,马斯克着眼火星外卷化,这是他们两个方向性最大不同:马斯克和比尔盖茨曾经先后成为过世界首富,但是他们的思维模式不同,比尔盖茨做了很多慈善项目,主要是立足于地球这个边界内,让.

单一责任SRP设计举例 - macerub

1067 1
单一责任/职责原则(SRP):“一个模块应该只承担一个责任”。 示例:客户Customer类。 generateInvoice:计算客户必须支付的金额。  computeDiscount:为客户返回%.

在不了解业务上下文情况下请容忍软件瑕疵Bug - jackhodkinson

1115 1

牢记业务上下文的技术决策建议,业务上下文是唯一的衡量软件质量的关键指标。如果有事情不对劲,软件工程师会感到不安。学生或初级工程师由于不熟悉编程概念而感到不安。渐渐地,我们对更高层次的抽象感到不安:我们.

向微服务数字化转型的方法 -DZone

1159 2K
技术团队和管理层非常热衷于使用一个称为微服务的新流行语。但这涉及转换的成本。您如何进行这种转变?进行转换值得吗?还是继续进行一些修改以继续使用当前方法是否好?您如何决定?从遗留系统本身定义微服务的过程.

满足用户需求的优秀软件的关键是什么 - macerub

1375 2

能够满足用户需求的优秀软件的关键是什么?对我来说,它不是编程语言或框架。它是对业务域以及系统如何在用户上下文中工作的深刻理解。工程学科可以为我们提供帮助。持续交付。当软件始终处于可发布状态时,我们可以.

YAGNI原则是什么? -oliverkumper

2978

YAGNI 是You Ain't Gonna Need It(你不会需要它)的简写,是极限编程的关键原则。YAGNI意思非常简单:仅在您真正需要它们时才去做,而不是在您认为或预见将来可能需要它们时就提.

测试驱动开发(TDD)实战心得 - DeniMoka

1964

熟悉TDD的三个定律这些规则是在实践中使用TDD的基础。它们限制我们一次只更改一件事。他们迫使我们采取步伐!记住并严格遵守这些规则,以便有效地使用TDD!在代码没有通过失败的单元测试之前不要编写任何生.

鲍勃大爷:将if/else中每个条件变为逻辑并列互拆而不依赖执行顺序。

2040 1

当您编写一条if / else语句链时,了解并评估执行时顺序的依赖性是明智的。将每个条件构造为逻辑互斥而非依赖于执行顺序可能是明智的。 新开发人员要学习的第一个概念是if / else语句。if / .

幽默:STUPID原则 - simon

1150

我们听说过SOLID原则,听说过STUPID原则吗?S - Singleton单例T - Tight Coupling紧耦合U - Untestability不可测试P - Premature Opt.

技术债务是对业务功能缺乏真正的理解 -daverupert.com

1219 2

技术负债概念提出者Ward Cunningham认为:长期开发一个应用程序时,我们是通过不断添加功能进行的,但是却从未对其进行重新组织以反映我们对这些功能的理解,那么最终该程序将根本不包含任何理解,因.

幽默图:这是机器人根据经过训练编写的Java代码

1240 2
网友评论:这是机器人为机器人编写的代码,而人类则应为其他人类编写代码! 对于一组固定的值,这将非常快。 说实话,看起来就像初学者的代码一样 我认识编写相同代码的人。 不久我们将为机器人霸主工作 .

什么是设计模式? - macerub

1231

什么是设计模式?设计模式大约在30年前出现。然而,许多人认为他们今天和以往一样重要。首先,什么是“设计”?它是关于软件设计的,而不是关于UI设计的。代码中的所有内容都是设计。从诸如变量名之类的细节到更.

我理解的Clean代码 - macerub

1581 1

什么是清洁代码?正如鲍勃大叔清洁代码书中说:清洁代码的定义可能与程序员一样多。首先,我最喜欢的一位著名作家的话是:“干净的代码读起来就像写好的散文”(@Grady_Booch)。简短的句子说明了一切。.

如何将过程代码变成面向对象的代码? - WLODEK

2447 1 8K
干净Clean代码并不总是面向对象的。有时它将以程序样式编写。哪种风格更好:过程式还是面向对象?我们应该在一定条件下进行选择,以使其易于开发和可读,根据“Clean守则”的原则。下面是过程代码的示例,.

Lambda和清洁代码的一个重构案例 - frankel

1288 1 2K

原代码:List<Person> persons = ...;persons.stream().filter(p -> {    if (p.getGender() == Gender.MALE) {.

幽默:我的代码不是固体SOLID,而是液体LIQUID - ctrlshifti

1268 1

我的代码不是固体SOLID,而是液体LIQUID:Low In Quality, Unrivaled In Despair(品质低劣,绝望无可匹敌)众说纷纭:我的代码是KISSNUWYD:Keep i.

程序员不是在编写代码,而是在解决问题 - LanRaccoon

1197 1

我们是程序员,所以编写代码就是我们要做的工作,不是吗?但是,我们的工作比整天在屏幕前敲击键盘上的按键要复杂得多。如果跳出编程语言,框架和流程的范畴,超出了测试套件、冲刺和Jira的范畴,那么您总会发现.

如何重构上帝式大对象反模式 - Cameron McKenzie

2136 2K

仅仅编写有效的代码是不够的。问题发生时,必须易于维护,增强和调试该代码。面向对象编程如此受欢迎的原因之一是因为它满足了这些要求。但是,当开发人员选择捷径或更多地关注完成工作而不是正确完成工作时,往往会.

Uber开源Piranha:一种自动删除陈旧代码的工具

1315

过时旧代码的一些缺点: 不必要的代码混乱会增加整体复杂性,从而降低开发人员的工作效率 这些标记可以代替其他实验标记 标记过时也会导致错误 未使用的代码以及二进制文件都保留在源代码中 为减轻此类缺陷,U.

Shopify如何使用Strangler Fig模式重构遗留代码中上帝式大对象?- Adrianna Chang

1716 1 2K

大对象散布了代码的坏味道:随着职责和依赖的不断增长,它们变得越来越繁重,要定义它们究竟要负责什么变得更加困难。大对象更难重用,测试也较慢。更糟糕的是,它们花费了开发人员更多的时间和精力来理解,从而增加.

干净代码的几个特点 -Xebia

2255 1 2K

干净Clean代码特点:易于他人使用(直截了当,意图清晰,抽象性好,毫不意外,好名声)-这是最受关注的问题。 它是针对现实世界制作的,即具有清晰的错误处理策略。 它是最小的(做一件事,具有最小的依赖性.

软件质量的认识论:每晚有多少睡眠?你工作愉快吗?这些是最影响软件质量的问题。 - increment

1646 2 2K

研究表明,人为因素最影响我们的工作质量,可是为什么我们会投入更多精力希望通过技术性解决方案解决软件质量呢?假设您经营一个新团队。您可以一刀切地实施任何您想提高人员生产力和减少代码错误的策略。你会做什么.

鲍勃大爷调查提问:两者哪个更昂贵?A.在代码中添加难以更改的功能。B.保持代码足够灵活性以轻松添加新功能。

2005 1

众说纷纭:灵活性可能导致更多的设计时间和复杂性。这个词本身看起来不错,但没那么简单。我现在正在(艰难地)学习到,随着复杂性的增加,维持软件项目中的变化速率变得越来越困难。如果我可以回去一年,我肯定会在.

幽默:一天写了36行代码就很了不起吗? - Coraline Ada Ehmke

2480 5

我:“今天我写了36行非常不错的代码。”兰多:“只有36行?我以为你是个了不起的开发人员。”我:“我写的是正确的36行。众说纷纭:我今天坐在那里想了四个小时。我认为这为我节省了大约6个星期的代码编写时.

KentBeck:“改善架构”比“还清技术债务”可以带来更好的感觉,决定和结果。

2254 1 2K

比尔盖茨说过:人们不会为修复bug付费,只为新功能付钱。技术债务作为Bug产生的根源,技术债务只是针对开发人员而言,如何能做到向最终用户收费?创造新的商业价值?KentBeck提出投资改善体系结构或架.

花费优秀程序员95%时间精力的事情 - MICHAEL JACKSON

1 1521 3

软件开发人员最常犯的错误是:把东西放在错误的地方。将本来应该分离的责任与概念耦合在一起。对我来说,这占据软件开发中95%。只是弄清楚*事物所属的地方。其他观点:1. 我担心开发人员会强调并花费很长时间.

谷歌代码评审指南已经开源

1494

基于长期经验,本节中的页面包含有关进行代码评审的最佳方式的建议。它们共同代表了一个完整的文档,分为许多单独的部分。你不必全部阅读它们,但很多人发现它对自己和他们的团队阅读整套都很有帮助。 代码评审标准.

DDD设计工具:上下文映射器ContextMapper

4144 2 2K

ContextMapper是一个开源工具,提供基于领域驱动设计(DDD)模式的DSL,用于实现上下文映射和服务分解。Context Mapper项目是瑞士东部应用科学大学(HSR FHO)的学期项目的.