Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Wandering Warriors #54
Future note: Using Line for a border is bad because Line-s curve. Instead set a background color with Rectangle and canvas.before, and then do whatever you want on top
Lint is failing:
aeros left a comment •
Thanks for the submission @n0remac (and to the rest of the Wandering Warriors team)!
A few general points:
With the more generally applicable part out of the way, I'll proceed with line-by-line code review; noting any sections that I have constructive feedback for. I tried to avoid repeating similar feedback across multiple areas, unless it particularly stood out. Also, I focused my critique more on general Python programming feedback, as my experience with using Kivy is rather minimal.
Note: I plan on doing a follow-up review that will include installing the application and providing feedback from a user perspective (if/when I get the chance). This one is more focused on the implementation details and code review.
SebastiaanZ left a comment
The first thing that's important to me when I look at a commit history is if I'm able to understand what each commit does based on the summary line and the message body of the commit. While there are commits with informative summary lines, there are no commits with an informative message body. This makes it difficult to make out what each commit does without having to study the underlying code that was committed. There are also some commits with generic commit messages like "Update ledger.py", "refresh test", and "fix" that make it more difficult to follow along what's happening to the code base.
When it comes to the commits themselves, I think the history could have benefited from having cleaner commits for each atomic change. It would be a good idea to use tools like
That said, as far as the code jam goes, I'd say this commit history is falls within or is slightly above the average category.
Since developing good commit habits isn't easy, here are a few resources on writing good commit messages:
The README contains basic information on how to install the project using
The main thing that jumps out at me is the lack of documentation. While the code mostly isn't very complex, the lack of docstrings and comments makes it more difficult to understand what's going on on without having to study the code instead of just reading it. Take a method like
I also think the code would benefit from being refactored into smaller units. The
I do like the object-oriented approach; having an Abacus with AbacusColumns and Beads makes sense on a conceptual level and that makes it easier to understand what's going on. There are also a couple of really great ideas and implementations in the code, like the code generating the cuneiform numerals. I really think the ideas and techniques are there, but I do think the readability of the code hasn't received the attention it deserves.
Overall, in terms of code quality and readability, I'd rate this project as below average for the Code Jam. The ideas and techniques are there, but the lack of documentation and readability do have an impact on the overall quality. The commit history is decent and probably on par for the code jam. The README is very minimal.