我已经开始阅读《实用主义程序员》,我很喜欢它,也在学习堆形式,但我很难理解跟踪项目和原型之间的区别。tracer项目符号是否就像拥有应用程序的所有视图,但还没有添加完整的功能?
谢谢
发布于 2010-10-29 05:44:43
跟踪项目的方法是让某些东西立即工作。在这本书中,他们说:
跟踪器代码不是一次性的:您可以随时编写它。它包含任何一段生产代码所具有的所有错误检查。它根本就不是完全有效的。
在原型可能被丢弃的地方,这不是我在这篇特别的文章中所倡导的。
对我来说,本质似乎是,如果系统中有一些困难的部分,在你花费大量时间支持一个永远无法交付的解决方案之前,试着证明它是可以做到的。
发布于 2013-10-16 23:37:40
我觉得回答一个三年前的问题有点愚蠢(在不同的stackexchange上问这个问题可能会更好),但我认为在描述跟踪项目和原型之间的区别方面仍然有提高清晰度的空间。
首先,它们是不同的东西,有不同的目的。但它们也有相似之处。我将把它们的相似之处描述为突出它们的差异的一种手段。
其中大部分是我自己对概念的理解,所以请仔细阅读。
它们有何相似之处
跟踪项目和原型都用于在新的项目上取得进展。你正在创造一些新的东西;一个令人兴奋但复杂的过程。未知数是未知的。这些功能定义得不够好。您不确定需要哪些组件,也不确定代码必须如何组织。跟踪项目符号和原型的相似之处在于,它们都用于这种情况。另一个相似之处是,它们都专注于快速、高效的结果。
它们有何不同
这两种方法在两个方面是不同的:它们试图探索哪些未知,以及哪些原则指导它们。
区别一:他们探索的是什么
原型探索实现细节。你会使用SQL还是NoSQL后端?快速模拟它们以进行比较。您甚至可以每天向主服务器提供10,000个快门吗?编写一个小脚本,然后试一试。
跟踪项目探索解决方案的可行性。一旦你知道了实现细节,选择一个自包含的组件,并给它一个旋转。构建项目管理应用程序?挑出一件事情,比如待办事项清单,然后开始做。
在产品开发中,你希望尽可能快地迭代,所以你应该快速开始拍摄,看看你是否击中了什么。“跟踪子弹”是股东的反馈!
区别二:原则
指导原型的主要原则是"git 'er done“。它很快,很脏,它会产生一个结果(通常是信息),然后就会被丢弃。不要添加任何妨碍你的东西:获取信息然后离开。
指导跟踪项目的主要原则是完整性和简单性。简单的原因很简单:您希望快速看到结果。完整性稍显棘手。这是对现实的承认:一旦你有了一个“有效”的产品,你必须立即把你的努力放在其他地方。如果产品粗制滥造,或者缺少文档,或者使用了捷径,那么你将在很长一段时间内忍受这些缺陷。第一次就做对了!
你可能会注意到,在一个完整的跟踪项目的想法和另一个实用的程序员的“没有破碎的窗口”的想法之间有很多协同效应。
好处
原型和示踪项目都提供了指导新企业发展的信息。两者都强调专注于快速获得结果。原型允许您探索实现的未知数,而跟踪项目允许您探索可行性的未知数。在任何普通的项目中,您可能会随着进度在两种方法之间来回切换。只要记住它们的好处,并适当地使用它们就行了!
发布于 2013-09-13 00:07:25
我们将从最简单的开始:原型:原型本质上是一种测试用户故事可以做什么和不能做什么的边界的一种方式。本质上,它只是一个虚拟应用程序,其唯一用途是测试给定问题的解决方案是否可行。例如,如果您想要查看您的服务器是否可以一次处理超过1000个请求,您可以编写一个原型。因此,您可以编写一个脚本,将请求发送到您的服务器1000次。功能并不重要,重要的是确保任务是可能的,并且你对如何完成任务有一个清晰的想法。
跟踪项目符号:跟踪项目符号用于“骨架应用程序”,它只是应用程序的外壳,不包含太多(如果有)功能,但遍历程序的生命周期。例如,连接到客户端,连接到数据库,查询数据库(但你并不真正关心数据)。框架应用程序基本上就是应用程序的框架。在开发框架应用程序之后,您可以使用跟踪项目符号来标识应用程序的核心组件。对我来说,这不仅仅是简单地看你想要实现什么功能。作为一个很好的实践,实际上也是我作为一名软件工程师所做的,我认为跟踪项目更多地基于您的单元测试(对于您设计的任何应用程序,您都应该有单元测试)。如果您准确地定义了捕获给定用户故事的所有功能的单元测试,这将是非常重要的跟踪项目符号,原因有两个: 1)当您开始修改代码的框架时,如果您为给定用户故事的每个功能设置了准确的单元测试,那么当您返回修改代码时(这正是您的跟踪项目符号的真正目的),那么您就知道您没有破坏任何当前的功能或已经创建的任何其他功能(因为如果您以某种方式破坏了代码,您的测试将失败)。2)如果您正在构建一个新函数,就像在this article中使用的枪的跟踪隐喻一样,您的测试用例将告诉您,对于给定的函数,您的“跟踪项目”有多准确。因此,如果您打算让某些函数执行特定操作,且在单元测试中对其进行了很好建模,那么如果您的代码没有给出所需的结果,则可以轻松地返回并修改代码以获得更准确的输出。因此,从本质上讲,跟踪项目(封装在您的测试用例中)将告诉您您对软件解决方案的实际准确性。
因此,总而言之,原型是用来测试解决方案是否可行的,Tracer项目符号是用来测试您当前的解决方案对于您想要创建的理想解决方案的准确性。
有关单元测试的更多信息,我建议您查看Test Driven Development (TDD)。
我希望所有这些都是有意义的,并且是有帮助的。如果你有任何问题,请告诉我!乔希
https://stackoverflow.com/questions/4047335
复制相似问题