The assignment-of-the-week over my all-too-short thanksgiving weekend was to complete 11 "Wicket Katas." Each "Kata" consisted of making a small change to an existing set of project files. Additionally, we were supposed to time ourselves on how long we took to complete each Kata.
The goal of "<Tech> Katas" in general is to gain expertise in a particular technology (in this case Wicket). While I have some issue with the use of the word "Kata" in this situation, I must say that they were rather enjoyable to figure out, and I feel like I learned a lot of valuable Wicket concepts. <Tech> Katas are excellent exercises for learning basic concepts in a new language, and I would definitely consider using them to teach others.
I ended up working with two classmates to complete the assignment, which worked out well, as we all started out on different Katas, and helped each other whenever we got stuck. It ended up being a small superiority contest, but it was all in good fun.
The Katas:
http://code.google.com/p/wicketkatasglb/wiki/Katas
Kata 1A
~10 mins
I finished this in class, not too difficult.
Kata 1B
The rest of the class period...(~50 mins)
This one was a pain. My environment wasn't configured correctly, and it took forever to finally figure out that I should have ran "ant build" first... I should point out that the actual coding only took about 20 mins to complete. The rest of the time was spent wrestling with Eclipse.
Kata 1C
~2 mins
Trivial. Copied a block of code into my application class.
Kata 2A
~60 mins.
This was a little bit odd. I actually did Kata 3A first, and tried copying my code into this project...it didn't work. It turns out that my approach was too sophisticated for the implementation. I had to get one of my friends to help me. Honestly, I thought this one was a pointless repeat of 3A.
Kata 2B
~90 mins.
Originally, I had a single page with dynamic tags at the beginning and end of the page so that I could simply change the tags based on the current situation. Didn't work. I struggled for an hour trying to get my method calls to work with Wicket's framework. In the end I just created three separate pages and linked them together.
Kata 3A
~30 mins
Not too bad, I had to look up how to do this on Google. At one point the system was changing the variable name for my image from "image.jpg" to "image_en_.jpg" or something similar. I eventually figured it out.
Kata 4A
~10 mins
Easy peasy. Just follow the example and copy paste.
Kata 4B
~45 mins
Seemed simple enough...then I realized there was more going on that I was comprehending. The program mysteriously told me i needed a get() method. I stared it down for a good twenty minutes before phoning a friend. As it turns out I needed to update the Address object... I must say, the Cheeser program is really cool.
Kata 6A
~15 mins
Looked shockingly difficult. The first place I looked was in the CSS files. I tried deleting bits of code, but that didn't do anything. Then I looked in the .html files and found what I was looking for.
Kata 6B
~5 mins
Trivial after doing 6A. I went straight to the FormPage.html file, saw the table structure, and moved the Wicket tag.
Kata 6C
Unfinished
This one sounded scary. I read up on Java Properties, but couldn't figure it out... (By this time I'm feeling totally burnt out, and willing to make do with 10/11).
Total Time:
~317 mins (approx 5 hrs).
There's about two hours of hidden time in there that was allocated to getting the system to pass quality assurance, uploading files, and writing this blog.
Our professor estimated that it would take 11hours to finish all 11 Katas, and he probably would have been right if I didn't have group members to ask for help.
Original Examples:
http://code.google.com/p/ics-wicket-examples/
The Katas:
http://code.google.com/p/wicketkatasglb/wiki/Katas
My Implementations:
http://code.google.com/p/wicketkatasglb/downloads/list (Individual Examples)
http://wicketkatasglb.googlecode.com/files/glb_Wicket_Katas.zip (All Examples)
No comments:
Post a Comment