Collected feedback
jamiebrynes7 opened this issue Β· comments
First of all, this was a great introduction to Rust. It goes through many topics in a logical and easy to follow order, the in-code explanations are great, and the koans
tool is nice for managing the tasks. Great work!
Here's my feedback from running through it, in no particular order:
-
I'd put the requirements at the top of the README, rather than after the setup.
-
Providing a link to https://github.com/rust-analyzer/rust-analyzer or https://intellij-rust.github.io/ for users to setup syntax hightlighting and auto-completion may be nice.
-
The Koans CLI color codes don't render nicely on Windows. This isn't a huge problem, but makes the output a little more awkward to read. I tested this on Powershell and in Git Bash through https://github.com/microsoft/terminal and neither worked. (I didn't test WSL).
Example
Jamie in build-your-own-jira-with-rust on ξ my-solution [?] via π¦ v1.42.0 β― koans --path jira-wip β[3mEternity lies ahead of us, and behind. Your path is not yet finished. πβ[0m Do you want to open the next koan, (00) greetings - (00) greetings? [y/n]
-
It seems that the Koans CLI swallows the test output and prints it at the end (if there's a failure). This does mean that the first run looks as if the program has hung (I actually killed it once or twice before looking at the source to see what it was doing). Printing some output to the effect of "Running tests..." may help flag users as to why its taking a bit longer.
-
Related to the previous point, the test/build output from Koans has the colors stripped which makes it a little harder to grok.
-
There's a small disconnect between the CLI 'opening a koan' and what I need to do next. I expected a file to open or a path to be printed. After the first one, I understood what was going on though.
-
There's a missing link here https://github.com/LukeMathWalker/build-your-own-jira-with-rust/blob/master/jira-wip/src/koans/01_ticket/05_ownership.rs#L71
-
In
01_ticket/06_traits
we encountermatch
for the first time. Perhaps linking to the documentation for this would be helpful. (https://doc.rust-lang.org/book/ch06-02-match.html or https://doc.rust-lang.org/book/ch18-03-pattern-syntax.html) -
There's commented out code https://github.com/LukeMathWalker/build-your-own-jira-with-rust/blob/master/jira-wip/src/koans/02_ticket_store/01_store.rs#L18 that doesn't appear to serve a purpose?
-
Is it intentional that https://github.com/LukeMathWalker/build-your-own-jira-with-rust/blob/master/jira-wip/src/koans/02_ticket_store/01_store.rs#L48 initially returns
TicketStore
? -
In
02_store/08_delete_and_update
I had to add an artificial delay (as in, athread::sleep()
) intoupdate(...)
to ensure that the updated timestamp is different from the created timestamp. Otherwise the timestamps were exactly the same. -
The test
description_cannot_be_longer_than_3000_chars
is flakey since we generate a string between 3000 and 10000 characters so you could get unlucky and get 3000 exactly which passes the validation and fails the test. I am, apparently, unluckyπ (I can raise a quick PR for this one).
For a one click rust vscode setup I've done a bundle that includes RA + test runners + debuger: https://marketplace.visualstudio.com/items?itemName=gilescope.rust-in-peace
Thanks a lot @jamiebrynes7, I think I have addressed all your points with the exception of the improvements to the koans
CLI.
Working on that next
I believe that the issue with colours on Windows should be fixed now - can you give it a go @jamiebrynes7?
Yup all fixed! Nice job
Colours for cargo
's output should be there as well now
Just tested that - looks great!
I think all the feedback in the issue has been addressed so I'll close this