views:

207

answers:

3

Jeff Atwood and Robert "Uncle Bob" Martin have both blogged about the virtues of code katas.

I was wondering:

  • Has anyone found a code kata for web development?

I'm currently develop websites with ASP.NET, ASP.NET-MVC, and jQuery; but I suppose that a good web development code kata could be language-agnostic.

A good web development code kata might include:

  • Hosting a "Hello World" page
  • Creating a master page
  • Creating a menu
  • Creating CRUD pages

And eventually progress to more advanced tasks that incorporate:

  • jQuery (or any JavaScript Library)
  • AJAX
  • Flash or Silverlight
+3  A: 

I don't know any CodeKatas for web development, but I favorited What should a developer know before building a public web site?.

This is a great thread, very helpful and since it has a lot of concepts we need to know when developing websites. Maybe is a good resource for a possible CodeKata for web development? (it would be difficult to create one though, since in web development we have to worry from User Experience/Interface to SEO).

GmonC
+2  A: 

You can always invent your own.

I've used the five-dice version of Zilch (Greed, Zork, 10,000; it's a simple dice game known by many names.) See http://en.wikipedia.org/wiki/Greed%5F%28dice%5Fgame) for some rules.

The use cases are relatively simple. There's a form that presents the dice, the user picks dice to freeze and dice to roll. There are moderately complex rules for what scores and what does not score.

Sometimes the turn is over because the person does not want to roll. Sometimes the turn is over because the roll of the dice lead to an "losing" state.

I think this is a nice code kata because it doesn't do much, doesn't involve an extensive transactional database, but it does involve a few things of moderate complexity.

You can't do it in day, so it needs be broken into pieces for Code Dojo.

S.Lott
+1  A: 

I'm not sure any simple exercise is ever going to teach maintainability and scalability, but build a Cookbook application, and you can try out most anything on the user-facing parts of a web application.

Recipes are the main data object, but you also have login/logout, security, forms, lists, as much AJAX as you'd like, and quite a bit of data modelling if you choose to go that route; ingredients, users variations, shopping lists, etc.

It's a very, very simple model to understand where you can go very deep in any direction while building it to learn a new web framework/language/tool/library/etc.

Dean J