Index of /code/FizzBuzzOverthink

      Name                    Last modified      Size  Description
Parent Directory - _darcs/ 2007-11-07 16:57 - java/ 2007-11-07 16:18 - javascript/ 2007-05-24 09:49 - perl/ 2010-09-16 21:07 - python/ 2010-09-16 21:07 -

The FizzBuzz test was conceived by Irman and posted here.

It was to be used as a method for weeding out applications for developer positions who couldn't code anything and the original test instructions were to:

Write a program that prints the numbers from 1 to 100. But for multiples of three print "Fizz" instead of the number and for the multiples of five print "Buzz". For numbers which are multiples of both three and five print "FizzBuzz".

ANY developer should be able to write a solution to this and many did in the comments of the original post and other posts that referenced it. Unfortunately, as a number of bloggers pointed out, many of the people who rushed to post solutions GOT IT WRONG! Mostly this was a result of just not reading those three sentences carefully enough. I know, you'd think you wouldn't have to re-read those...

The FizzBuzz Overthink began as a response to so many people getting it wrong. It's goal was to answer the question of what would happen if you treated FizzBuzz as if it were a real application for a client. What would it look like if you sensibly designed it as a standard object oriented application with unit tests and full documentation?

Not long afterwards it was realized that the FizzBuzz Overthink would be an excellent teaching tool for introducing people to object oriented design and basic unit testing, because it's a small enough application to easily understand but complex enough to break down into discreet functions. So far we have Java, Perl, Python, and JavaScript implementations. You can download a .tgz file of the latest implementation here or use the urls below with your favorite Source Control Manager.

Future:
It is our goal to, with your help, expand the FizzBuzz Overthink project to include examples from as many languages as possible. If you'd like to help just check out the latest version at the following URLs for your favorite Source Control Managers:

Add a translation of the FizzBuzz Overthink into your favorite language, or a language you think people could use a practical example of and when you're done use the darcs send command to email your patch to masukomi at masukomi dot org. If you think you can improve upon any of the existing implementations please do so. The only requirements for any new language are that it must include unit tests, your language's equivalent of Java Docs, and be written using what most would consider good/best practices for that language.


Legal:

FizzBuzzOverthink (this package) and all the files contained herein are 
Copyright (c) Katherine Rhodes ( masukomi at masukomi dot org )
and distributed under the following license unless specified otherwise.

License:
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

Exclusions:
Everything under the perl/lib directory is owned and originally distributed by 
other people except for the files in perl/lib/FizzBuzz which are subject 
to this license.