Компромиссы - большая часть инженерии. Высота против стабильности. Скорость против памяти. Кофе против сна.

У большинства компромиссов есть обоснованное и сложное пространство для принятия решений, которое необходимо тщательно оценить, чтобы сделать правильный выбор. Другие компромиссы, не так много.

В частности, с одним я сталкиваюсь слишком часто, когда инженер-программист печатает. Я увижу вообще не большой код, защищенный ради экономии набора текста. Я всегда нахожу это странным. Как вы думаете, сколько времени вы как программист тратите исключительно на механическое печатание? Я был бы удивлен, если бы я тратил более 10% своего времени на ввод символов в редактор пальцами.

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

Займемся математикой!

Одно нажатие клавиши расходует примерно 1 калорию энергии. Это меня удивило. Я не мог понять, как мой обед из 400 калорий может подпитывать все то, что я печатаю. Потребовалась всего минута, чтобы понять, что пищевой единицей энергии является калория. Capital C Калории на самом деле представляют собой килокалории, что составляет 1000 строчных букв c калорий. Это имеет больше смысла.

Сколько стоит одна калория в долларах США? Моя лучшая оценка составляет около 1/10 пенни за 1 калорию. Это означает, что 100-калорийный батончик мюсли должен стоить около 1 доллара. Это звучит правильно для меня.

Таким образом, стоимость одного только нажатия клавиши для получения пищевой энергии в долларах составляет 0,0001 доллара.

Теперь давайте перейдем к дорогостоящей части: времени. В среднем машинистка может напечатать 33 слова в минуту. Программисты, вероятно, будут в два раза быстрее, но мы будем придерживаться 33.

Средняя длина слова чуть больше 5. Я понятия не имею, как это переводится в программирование, но мы будем использовать 5 для учета всех этих операторов if.

При таких оценках медленный программист может набирать 165 символов в минуту или 9900 символов в час.

Используя относительно высокую зарплату программиста в размере 130 000 долларов в год. Мы можем рассчитать почасовую ставку в 62,50 доллара.

С учетом всего этого стоимость одного нажатия клавиши составляет 0,00631 доллара. Я пытаюсь думать о других расходах. Я полагаю, что клавиатуры нужно менять каждые несколько лет, но это должно стоить почти 0 долларов. Это также предполагает, что все, что вы делаете в течение всего этого часа, это печатание со скоростью не менее 9900 символов в час. Это не оставляет много времени для размышлений, биологии и прочего.

Если сложить стоимость еды и зарплату, общая сумма составит 0,00641 доллара за нажатие клавиши. Давайте немного скорректируем нашу оценку и предположим, что средний программист тратит 25% своего времени на набор текста (опять же, я подозреваю, что это все еще слишком много). Это снижает стоимость до $0,0016025.

Учитывая эту оценку, я не понимаю, насколько эффективным может быть сокращение имени переменной ради экономии ввода.

Я настоятельно рекомендую никогда не принимать решение о кодировании, основываясь на количестве напечатанного текста, который вы сэкономите.