http://codekata.pragprog.com/2007/01/code_kata_backg.html#more
背景
你如何成为一个伟大的音乐家?它有助于知道理论,了解仪器的机制。它有助于有才华。但最终,伟大来源于实践,运用理论一遍又一遍,使用反馈每次都变得更好。
你如何成为一名全明星运动的人吗?显然,健身和人才帮助。但是,伟大的运动员,每天花几个小时,练习。
但在软件行业,我们采取培训,在理论和开发商把他们直接到深底,工作的一个项目。这就像服用了一批适合孩子们,告诉他们,他们有四个季度击败红人队(嘿,我们通过管理目标,对吧? ) 。在我们的软件上做的工作我们的执业,这就是为什么我们做的工作失误。我们需要找到从行业分割的实践方式。我们需要练习。
CodeKata :
这一切是怎么开始的说明
MoreKata :
有时候, “卡塔”是不太合适的词;空手道使用其他技术来教了。
卡塔
是什么让一个很好的练习?你需要时间不中断,你想尝试一个简单的事情。你需要,因为它需要尝试,因为很多次,很舒服犯错误。您需要每次都去寻找反馈,这样你就可以改进。需要有没有压力:这就是为什么它是很难在一个项目的环境来练习。它有助于保持它的乐趣:让小步前进时,你可以。最后,你会认识一个很好的练习,因为你会出来它知道更多的时候比你走了进去的
卡塔代码是企图把实践这个元素的软件开发。一对打比赛是练习空手道,你重复的形式很多,很多次,使得每个小的改进。后面的代码对打比赛的目的是相似的。每个人都是一个短的锻炼(可能是30分钟到一个小时之久) 。一些涉及编程,并且可以在许多不同的方式进行编码。有些是开放式的,并涉及想着后面的编程问题。这些都是不太可能有一个正确的答案。我每个星期左右,添加一个新的卡塔。投入一些时间在你的手艺和尝试。
如果你想讨论卡塔,这里有一个邮件列表,在这里一个wiki 。但是,请记住,卡塔的点没有到达一个正确的答案。问题的关键是你前进的道路上学习的东西。
KataOne :超市定价。定价看起来容易,但浅尝辄止,有一些有趣的问题需要考虑。
KataTwo :空手道印章。二进制印章算法是相当枯燥的。直到你有使用五种完全不同的技术来实现它。
KataThree :有多大,有多快?快速估计是无价的,当谈到使设计和实现决策。这里有一些问题让你改过的信封。
KataFour :数据需要改写。实现两个简单的数据提取例程,看看他们有多少共同点。
KataFive :布鲁姆过滤器。实现一个简单的基于哈希查找机制,并探讨其特性。
KataSix :字谜。在字典中找到的所有字谜组合。
KataSeven :检阅。什么是我们的代码看起来像经过挑剔的目光,以及我们如何能够使我们的眼睛更加重要?
KataEight :目标。什么样的影响做我们的目标,对我们编写代码的方式?
KataNine :结帐。回到超市。本周,我们将实现一个结帐系统,处理定价计划,如代码“苹果花费50美分,三个苹果花费1.30美元。 ”
KataTen :哈希与类。是否总是正确的使用(例如)类和对象来构建复杂的业务对象,或夫妇简单的结构(如哈希散列)做的工作?
KataEleven :整理出来。只是因为我们需要梳理的东西并不一定意味着我们需要使用传统的排序算法。
KataTwelve :畅销。考虑的前十大畅销书名单为高容量的网络存储的实现。
KataThirteen :计数线。计算代码行数的Java源并不像它看起来那么简单。
KataFourteen :卦。用卦分析生成文本可以让我们体验不同的启发。
KataFifteen :玩弄位。声东击西,发现在某些比特序列模式。
KataSixteen :业务规则。你怎么能驯服野生(和改变)设定的业务规则?
KataSeventeen :更多的业务规则。指定订单的整体处理的规则可以是复杂的,尤其因为他们往往需要等待周围的事情发生。
KataEighteen :依赖关系。让我们写一些代码来计算的依赖的东西,如类在程序之间如何传播。
KataNineteen :文字链。编写一个程序,解决了字链拼图(猫 - >摇篮 - >点 - >狗) 。
KataTwenty :克朗代克。试验各种启发式玩游戏克朗代克。
KataTwentyOne :简单列表。玩的简单列表不同的实现。
还有的地方(除了在本博客的评论) ,您可以讨论代码卡塔。
第一个是YahooGroups邮件列表,在PragProg维基第二索引页。
我不得不承认,我很紧张做这个。我的希望是,人们会工作的卡塔以讨论它们之前一段时间,多好处来自于小写字母“a -哈! ”一路上时刻。因此,这将是有趣的,看看如何(如果)讨论开发。
发表于上午09时03分|固定链接