68得票10回答
SOLID与YAGNI对比

我经常听到的不遵循SOLID面向对象设计原则的最常见论点之一是YAGNI(尽管争辩者经常没有这么说): "把特性X和特性Y放在同一个类中没问题。这很简单,为什么要增加一个新类呢(即增加复杂性)?" "是的,我可以直接把所有业务逻辑放入GUI代码中,这样会更容易和更快捷。这将永远是唯一的GU...

32得票14回答
你对YAGNI原则的执行程度有多深入?

我正在开发一款面向企业市场的全新革命性Web应用程序。当然,许多人之前也认为他们的Web应用程序是革命性的,结果发现它并不是这样的。(或者它确实是革命性的,但业务仍然不好)。 所以我在思考,为了以最低成本找出我的想法是否有吸引力,要遵循极端的YAGNI原则: 没有安全功能(即没有用户等)...

17得票4回答
YAGNI原则和KISS原则有什么区别?

显然,YAGNI和KISS存在语法上的差异,但我看不出它们之间有任何语义上的区别。它们本质上是完全相同的吗?

16得票6回答
YAGNI - 不能被提及的敏捷实践?

随着我逐渐将敏捷思维融入到工作中,"yagni(你不需要它)"似乎变得越来越重要。对我来说,这似乎是过滤错误优先级和决定下一步不需要解决的问题最有效的规则之一。 然而,yagni在Stack Overflow上似乎是一个鲜为人知的概念。我做了必要的搜索,只有一个问题标题中提到它 - 并且只是...

16得票13回答
封装有没有到了荒谬的地步?

在我的软件开发编程课上,我们需要为RSS订阅提供一个"Feed Manager"类型的程序。以下是我如何处理FeedItems的实现: 非常简单和易懂:struct FeedItem { string title; string description; string...

13得票11回答
当编写测试时,YAGNI原则是否也适用?

当我编写代码时,我只会根据需要编写所需的函数。 这种方法是否也适用于编写测试? 我应该为我能想到的每个用例提前编写一个测试以保险起见,还是只在遇到用例时编写测试?

10得票8回答
何时可以违反YAGNI原则?

YAGNI原则指的是,在需要之前,不应该专注于提供功能,因为“你根本不需要它”。 通常,我倾向于使用常识而不是规则,但有时候,如果你有充分的理由,即使可能永远不会用到,过度设计或未来保障也是有用的。 目前我手头的实际情况大致如下: 我有一个应用程序,必须运行在一个简单的专有通信协议(OS...

9得票3回答
《实用程序员》的作者是否忘记了YAGNI原则?

《程序员修炼之道》被很多人强烈推荐。我刚刚读完它,我能理解为什么人们会推荐它,尽管我想指出,《代码大全》涵盖了几乎相同的内容,但更加深入。 然而,有一件事让我感到困扰的是作者从未提到过灵活性、概括性和留有余地的缺点。这些概念都非常好,但是YAGNI(你不需要它)原则呢?它可以防止开发人员浪费...

9得票5回答
编写只做一件事情并且做好的程序。

通过封装、依赖注入、最小知识原则和你不会需要它,我可以理解“做一件事”这个部分;但是如何理解第二部分“做好它”呢?以同一YAGNI article中提到的完整性概念为例: 例如,在允许添加项目、删除项目或修改项目等功能中,可以使用完整性来推荐“重命名项目”。 然而,我发现这样的推理很容...

9得票10回答
国际化推迟真的更加昂贵吗?

大多数人都认为将现有应用国际化比从头开始开发一个国际化应用更加昂贵。 这是真的吗?或者说,当你从头开始编写一个国际化应用时,做I18N的成本只是被分摊到多个小任务上,并且没有人感到整个国际化任务的重压? 你甚至可以声称,成熟的应用程序在项目历史中删除了许多行代码,并且如果国际化是作为事后想...