SOLID原则编程指南

     

LSP-Liskov替代原理 - deepdive

1453

Liskov替换原则是SOLID的一部分,该缩写缩写总共捆绑了5条设计原则。它通常与干净的代码相关联。但是到底是什么,对您来说重要吗,您甚至应该关心吗? 它是什么?如果S是T的子类型,则可以用类型S的.

YAGNI原则是什么? -oliverkumper

2963

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

经验分享:干净整洁代码(clean code)的特点 - oliver

3530 1

干净的代码很重要,干净的代码可以帮助其他人理解您的代码,但是干净的代码也很主观!我想分享给您我的看法,它是由多年的开发人员领导技术团队领导经验和团队合作而成。干净的代码可以帮助人们理解代码。根据大多数.

幽默:STUPID原则 - simon

1141

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

什么是无副作用的函数方法?如何取名? - Mario

1747 1
函数名称应描述函数所做的所有事情。换句话说,功能不应隐藏副作用。这符合“最小惊喜原则”。但是,有时候这并不容易。下面函数名词名副其实吗?  众说纷纭:它会返回一个Cusomter,但是如果没有可用的C.

鲍勃大爷:SOLID概念解释

1629 2 2K

SOLID原则与90年代(甚至更早于20世纪90年代)一样,在今天同样重要。这是因为软件在这些年中并没有发生太大变化:因为自1945年Turing编写电子计算机的第一行代码以来,软件并没有发生太大变化.

我理解的Clean代码 - macerub

1565 1

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

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

1250 1

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

高聚合低耦合 - theregister

1760 1

我们都喜欢内聚,讨厌耦合(高聚合低耦合),关于内聚和耦合的标准建议是,设计应努力使内聚最大化并最小化耦合。这是一个很好的口头禅,但是在没有很好地理解真正意图的情况下,这常常是一种误导,或者被认为是学术.

决定项目成败的三件事 - 企业工艺

1556 1 4K
以下三点使您成功完成任何项目的90%的方法(不考虑可能的组织问题): 跟随YAGNI和KISS YAGNI代表“您将不再需要”,并主张不要花时间在目前不需要的功能上 KISS致力于使其余功能保持简单 .

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

2126 2K

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

可重用性是一个谬论 - UWE FRIEDRICHSEN

1900 3K

多年来,可重用性/可复用性是软件架构设计中的一个圣杯。关于可重用软件模块的讨论在1970年代初得到了发展。例如,1974年史蒂文斯,迈尔斯和君士坦丁(Stevens,Myers和Constantine.

SOLID的教条主义 - Matthias

1335 1

大多数人进行SOLID软件设计讨论时都会很快变糟。我们最终为单一职责的“实际含义”而争辩或纠结,由于“开放/关闭”,我们某种程度上又需要抽象基类,并且由于“依赖倒置”,我们还向实体添加了接口。除了使您.

不要在REST API中公开您的JPA实体 - Thorben Janssen

2240 1 3K

在REST API中公开实体,还是使用DTO类?(banq注:如果了解单一职责或DDD和Clean架构,基础设施应该和业务逻辑分离,API JPA等属于不同的基础设施,应该都和领域对象分离)这些问题以.

GRASP 之创建者Creator模式 - Kamil Grzybek

1364

问题:谁创建对象A?解决方案:如果下面情况其中一个为真,则为B类分配创建对象A的责任(越多越好) - B包含或复合聚合A  - B记录A  - B密切使用A  - B具有A 的初始化数据 例子:pub.

比SOLID更重要的与DDD设计相关的GRASP原则 - Kamil Grzybek

2 3260 3 7K

我最近注意到很多注意力都集中在SOLID原则上。这是非常好的事情,因为它是面向对象设计(OOD)和编程的总体基础。对于面向对象语言的开发人员,SOLID原则的知识是编写具有良好质量特征的代码的要求。关.

鲍勃大叔:SOLID原则适合函数编程吗?

1168

当然,函数式程序员需要分离职责和使用者,防止串扰,他们希望尽量减少受更改影响的模块数量。他们希望建立并遵守可靠的接口合同。他们希望避免依赖于他们不需要的模块和资源。他们当然希望高层政策能够独立于低层细.

Michael Feathers:编程的艺术

1 926

编程是一次只做一件事的艺术.

领域知识与SOLID单一责任原则的解释

1336 1 4K

单一责任原则规定一个类或函数应该只有一个改变的理由。本文介绍了为什么理解域对于了解如何实现SRP很重要。SRP是SOLID Princples最难理解的原则,因为每个人对它都有不同的解释。我将尝试解释.

Java的SOLID编程原则 - Filippo Buletto

1500 2 9K

SOLID阐述了五种设计原则,可帮助开发人员轻松扩展和维护软件:S - 单一责任原则O - 开放原则L - Liskov替代原理I - 界面隔离原理D - 依赖倒置原则单一责任原则一个类应该有一个,而.

SOLID原则的坚实指南| Baeldung

1305 1 11K

在本教程中,我们将讨论面向对象设计的SOLID原则。首先,我们将首先探讨它们出现的原因以及为什么在设计软件时应该考虑它们。然后,我们将概述每个原则以及一些示例代码以强调这一点。SOLID原则的原因SO.

什么是GRASP模式?

4436 3 11K
GRASP模式(一般责任分配软件模式)描述了对象设计和责任分配的基本原则和模式。 确定需求并创建领域模型后,如何将方法添加到Class类中,并定义对象之间的消息传递以满足要求。GRASP模式是一种学习.

对于Pipe管道之爱 - jessfraz

1161 3 2K

我最常用的shell命令是"|"。这称为管道。简而言之,"|"允许一个程序(左侧)的输出成为另一个程序的输入(在右侧)。这是一种将两个命令连接在一起的方法。例如,如果我要运行以下内容:echo "he.

好的代码很容易删除!

1687 4K

编程是从浪费生命中学到的可怕教训,编写易于删除但不易扩展的代码。“每一行代码都是在没有理由的情况下编写的,有自己的弱点,并且偶然间会被删除” Jean-Paul Sartre的ANSI C编程。编写的.

复制粘贴比依赖更好

1 2712 2

人们过于害怕代码重复,过于憧憬可复用可重用的美好,导致对代码重复发起了一场神圣的战争。如今人们提出了不同的意见,在Twitter上引起了一场争论:“我呼吁结束针对代码重复的神圣战争。我们让年轻的开发人.

以JiveJdon案例说明对象职责和SOLID原则应用

19 6077 5 2K

最近我和oojdon讨论给帖子加上浏览阅读次数这个功能,起初我们并没有从职责角度来考虑阅读次数这个功能,就简单地在Service中获得Thread方法时,添加一些代码,用来统计次数。因为我们这时重点是.

OSGI模块化的真相

7 4849

OSGI带来了模块化的讨论,原来我们认为架构是基于组件的架构,Modularity & Architecture(模块化和架构)一文谈论了基于模块化的架构,这不仅让我个人有些疑惑,组件不等于模块化?组.

系统领域对象设计,希望大家探讨

10 1687

本人在做邮件消息发送程序,目前可以按2种方式发送消息,1.internet email2.站内消息于是定义了一个Message接口,以及EmailMessage和站内消息(StationMessage.

暴露与封闭的问题

4 1066

最近自己构思一个web项目,在做DAO层的时候,想做成对上层(业务核心层)只暴露接口,但是接口的实现都是在DAO层里做,DAO层可以理解成一个独立的项目,也就是实现是封闭在这个层次中的,但是不太清楚J.

你好,banq,关于一个问题

1 676

你好,你说OO的核心思想是封装和分派,其中我对这个分派理解不是很深,你能给我讲讲吗?另外:  你对面向对象的设计有什么好的看法,你认为应该怎么样设计,才算是好的OO设计?  在OO设计中,重点要把握好.