`
experience
  • 浏览: 198521 次
社区版块
存档分类
最新评论

Shooting for Simple Design

阅读更多

摘要:因为项目特别紧张,很久没有时间看书和更新博客了,就像欠了一屁股的债。很早以前(今年二月份)就跟Ron说要把这个系列翻译成中文,一直没有开始。就从它开始吧!

Ron Jeffries是一位资深的程序员。很多人都是资深程序员,但是多数人在他面前都显得太年轻了。他"has been a systems developer for more years than most of you have been alive"(他做系统开发人员的时间比大多数人的年龄都大)。

本系列(我也是边看边翻),讲述了Ron和Chet开发一个项目的详细过程。在邮件列表上有非常多的讨论,如果有可能我也会把讨论的内容贴过来。但是相信我,至少我会把这个系列翻完。

Ron Jeffries
11/28/2006

预算、简单性、TDD、跟踪。Chet和Ron使用了一个比平时运行的项目稍大一些的项目,来看看发生了什么。

原文链接:http://www.xprogramming.com/xpmag/dbcSimpleDesign.htm

提议项目

邮件列表上各位尊敬的对话者有时会觉得我们的回答太即兴或者太简单化了。比如,他们怀疑我们使用很少的Mock对象是因为我们处理的问题太简单。我们要说的是,我们的代码的确不复杂,但那是因为即使是棘手的问题,我们也会写出简单的代码。毫无疑问,答案是就在其中(Doubtless the answer is somewhere in between.)。上周一Chet Hendrickson和我讨论了一个听起来很有趣的问题,这个问题兴许能让我们长时间保持足够的兴趣在上面,还可以写下一些ideas。

通常,这些文章是按照时间顺序发布的。这里,作为开始,我们打破这个规则给你一个机会。我会随后做出解释。

Chet和我周一吃午饭的时候在一起呆了一个小时。我们谈了两件事情,我自己的一些问题和他头脑中的软件程序。我们差不多平分了那一个小时,因为我抱怨起来就很难停住,不过无论如何,这儿头几篇文章就是这15分钟到一个小时的成果。也许是30分钟。时间是很重要的(The time is potentially important.)。

基本的想法是写一个程序分析散弹枪的射击模式。Chet是一个飞靶射手,打得不错(a darn good one),你要做的是从35码之外射击一页纸然后看看结果会告诉你枪怎么样或者你的技术如何。我想你要得到的是一个很对称的模式。中部的密度比周围大,可能集中在目标之上的某一点。

我们的产品是一个基于计算机的服务。人们在纸上射击,把纸交给我们,我们产生计算报告关于枪和他们射击的重要指标。我们假定他们会得到一个多页打印的报告,其中一些是样板文件,另一些则是基于分析做了筛选或者替换的样板文件,还有一页漂亮的图显示和分析这个模式。

故事的想法包括:

  • 数字化一个射击图案,确定所有的洞。
  • 计算这些洞的中心。显示射击的各个区域的射击密度,随机点中心也许还可以确定不正确的簇。
  • 显示很酷的和明显昂贵(obviously expensive)的彩色结果图和灰色的刻度,证明花在这上面的是值得的。
  • Include pictures of what a probable break would look like if hit by shot in each of the various areas. (A central hit destroys the target, edge hits crack it in a couple of pieces, and and expert can tell from the break what part of his pattern hit it.)

我们的主报告包括大约9-18个图片和一些小的段落,有可能放在一个3x3的表格里。我们认为报告应该是PDF格式的,虽然也有可能有一个web表单。眼下,我们考虑它应该是一个邮购服务,包括一个格式化的、包装良好的报告。

上面列出的这些只是我们在半个小时内得出一些构想,我们为这个项目做了一些估计。在下一篇文章中,我们会讲到我们对应估计可以做些什么。这里,我们给你留个课题来估计一下这个项目,记录下你的假设和结果。如果你愿意把它发给我们,完全可以。无论如何,思考一下这个项目的大小,看看你能预估多少东西。

通常,在面临一个项目的时候,人们认为他们应该拥有所有的story,深深的挖掘设计和其它的考虑,查看一大堆的废话然后才能决定这个项目有多大。我们完全不同意,我们会在项目的进展过程中继续讨论这个话题。这里...你的工作是:估计一下这个项目。

请给我们写信(ronjeffries at acm dot org,chet at hendricksonxp dot com, 主题 [ron] Simple Design。这里我要提醒虽然项目都过了很久了,如果你愿意仍然可以写信给他们。)告诉我们你的估计,你还要知道什么等等。随着本系列的进展,也请给我们写信,告诉我们你的发现和你的问题。

谢谢!这一切会越来越有意思!

分享到:
评论

相关推荐

    Simple Shooting Game using JavaScript with Free Source Code.zip

    本项目“Simple Shooting Game using JavaScript with Free Source Code”提供了一个利用JavaScript编写的简单射击游戏,让我们一起深入探讨如何用JavaScript实现这样的游戏。 一、JavaScript基础 JavaScript是...

    免费截图软件(BugShooting) v2.14.4.779 官方简体中文版.zip

    BugShooting 是为软件开发人员以及测试人员的理想工具。BugShooting 为您提供一个简单的方法来创建屏幕截图并将其附加到你的bug跟踪或发行管理系统,如项目以报告bug,或者在视觉上解释了改进建议。 它支持屏幕...

    HP-UX Trouble shooting ppt

    HP-UX Trouble shooting 课程的PPT.各版本通用

    Shooting method.rar_boundary conditions_shooting_shooting matlab

    Solve second order boundary condition differential equation using shooting method

    7702-010 trouble shooting guide

    "7702-010 trouble shooting guide" 指南旨在为技术人员提供一个详尽的框架,帮助他们有效地识别和解决与7702-010相关的各种问题。这个指南可能是针对某个特定的硬件组件、软件系统、网络设备或者是一个特定的技术...

    matlab_shooting

    MATLAB打靶法( Shooting Method)是一种求解常微分方程初值问题的数值方法。它通过将一个边界值问题转化为两个初始值问题来解决,尤其适用于处理具有多个自由参数的问题。这种方法的核心思想是通过调整初始条件,...

    BugShooting

    一款好用的bug截图的工具,可以方便的添加标注、文字等内容

    (Unity源码)投篮小游戏Basketball Shooting Game Starter Kit 1.0.1.rar

    2-93投篮小游戏Basketball Shooting Game Starter Kit 1.0.12-93投篮小游戏Basketball Shooting Game Starter Kit 1.0.12-93投篮小游戏Basketball Shooting Game Starter Kit 1.0.12-93投篮小游戏Basketball ...

    shooting.rar_MATLAB打靶法_matlab 打靶法_shooting method_shooting matl

    shooting 打靶法,MATLAB编程,仅供参考。

    CocosCreator小游戏shooting_Game.zip

    《CocosCreator小游戏开发详解——基于shooting_Game.zip》 CocosCreator是一款强大的2D游戏开发引擎,尤其适合初学者入门。"shooting_Game.zip"是专为学习CocosCreator设计的一个小型射击游戏项目,旨在帮助新手...

    DB Issue Trouble Shooting Guideline 很经典的数据结构资料

    DB Issue Trouble Shooting Guideline 很经典的数据结构资料

    ITM trouble shooting

    ### ITM Trouble Shooting #### 简介与问题确定 在IT管理领域,尤其是对于复杂的监控系统如IBM Tivoli Monitoring (ITM),问题诊断是一项关键能力。本文将基于提供的文档概览,深入探讨其中涉及的关键知识点,包括...

    mpls trouble shooting training

    try this doc,. it has great detail of MPLS trouble shotting techniques

    Mailrouting Trouble shooting lotus domino 8

    Mailrouting Trouble shooting lotus domino 8

    免费的截图软件Bug Shooting 2.15中文版.rar

    Bug Shooting是一款免费的桌面截图软件,支持各种截图模式,截取的图片可以直接发送到内部编辑器中进行编辑,如调节图片大小,添加各种文字和箭头图形等,还能改变图片效果。虽然是免费版,个人用户可以通过免费...

    Unity投篮游戏Basketball Shooting Game Starter Kit

    Unity投篮游戏Basketball Shooting Game Starter Kit Unity精品小游戏源码 , Unity完整项目源码 是Unitypackage包 , 新建空项目直接导入到项目里面就可以运行了,无需其他操作。 适合二次开发和学习使用,都是经典...

    Shooter IO - Multiplayer Shooting Arena - v1.06

    Shooter IO is multiplayer shooting arena game template which integrated UNET for networking Features - UNET Networking integrated - Create game and join via LAN - Host global server and play with ...

    plane shooting

    本文将深入探讨以"plane shooting"为主题的J2ME游戏——"planeshooting"的开发过程,揭示其背后的编程原理和技术细节。 "plane shooting"是一款基于J2ME的飞行射击游戏,它以其简单的操作、激烈的战斗场景和丰富的...

    Throuble shooting

    ### EPON以太网光网络ONU产品失效分析 #### 概述 EPON(Ethernet Passive Optical Network,以太无源光网络)是一种利用点到多点架构的无源光网络技术,它能够提供高带宽、低成本以及灵活的服务部署等优势。...

Global site tag (gtag.js) - Google Analytics