oh yeah, and it goes w/o saying. Always unit test everything. Especially your external libraries, and especially against scenarios that reflects how the controllers are expected to call them. How well this whole re-factor works is hugely dependent on how solid your libraries will be.
Run them thorugh stuff like Codeclimate or Codacy they're great at stomping out unused vars, and enforcing the DRY principal.
I hate making these comments too. We have been trying this https://www.codacy.com/ and it reduced these annoying comments by automating the process. I'm sure there are other alternatives, but that was the one my teammate setup for us
> I don't think I'll need that often, occasionally nice when it's not obvious what's going on of course..
You are right. Since the traces come for free (they are the reason the SA knows that an error can actually happen), I will at least offer the option.
> As for the price, I'm afraid I probably wouldn't buy it personally, I might use it at work though.
Makes sense. Amongst others, my future competitor Codacy offers a free option for open-source projects, I will likely do the same. This could be something for you personal projects.
This is awesome - working through it now.
I've made some of the suggested updates!
https://www.codacy.com/app/bennellick-luke/nimblr/dashboard?bid=3445925
Thanks for making me aware of this :)
Not exactly on the same vein, but automated code review tools might be of help when it comes to improving your skills.
As an example (although I work there), Codacy is free for open source projects, so if you add a link to your open git repository it will come back to you every time there's a new issue with your code.
However, this is mostly targeted at patterns, and not human code review; it's going to let you know about things like performance issues, possible vulnerabilities, styling problems, complexity of code, etc; it's not going to do an analysis of your algorithm and suggest a better approach.
Still, if you're aiming at learning and improving your skills, I'd suggest you give it a go.
Codacy currently supports Ruby, Python, Java, JavaScript, Scala, PHP, CSS and CoffeeScript.
> codacy use pre set tests in code or in codacy itself ?
Codacy analyses your code without any need for you to change it in any way. Just point it to your git repository and you're set; you'll get the power of several great tools gathered and enhanced to analyse your commits and pull requests.
Give it a try: https://www.codacy.com/
Aside from all the other good advice here, and considering that this is just your first Scala program, I highly recommend that you use a Static Analysis tool or even an Automated Code Review system that might be able to point useful stuff to you.
I started with Scala just a few months ago and I fed my first program to Codacy; right away it told me a few things I was doing wrong (coming from Perl, using underscores instead of camel case was one of them).
You also have Codacy https://www.codacy.com/ that I work for. Our objective is to go beyond basic static analysis by helping you tackle your technical debt and save time in each code review. We want to integrate in your current development process and take over the heavy-lifting of configuring all your tools. Discovering advanced performance bottlenecks and security holes is the next step for us.
Yeah, I'm not sure how they get those "hours to fix" metrics from...they're always way to high. It'll show a few hours for something even as simple as a syntax change or removing commented code. I'm more of a fan of how other services (Scrutinizer, Codacy and CodeClimate give you a "grade" on how good the code is and mark the problems with levels under that.
I could see providing some of the time-based metrics based on the commit history vs time the issue was resolved, but even that is pretty subjective...