This weeks dojo will delve into the other halve of Scala's dual personality, Object Orientation. We will be looking at how objects are created and operated on as well as discovering how Traits can help modularise your code and remove more duplication than Interfaces alone.
- Traits - http://www.scala-lang.org/node/126
- Traits and types blog - http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-5
Funs with Object Orientation
This week you will find 6 tests that you will have to complete as well as then make them pass, though you will find a couple of helper methods that assert some of their functionality. Along with tests there is an Item object hierarchy, a User and a couple of Traits with only the method signatures implemented. The skeleton maven project I have created for the dojo can be found here on github.
You will find that this project now builds with both Maven and SimpleBuildTool. SBT is incredabilly easy to install and it is highly recommended you give it a try as it is the standard Scala build tool.
- SimpleBuildTool install steps - https://github.com/harrah/xsbt/wiki/Getting-Started-Setup
Getting the code
To get started you can go to the repo and fork the project into your own github repository by clicking the fork button on the top right. This is the preferred method as it means we can easily share our solutions with each other but if you don't wish to do this you can create a local copy from my repository by simply executing the git clone command.
- go to https://github.com/leneghan/scala_dojo_03_funswithoo
- click fork button on the top right of the screen
- git clone https://github.com/<GIT_HUB_NAME>/scala_dojo_03_funswithoo.git
Getting started with git
If you dont have git currently installed you can download it here from the git website. When using Git I found this one page cheat sheet useful, it also comes with some pointers about good VCS practice, Git_Cheat_Sheet_grey.pdf
Hi, I would like to join in, but how can people share and discuss their code (where do I find the leaderboard which you mentioned)?ReplyDelete
Ok, I figured out how to see other people's solutions via Github's "Network" tab (I'm not yet very github literate, sorry!).Delete