yagni原则_YAGNI喜欢干吻

yagni原则

有几个首字母缩写词肯定会帮助您审查代码和设计,对其进行改进或确认所讨论的决策,因为它们实际上是设计范例和经过验证的良好实践。 很难将所有这些都组合成一个易于记忆的句子,即使出现的列表并不全面,也不会创建另一个超级首字母缩写或怪胎字母。 但是,在进行重构和评估良好实践时,其中许多值得牢记和考虑。 让我们看一下建议的知名缩写词:

  • SRP单一责任原则 。 您可以将其应用于类,包,组件或子系统,无论您感兴趣的粒度如何,总有一个领域,一个业务需求可以满足,这就是您应该尝试应用的原则:不要弄乱职责,尝试确定并提供单一职责,您肯定会说重用相关类,对其进行测试和对其进行文档化将变得更加容易。 应用SRP,您还将间接符合Demeter定律 ,从而降低了组件之间的耦合(因为您将其限制为一项和仅一项责任)。
  • 不要重蹈覆辙 。 当再次开始重复代码时,或者多次重复同一测试时,请记住该首字母缩写词:它将帮助您实现更多的可重用性和自动化,并与团队成员合作以检查是否具有相同的功能或相似功能。已经可用,并确定重构和改进。 请注意:如果不够干,则可能是湿的两次写入所有内容 )。
  • 保持简单,愚蠢 。 我个人会避免使用最后一个形容词,仅此而已,它是众所周知的首字母缩略词,实际上,您永远都不应过分复杂的设计或代码,要考虑不同的方法和折衷办法,最后在给定系统约束和条件的情况下选择最简单的方法商业规则。 如果您是KISS,则肯定会提高可测试性,并且如果需要,您的代码可能会自行记录下来,将来更容易重构。 您也将自动满足POLA范式,即“最小惊讶原则”,它提供了按用户预期表现的预期行为的合同,接口和组件。 因此,您也将提高可用性。
  • TDA告诉,不要问 。 考虑一个只提供get / set方法的类,实际上是贫血的代码,它没有任何行为,它实际上代表状态的集合,对于ORM实体可能很好(除非您不考虑DDDDomain驱动开发方法),但如果扩展到其他类型的类,则会导致过程代码和交互。 就是这样,TDA帮助您维护面向对象的设计,并根据行为,动词,告诉您要执行给定对象的动作进行思考,而不仅仅是询问值,状态和属性。
  • 亚尼你不需要它 。 而且,如果您现在不需要它,则不应浪费时间和精力。 这是开始添加不要求的功能时要记住的首字母缩略词,这可能是永远不需要的附加超灵活设计,但无疑会增加测试,调试,文档编制以及与客户有关的任何事项的合理性和工作量有关组件。 您确实应该尝试亲吻。

KISS和DRY可能很容易记住,因为它们作为真实词存在,但请设法以某种方式牢记以上所有内容。 在每个开发或设计阶段结束时,一个好的态度是问自己,班级,包装或相关组件是否符合SRP范式,我们是否足够干,我们的KISS等级或是否您有意识地与YAGNI一起玩。 当然,我们通常需要提供比所需要的更多的东西,以具有灵活和可扩展的体系结构,预测可能的切入点并预测业务需求,因此YAGNI并不总是一种好的做法。 TDA在大多数ORM实体实现中也都失败了,但是与设计模式一样,您的经验和项目能力应有助于决定是否可以针对某些组件和场景跳过这些设计范式之一。 而且,您还可以与您的同事一起玩,发明关于他们的DRY态度的奇怪有趣的评论,不过不要对KISS太在意。

参考: YAGNI喜欢我们的JCG合作伙伴 Antonio Di Matteo在Refactoring Ideas博客上的DRY KISS

翻译自: https://www.javacodegeeks.com/2013/07/yagni-likes-a-dry-kiss.html

yagni原则

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值