On Monday, 23 December 2013 at 21:34:34 UTC, John Carter wrote:
So I resolved to learn D, and try code as idiomatically as I could.

So here is a trivial module that encodes and decodes roman numerals.

https://bitbucket.org/JohnCarter/roman/src/9ec5b36b9973426f35b0ab9dfd595cb3b305e39e/roman.d?at=default

I also attempted to do it in "Best Practice Test Driven Development" form
with commits on every change.

So you can see the blow by blow history of how it grew.

I would welcome any critique, advice, flames, recommendations, etc. etc.

Thanks for your help and patience with various stupid newbie questions I
asked in the process!

Overall, I say it's not bad. I just have a few comments on your coding style.


Be consistent with your opening braces. Personally, I always place it on the next line, regardless if it's a function or something else.

unittest
{
}

instead of:

unittest {
}


The standard in Phobos is that 1 tab = 4 spaces. Otherwise, when using spaces to align code, make sure it's consistent and everything lines up. (lines 145-155)


There are a series of unittests which could be merged together. Keep the line comments to keep different tests separate, but there's no need to have multiple unittests which contain nothing more than a few simple asserts. Or as bearophile suggested, use an in-out table. Besides for grouping things together and making your code more organized, it's better for those of us who use IDEs, so we can collapse the unittest with a single click.

Reply via email to