草庐IT

反模式

全部标签

读程序员的制胜技笔记03_有用的反模式(上)

1. 教条1.1. 一成不变的法则1.2. 这些东西会遮蔽我们的双眼,你坚持相信的时间越久,你被遮蔽双眼的程度也就越深2. 质疑所有教给你的东西2.1. 它们有多么有用2.2. 使用它们的理由2.3. 使用它们的好处2.4. 使用它们的代价3. 反模式3.1. 不良实践3.2. 如果你愿意使用它们,受到一些难听的批评也是理所应当的,但这并不意味着我们应该谈虎色变4. 若无损坏,亦可破坏4.1. 不惜任何代价避免代码重构4.1.1. 你所做的每一个更改都有可能带来代码从头来过的风险,因为对于一个本身运行正常的业务,对它进行更改,这个行为本身就是错误的4.1.2. 缺陷本身代价不菲,而修改已成为新

REST API设计模式和反模式

RESTfulAPI已经成为构建现代网络应用的事实标准。它们允许一个灵活和可扩展的架构,可以很容易地被广泛的客户端所消费。然而,设计一个既健壮又可维护的RESTAPI是很有挑战性的,特别是对于刚入行的开发者。在这篇文章中,我们将探讨一些常见的RESTAPI设计模式和开发者应该注意的反模式。我们还将提供Golang和OpenAPISchema的代码片段来帮助说明这些概念。一、RESTAPI设计模式1.以资源为导向的架构(ROA)面向资源的架构(ROA)是一种设计模式,强调资源在RESTfulAPI中的重要性。资源是RESTfulAPI的关键构件,它们应该被设计成易于消费和操作的方式。在Golan

java - 将属性文件值与数据库中的数据耦合是一种反模式吗?

我正在开发一个应用程序,其中在属性文件中定义了一些配置值,其值或有效范围在某种程度上取决于数据库中存储的数据。出于某些原因,这似乎是错误的,但我正在努力为这个或任何可能表明这是不好的做法的已发表文章找到一个名称。谁能给点建议? 最佳答案 你的痛苦有一个名字,它就是耦合。属性文件——我收集的是服务器配置的一部分或与应用程序捆绑在一起——与数据库耦合。数据库中的更改将波及到属性文件。这不是最糟糕的耦合——hell圈是Pathological/Content耦合——但耦合仍然存在。 关于jav

从DevOps实践落地的角度谈谈“流程”和“规范"的反模式

最近在经历的一些事情,让我突发灵感,觉得要写点关于DevOps体系建设过程中的“流程规范”,记录下来。如何解读"流程规范"谈到DevOps落地,无一例外都会提“流程规范“,我想没有人会反对,甚至会”不放在眼里“,因为概念本身没有什么晦涩难懂。可是一到落地,好像就是另外一番场景,“一地鸡毛”,“形同虚设”,”无人问津“,”无人知晓“,”面子工程“等等状况历历在目。首先,很多人把“流程规范”放在一起来看待,甚至认为是等价的,我过去也这么理解。不过,现在我觉得需要区分来看待**流程-Process:(步骤,程序,过程),**规范-specification(规格,规范,明细单,说明书;明确说明)上面

了解云原生反模式

通过了解这些反模式并遵循云原生最佳实践,您可以设计、构建和运营更加强大、可扩展和成本效益高的云原生应用程序。1.单体架构:在云上运行一个大而紧密耦合的应用程序,妨碍了可扩展性和敏捷性。2.忽略成本优化:云服务可能昂贵,不优化成本可能导致预算超支。3.可变基础设施:•基础设施组件应被视为可丢弃的,并且永远不会在原地修改。•未能采用这种方法可能导致配置漂移,增加维护工作并降低可靠性。4.低效的数据库访问模式:使用过于复杂的查询或缺乏数据库索引可能导致性能下降和数据库瓶颈。5.大型容器或臃肿的镜像:创建大型容器或使用臃肿的镜像可能增加部署时间,消耗更多资源,并减慢应用程序的扩展速度。6.忽略CI/C

python - 向构造函数传递太多参数是否被视为反模式?

我正在考虑使用factory_boy库进行API测试。文档中的一个示例是:classUserFactory(factory.Factory):classMeta:model=base.Userfirst_name="John"last_name="Doe"为此,我们需要将first_name、last_name等作为参数传递给__init__()方法base.User()类。然而,如果你有很多参数,这会导致类似这样的结果:classUser(object):GENDER_MALE='mr'GENDER_FEMALE='ms'def__init__(self,title=None,fir

c# - IDependencyResolver 是一种反模式吗?

我正在设计对遗留ASP.NET应用程序的一些架构更改。我为模仿ASP.NETMVC的IDependencyResolver的依赖关系解析制作了一些类的原型(prototype)。我不会发布,因为它的界面几乎相同,但使用的是其他自然语言。我发现它可能被认为是服务位置,而它通常(在某些情况下不完全)被谴责以支持依赖注入(inject)。尽管如此,我找不到任何反对使用ASP.NETMVC的依赖项解析实现的建议。ASP.NETMVC的IDependencyResolver是否被视为反模式?这是坏事吗? 最佳答案 如果您查看signature

c# - IDependencyResolver 是一种反模式吗?

我正在设计对遗留ASP.NET应用程序的一些架构更改。我为模仿ASP.NETMVC的IDependencyResolver的依赖关系解析制作了一些类的原型(prototype)。我不会发布,因为它的界面几乎相同,但使用的是其他自然语言。我发现它可能被认为是服务位置,而它通常(在某些情况下不完全)被谴责以支持依赖注入(inject)。尽管如此,我找不到任何反对使用ASP.NETMVC的依赖项解析实现的建议。ASP.NETMVC的IDependencyResolver是否被视为反模式?这是坏事吗? 最佳答案 如果您查看signature

c# - 什么时候使用反射?模式/反模式

我理解反射API(在c#中),但我不确定我会在什么情况下使用它。有哪些模式-使用反射的反模式? 最佳答案 在我正在开发的一个产品中,我们经常使用它,但反射是一种复杂、缓慢的野兽。不要仅仅因为它听起来有趣或有趣就去寻找使用它的地方。当您遇到无法以任何其他方式解决的问题时(为插件或框架动态加载程序集、程序集检查、在构建时不知道类型的工厂等),您将使用它。查看反射教程以了解它是如何工作的当然值得,但不要陷入“拿着锤子,一切看起来都像钉子”的陷阱。它有非常专业的用例。 关于c#-什么时候使用反射

c# - 什么时候使用反射?模式/反模式

我理解反射API(在c#中),但我不确定我会在什么情况下使用它。有哪些模式-使用反射的反模式? 最佳答案 在我正在开发的一个产品中,我们经常使用它,但反射是一种复杂、缓慢的野兽。不要仅仅因为它听起来有趣或有趣就去寻找使用它的地方。当您遇到无法以任何其他方式解决的问题时(为插件或框架动态加载程序集、程序集检查、在构建时不知道类型的工厂等),您将使用它。查看反射教程以了解它是如何工作的当然值得,但不要陷入“拿着锤子,一切看起来都像钉子”的陷阱。它有非常专业的用例。 关于c#-什么时候使用反射