Иванчо
Иванчо — приказки за програмисти…
На Иванчо му дали 10 ябълки.
Той изял 3.
Колко ябълки има Иванчо?
“7”, нали? Логично!
Само че никъде не е казано дали „изял“ означава, че ги е изкарал от хранилището или само си е пуснал заявка към услугата “Ябълки”.
Извод — проверявайте дали операцията наистина е commit-ната!
На Иванчо му дали 4 ябълки.
Той ги нарязал на 2 равни части.
Колко ябълки има Иванчо?
“4”, нали…
Ама Иванчо броил „парчетата“, не „ябълките“.
Извод — дефинирайте единиците и не смесвайте “брой” с “състав”!
На Иванчо му дали 6 ябълки.
Той изял 2.
Колко са му останали?
“4”.
Да, ама Иванчо направил отчисление по индекса 2… и изтрил и третата.
Извод — внимавайте с границите на масивите!
На Иванчо му дали 3 ябълки и казали:
„Само за тест — да не ги ядеш.“
Иванчо: „Спокойно, няма да ги ям… ще ги симулирам!“
На другия ден дошли да ги проверяват.
Ябълките ги няма.
Оказало се, че Иванчо си симулирал, че ги е ял… и на реалните също им е пуснал същата функция.
Извод — не тествайте продукция с тестови данни… и не викайте методи с увереност, когато не разбирате страничните ефекти!