Welcome To Darwinbots > Newbie

Question for the regulars

<< < (8/9) > >>

dragonlordged:
Numsgil, I'm going to start adding some of the stuff you've told me and the stuff I can figure out about the code in as comments, because I have had no luck figuring out how this project works and therefore can't really figure out how to add to it. I'm thinking that by adding more comments at least I can help out anyone who wants to contribute later.

Numsgil:
Sure, sounds like a plan.

...

Not sure if you've ever played with a project that was unit tested like this, but one of the ideas of unit tests is that they are "living documentation" about how to use the code they test.  There isn't really a "program" to run, so traditional methods of wrapping your head around a code base don't really work here.  Trying to think of it in a "top down" manner won't really work.  You have to think about things in a far more modular way.

Speaking of unit tests, if the way in which an individual class should be used isn't immediately clear, consider writing a "use case" unit test as a "living comment".

That said, there is a picture which describes how modules are supposed to fit together that might help things make sense.  You can find it here.  UI.Controls isn't listed, but basically it'll be a sub module of UI.WinForms.

dragonlordged:
That image is quite useful, but I still think several of the modules could do with commenting in their code at least at the top which simply describes what they are supposed to do or what they're for. I mean, just looking at the repository, you'd think that Core is the only folder you need to look in and that all the others just make libraries that add on to the functionality of Core, but that's obviously (to me now) not the case. As a beginning contributor, I have little idea of what to add to and how to add it without more documentation than is available.

From my personal experience, while unit testing is an incredibly useful supplement to documentation and comments, it's not enough on its own.

Numsgil:
No, you're right. The code itself could do with some documenting, particularly at a high level. If you want to add a high level file describing the modules and what ( you think) they do, it could go in that same documentation folder. I'll fill in any gaps or errors if you post an initial draft to that folder.

Mostly I've been doing my best to limit how much of other modules you need to understand to be productive.  I don't want the code to grow to the point where the only way to make changes in one part is to understand how it fits in the whole.

dragonlordged:
Okay, I'll start to work on that later tonight. The only one that I can't begin to understand yet is the Azimuth module. Can you give me a brief rundown so I can get a picture in my head before I start running through the code?

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version