Одна из самых бесячих вещей — когда кто-то вбрасывает непонятный код и спрашивает, что он выведет. Откуда я знаю, что он выведет? Запусти и посмотри. Еще лучше исправить код, чтобы он был понятен сразу.

Я еще могу понять, если это какой-нибудь сишный код, оптимизированный по самые помидоры, чтобы умещаться в кэше процессора. Это чужой монастырь, и там свои погремушки. Но когда это обычный бизнес-код типа “принять две мапы и взять наибольший ключ”, оправданий быть не может.

Почему-то мало кто понимает: писать непонятный код легко, а понятный — трудно. На это уходят годы практики, нужно пройти много ситуаций, чтобы понять, какой код и при каких обстоятельсвах понятен. Вываливать непонятный код — то же самое, что мочиться в штаны. Нужно тихо решить проблему, а не тыкать ей в лицо.

Вообще, угадывание — худшее, что есть в айти. Когда угадываешь, фактически ты на дне. Ты исчерпал все нормальные варианты, ну или их не было. Должна быть легкая возможность запустить код — привет, программисты без репла. Должны быть тесты, линтеры, логи, метрики, бенчмарки, сбор ошибок и так далее.

Угадайка — это билет в проигрыш, иначе быть не может. Да, бывают истории, когда человек раз — и решил сложную проблему, не имея никаких улик. Но это ошибка выжившего: на каждую такую историю приходится тысяча других, когда человек просидел выходные, решая проблему брутфорсом — и на двадцать пятой итерации что-то помогло. Я бы не рассчитывал на такую удачу.

Короче, видишь плохой код — исправь, не гадай.