A tutorial to help you write comprehensive unit-test suites.
Let’s imagine we just wrote a method calculating distance between two points on our planet. And let’s imagine we want to test it as well as possible. How do we come up with test cases? And what exactly do we need to test?
Continue reading “Writing Good Unit-Tests: A Step By Step Tutorial”
Code reviews are a great practice to apply in software development. The approach is very simple: when you’re done with your code, give it to someone else to look at and leave comments.
Despite of its simplicity, it brings considerable advantages. Here are 7 reasons why this practice is useful.
Continue reading “Code Reviews Are Awesome, Here Are 7 Reasons Why”
How I sensed a bug while not seeing any, and what came of it.
Today I found a place on our website where we display the size of a recreational area in square kilometers.
I cannot fully explain what happened next, but I had a hunch something must be wrong with this feature.
Narrator: there was.
Continue reading “Little Geo Stories: Square Miles”
A little story about a very common mistake when working with Earth coordinates around 180th meridiane.
Several days ago, I got a bug request: no airports around a certain hotel were being displayed.
There certainly were some airports relatively close to the hotel, and judging by all conditions they should have been there. This hotel’s page could boast with very good air connections, but it did not.
Like a proper seasoned Geo-expert should do in this case, first thing I did – was checking the location of the hotel.
Of course, it was located on Fiji.
The problem immediately became absolutely clear to me.
Continue reading “Little Geo Stories: A Tale Of 180th Meridian”
If you ask me, what’s a single most important thing in writing good code, I’d reply: “Modularization and Dependency Management”.
Well, actually, that’s two things. Sorry about that! But they are two sides of the same coin, and you can’t have one without the other, if you want to your code to be nice and clean.
Continue reading “Modularization and dependency management: three steps to better code”
Are you a perfectionist? That kind of a person that can never say “I’m done”, “it’s ready” or “let’s ship it”? The one who can’t release the new feature unless it’s polished and perfect?
Continue reading “Prioritization for Perfectionists, or: How I Learned to Stop Worrying and Love the Non-Perfection”
Some time ago I started a pet project: a small Android app for placing the words cutely.
I first published it in October, and yesterday it reached 50,000 installs. I still can’t believe this number! In the beginning I wasn’t getting any downloads, and now!.. I’m very happy with how it goes.
But today, something happened. Someone emailed me and asked me to send them the source code. They wanted it so badly, they emailed me several times, and even called me on Hangouts. It seemed urgent! They needed this code! Now! This instant!
But, wait… why would someone need someone else’s source code?
I asked that person and found out: they wanted to present it as their graduate work in the university.
Continue reading “Someone Asked Me To Send Them My Source Code”
You’re a manager, and your developer tells you they want to refactor something? You’re a developer, but don’t know if you should resist the sudden urge to refactor that ugly piece of code you just saw? Here’re true stories that will help you decide.
Continue reading “Refactoring: Luxury or Necessity?”
So, how do you usually code?
You have a task: add this thing to that place. First thing you do – you find where “that place” is and how to get “this thing”. To do it, you read the code.
Reading happens every time you need to do something, doesn’t it? If something doesn’t work, or you need to optimize it, or add one more tiny thing, you search for the place in the code and read it again. And again.