Очень часто наблюдал за начинающими (неопытными) программистами, что при написании парных элементов, таких как скобки, начало и конец транзакций и остальных подобных конструкций, они пишут их «раздельно». Что значит «раздельно»? Это значит что сначала пишется «открывающий» элемент, после которого пишется некий блок кода, а после этого пишется «закрывающий» элемент.
Наверное, опытный читатель уже догадался зачем парные элементы необходимо писать сразу вместе и представил отрицательные стороны обратного написания, описанного выше. Но для меня всегда было проблемой объяснить программисту зачем же необходимо писать подобные вещи сразу. Аргументы вида «Потом забудешь» не помогали, потому что ответ был «Компилятор/интерпретатор не забудет и подскажет, когда до него дойдёт очередь». А сегодня произошла ситуация, которую я теперь могу смело ставить в пример при объяснении причин, из-за которых необходимо писать парные элементы сразу. Итак, ситуация:
Был некий блок кода, который появилась необходимость обернуть в выполнение в рамках транзакции. Проще простого. Программист сделал, потом сделал что то ещё, после чего начали проверять ряд задач. При проверке выяснилось, что почему то блок кода, который был обёрнут в транзакцию, не работает. Ошибок нет, при отладке все нормально, но в результате как будто и не выполнялся. Через пару часов со словами «О, я понял» было выяснено, что транзакция начиналась, но не заканчивалась, т.е. commit не вызывался нигде, потому что про него попросту забыли после большого куска кода, наверное, отвлекло что-то попутное. А если бы начало и завершение транзакции были написаны сразу вместе, подобной ситуации и не возникло бы.
Вот отличный пример, где Вам не поможет никакой компилятор или интерпретатор. В таком случае поможет лишь внимательное чтение написанного кода.

