随着我越来越多地将敏捷思维吸收到我的工作方式中,yagni("你不会需要它")似乎变得越来越重要.在我看来,它是过滤错误的优先事项并决定下一步不会起作用的最有效的规则之一.
然而,yagni似乎是一个在SO处几乎没有低声说过的概念.我运行了强制性搜索,它只显示在一个问题标题中 - 然后是次要角色.
为什么是这样?我是否过高估计其重要性?
免责声明.为了抢先回答,我相信我会反对,让我强调yagni是快速和肮脏的对立面.它鼓励您将宝贵的时间和精力集中在获得您需要的部件上.
以下是一些人们可能会问的非正式问题.
我的单元测试是根据用户要求或框架结构选择的吗?
我是否安装(并测试和维护)仅在那里的单元测试,因为它们不属于框架?
我的框架生成了多少代码我从未看过(但有一天仍然可能会咬我,即使是yagni)?
我花了多少时间来处理我的工具而不是用户的问题?
对编程时,观察者的角色价值通常在于"yagni".
你使用CRUD工具吗?是否允许(不,鼓励)您将其用作_RU_工具或C__D工具,或者您只需要一个或两个时创建四个代码(加上四个单元测试)?
TDD在某种程度上归入了YAGNI.如果你正确地进行TDD,也就是说,只编写导致所需功能的那些测试,然后开发最简单的代码来通过测试,那么你默认遵循YAGNI原则.根据我的经验,只有当我离开TDD盒子并开始在测试之前编写代码,测试我不需要的东西,或者代码不仅仅是通过我违反YAGNI的测试的最简单方法.
根据我的经验,后者是我做TDD时最常见的失礼 - 我倾向于跳过并开始编写代码以通过下一个测试.这常常导致我通过基于我的代码而不是需要测试的要求的先入为主的想法来妥协剩余的测试.
因人而异.