Tying up loose ends at the end of the day feels nice. Completing a task, committing my work, and shutting my laptop leaves me with a satisfying sen...
For further actions, you may consider blocking this person and/or reporting abuse
I often struggle with a piece of code in the day and then first thing in the morning am able to solve it easily.
Great idea. Reminds me of something Earnest Hemingway said:
So it seems you're in good company!
Thanks, Chris! Love that quote. It's hard to stop when things are going good but it can be great for maintaining momentum.
Or when it's starting to go bad but you know it'll be fine when you revisit it with fresh eyes. The worst time is 1am when things seem hopeless.
Writing notes to yourself through tests, great idea!
Thanks! That's the idea. When I leave myself notes in the form of tests instead of prose, I'm less likely to come back to them the next day and wonder what I was thinking. (Although I've written some pretty confusing tests, too 😉 )
Should I try ending today with a failed production deployment for a great day tomorrow? :)
That would certainly help to focus your attention on one thing to start the day! Why don't you give it a shot and let us know how it works out? 😉
I will keep you in the loop
That's an interesting idea, Nick. Maybe I'll try it myself..
How do you keep yourself from trying to make the test pass at night?
Trying to solve it and leave no loose ends is very tempting...
And also, do you use TDD or BDD?
Thanks!
It can definitely be tempting to tie up all loose ends at the end of the day. I've found that shutting down my laptop and cleaning up my workspace right after I've written the failing test can help me move on.
I do use TDD pretty regularly, and this idea has fit well within the red-green-refactor cycle for me.
I'll try that :)
Which languages do you work with? do you use any unit testing/mocking frameworks?
I work mostly with Ruby and JavaScript. I use RSpec for most of my Ruby testing, including unit tests. I haven't done much unit testing in JavaScript, but I'll test interactions with JavaScript in the browser using Capybara and ChromeDriver.
Sounds interesting :)
Any suggestions for mocking frameworks for the server side?
I generally try to avoid mocking whenever possible.
When I'm testing requests to external services in Ruby, I'll use VCR and WebMock so that my test suite doesn't need to make HTTP requests, and when I'm testing how an application handles webhook events, I'll write fixtures to fake the payloads of incoming requests. Very occasionally I'll reach for the mocking built into RSpec for other purposes.
But for the most part, I tend to avoid mocking.
Why do you tend to avoid mocking?
When it's feasible, testing the real system rather than mocks gives me more confidence that the thing I'm testing actually works.
I understand what you mean, but mocks can help you test more cases, thus you can be confident that the thing you're testing works on edge cases too, don't you think?
Yes, I do this sometimes. It's a good reminder about what you were working on. I often also stick invalid code into the source, so my compiler helps remind me where I was. Such as
!!!!!!!!!!!! argh, xVal isn't right here
That's a really great idea! Usually I love the closure of having all my tests passing once I'm done for the day... but I'll often have to remind myself what I want to do next, which is hard when you just start off the day and have no momentum yet.
It's indeed a way to make sure you can start tomorrow on a roll, but what if you have a policy that demands a building solution every time you commit? For continuous delivery, such a thing is very important. You could let a failing test only be a warning upon build, but the question is whether that is a good idea.
I don't commit until I've made the test pass. That means I'm leaving unstaged changes on my laptop many nights. If you're not comfortable with that, you could also try stashing your changes, or committing your changes and amending the commit before pushing it.
I like this concept of ending things and starting new ones in the middle of the day.
It gives you that boost early in the morning to finish up what's left.
I can relate
What a great idea!