Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >敏捷场景,哪个是正确的?

敏捷场景,哪个是正确的?
EN

Stack Overflow用户
提问于 2009-07-15 08:14:54
回答 5查看 632关注 0票数 5

假设您有用户故事1,它需要一个方法的实现:

代码语言:javascript
运行
AI代码解释
复制
public static void MyMethod(string paramA);

有几个类将使用此方法,MyMethod完成用户故事1所需的所有操作,但仅此而已。

您非常肯定,在以后的迭代中,会出现另一个故事(用户故事2),它将要求方法变成:

代码语言:javascript
运行
AI代码解释
复制
public static void MyMethod(string paramA, int paramB);

以前对MyMethod的调用将需要重构,需要添加一些对MyMethod的新调用,以满足用户场景2的要求(只使用paramA调用MyMethod从来没有意义)。

在处理用户故事1时是敏捷地思考:

1)只实现:公共空MyMethod(string paramA);

2)实现: public void MyMethod(string paramA,int paramB);-但是暂时不使用第二个参数。此时调用将0传递给第二个参数。

3)实现: public void MyMethod(string paramA,int paramB);-但是暂时不使用第二个参数。调用传递正确的值(根据用户故事2的期望)

4)实现: public void MyMethod(string paramA,int paramB);-以及所有完全覆盖用户故事1和2的调用。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-07-15 15:44:12

范围的一端是敏捷纯粹主义者,他们坚持一切都可以通过稍后的重构来完成。在另一端是老派的大设计先锋队,他们认为你应该先建立一个完整的建筑,然后再把功能放在上面。你的问题是完美的,因为它暴露了这两种哲学的缺点,如果你盲目地遵循它们的过程。你想要的是最大的效率。所以你需要分析故事1和故事2在你的情况下。您的软件是否可以在没有S2的情况下进行移植,或者您是否只是分散了这些故事来帮助评估和规划呢?如果S1是“添加到购物车”,而S2是“签出”,那么不构建支持S2的接口是愚蠢的,因为没有它您的软件就一文不值。在每个项目中,都有一组已知的“已拥有”功能,使您的软件更有价值。如果您的两个故事都来自该集合,那么我想说,现在就构建支持这两种功能的接口,以后不要浪费时间重构(#3)。

通常,如果S1和S2都在必须设置的集合中,它们将在待办事项上紧密相连。如果不是这样的话,那么你要么拥有大量的必须拥有的东西,要么你的项目在使用敏捷技术时不会获得那么大的优势,或者S2确实不是一个必须拥有的。所以,如果你期望有大量的时间(几个月?)为了在对S1和S2的承诺之间传递,我将使用1参数接口。时间总是造成不确定性的一个巨大因素。

票数 2
EN

Stack Overflow用户

发布于 2009-07-15 09:03:22

只需做一次。

重构很容易,预测未来就不容易了。

该项目可能是罐头,新的更重要的故事可能会出现,这意味着故事2是永远不需要的,当你到达故事2时,你可能会更好地理解问题,并需要重构一切。有无数的理由你可能不需要它。

票数 12
EN

Stack Overflow用户

发布于 2009-07-15 08:26:15

纯粹主义者会说选项1,但我会听取常识,如果你完全相信这是一个要求,那么我会把这一点考虑到你的设计中。

然而,敏捷也是以重构为基础的,所以只要你不公开发布这个界面,如果改变它不会影响我的设计,我就会选择选项1。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1132394

复制
相关文章
Neo4j使用Cypher查询图形数据
原文出处:http://www.yund.tech/zdetail.html?type=1&id=e5a7ca6d4e801e88790cc85b94e1f405 作者:jstarseven  Neo
大道七哥
2019/08/23
2.7K0
Neo4j使用Cypher查询图形数据
Java 使用 Tess4J 实现图像识别
最近需要用Java做一个图像识别的东西,查了一些资料,在此写一个基于Tess4J的教程,方便其他人参考和使用。
全栈程序员站长
2022/07/01
2.2K0
Java 使用 Tess4J 实现图像识别
【Image J】图像的背景校正
答:无论是明场还是荧光场的图像,都可能出现一定程度的光照不均匀。这种不均匀不仅影响图像的美观,而且也会影响对该图像的测量分析(尤其是荧光图像)。如下:
Mark Chen
2021/01/11
5.9K0
【Image J】图像的背景校正
Neo4j常用查询语句
Cypher使用match子句查询数据,是Cypher最基本的查询子句。在查询数据时,使用Match子句指定搜索的模式,这是从Neo4j数据库查询数据的最主要的方法。match子句之后通常会跟着where子句,向模式中添加过滤性的谓词,用于对数据进行过滤。在查询数据时,查询语句分为多个部分,with子句用于对上一个查询部分的结果进行处理,以输出到下一个查询部分。
水煮麥楽雞
2022/11/20
2.7K0
贪心——376. 摆动序列
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。
向着百万年薪努力的小赵
2022/12/02
2930
贪心——376. 摆动序列
摆动序列,也能贪心
力扣题目链接:https://leetcode-cn.com/problems/wiggle-subsequence
代码随想录
2021/11/16
6220
LeetCode 280. 摆动排序
给你一个无序的数组 nums, 将该数字 原地 重排后使得 nums[0] <= nums[1] >= nums[2] <= nums[3]...。
Michael阿明
2021/02/19
6280
小程序图片左右摆动效果
先看效果,实现一个图片左右摇动,在一般的H5宣传页,商家活动页面我们会看到这样的动画,小程序的动画效果不同于css3动画效果,是通过js来完成的,其实步骤很简单,首先创建动画实例,再调用实例来描述动画,最后导出即可。
王小婷
2019/07/15
2K0
小程序图片左右摆动效果
贪心算法:摆动序列
题目链接:https://leetcode-cn.com/problems/wiggle-subsequence/
代码随想录
2020/11/26
8200
Qt官方示例-摆动的文字
QBasicTimer是计时器的低级类。与QTimer不同,QBasicTimer不会从QObject继承。它不会在经过一定时间后发出timeout()信号,而是将QTimerEvent发送到我们选择的QObject。这使QBasicTimer成为QTimer的更轻量级替代。主要用于高度优化或性能要求较高的应用程序(例如嵌入式应用程序)。
Qt君
2020/02/24
1.8K0
图像文字识别(四):java调用tess4j识别图像文字
Tesseract-OCR支持中文识别,并且开源和提供全套的训练工具,是快速低成本开发的首选。前面记录过在java中调用tesseract-orc,该方法的原理是通过在java中调用cmd命令行,来执行tesseract,但是该方式需要下载软件,在电脑上安装环境,移植性不高。
全栈程序员站长
2022/06/29
5.4K0
图像文字识别(四):java调用tess4j识别图像文字
LeetCode 324. 摆动排序 II
给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]… 的顺序。
Michael阿明
2020/07/13
7830
LeetCode 324. 摆动排序 II
Neo4j的查询语法笔记(二)
cypher是neo4j官网提供的声明式查询语言,非常强大,用它可以完成任意的图谱里面的查询过滤,我们知识图谱的一期项目 基本开发完毕,后面会陆续总结学习一下neo4j相关的知识。今天接着上篇文章来看下neo4j的cpyher查询的一些基本概念和语法。 一,Node语法 在cypher里面通过用一对小括号()表示一个节点,它在cypher里面查询形式如下: 1,() 代表匹配任意一个节点 2, (node1) 代表匹配任意一个节点,并给它起了一个别名 3, (:Lable) 代表查询一个类型的数据 4, (
我是攻城师
2018/05/14
4.9K0
​LeetCode刷题实战376:摆动序列
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/09/17
3140
​LeetCode刷题实战376:摆动序列
Leetcode|中等|序列|376. 摆动序列
1 贪心算法 class Solution { public: int wiggleMaxLength(vector<int>& nums) { int preDiff = 0, curDiff = 0; int count = 0; for (int i = 0; i < nums.size(); i++) { if (i == 0) { count++;
SL_World
2021/09/18
2250
neo4j︱Cypher 查询语言简单案例(二)
版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/79850412
悟乙己
2019/05/26
2.2K0
neo4j的一些查询操作
查询操作系统版本为“2.6.29.1”的DTU设备具有的漏洞 MATCH (s:dtu)-[p:操作系统版本]->(o)<-[:操作系统版本]-(l:loophole) where o.label =’2.6.29.1’ return l
opencode
2022/12/26
9510
neo4j的一些查询操作
maven中slf4j+log4j的使用
0.背景 参考这篇 Springboot中slf4j+log4j2的使用 1.导入pom <!-- 日志相关 - Start --> <!-- slf4j --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </d
玖柒的小窝
2021/09/14
1K0
Neo4j 查询已经创建的索引与约束
在Neo4j 2.0之后为cypher语法增加了一些类似于DDL的语法,能够自己创建索引,约束等等。
用户3148308
2018/09/13
2.1K0
Neo4j 查询已经创建的索引与约束
​LeetCode刷题实战324:摆动排序 II
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/07/29
2110

相似问题

Zoho发票API不工作

110

JSON/EJSON错误w/ Stripe API -In发发票Web钩子事件

10

与ZOHO发票的集成

22

使用Stripe通过web钩子原谅发票

10

小发票api卷曲请求

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档