Kata-One:超级市场定价

Kata-One:超级市场定价

如下文章摘自: http://codekata.pragprog.com/2007/01/code_kata_one_s.html

        这个kata源于DFW Practioners会议的讨论。问题非常简单:超级市场商品定价

        超级市场有一些东西的价格非常简单:这罐豆价格$0.65。其他的一些价格则非常复杂,例如:

                1. 一美元3个(那么如果我买4个或5个,价格应该是多少?)

                2. $1.99/磅 (那4盎司要花多少钱?)

                3. 买二赠一(那第三个要花钱吗?)

        这个kata不需要进行编码。这个练习主要是体验代表钱或价格不同的模型,以便足够灵活地处理这些价格机制,并且在一般情况下通常也是可用的(在结账,库存管理,订单录入,等等),花点时间考虑一下的几个问题:

                1. 存在部分的钱吗?(也就是非整数的面额)

                2. 什么时候进行四舍五入的舍入?

                3. 如何保持定价决定的审计(你需要吗?)?

                4. 花费和价格是同一类东西吗?

                5. 如果100罐一架的商品使用“buy two,get one free”,你如何估计存货?

        这是一个完美的淋浴时间的kata,但是要小心。有些问题还是有很多细节的。我认为它可能要花费几周的沐浴时间才能考虑清楚所有的可能情况。

目标:

        这个kata的目标是练习实验模型的宽松的风格。尽可能多地寻找不同的方法解决这些问题。考虑每一个的代价平衡。要探索这些模型,最好的技术是什么?重新记录他们?如何可以验证一个模型是合理的?

附录:

Code Kata是什么?

        作为一个组,软件开发者并没有足够的练习。我们的学习大多数时间发生在工作上,这也意味着我们的错误多数是发生在工作中。其他的创造性的职业练习:艺术家拿画盘,音乐家演奏技术片段,诗人不断地重写作品。在空手道中,目标是学习spar或fight,学生时间大部分在学习和修正基础的动作。更加正式的练习被称为kata。

        为了帮助开发者从联系中获得同样的好处,这里集合了一系列的code kata:简单的编制的练习,可以让我们在没有产品环境压力下体验和学习。做这些kata的建议:

                1. 找一个不会被打断的时间和地点

                2. 集中注意力关注kata的关键要素

                3. 记住在做出决策时看一看反馈

                4. 如果有帮助,将你的进程进行记录

                5. 与其他的开发人员进行讨论,但是首先要完成kata

        在这些kata中没有正确或错误的答案:益处源于过程,而不是结果。


自己的解答:



------Andy @ 2013-06-21

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值