Вагиф Абилов (object) wrote,
Вагиф Абилов

"Закон произвольных пределов"

Larry Osterman пишет:

"We were futzing with the TV yesterday and Steve Ball noticed that the volume control on the TV goes from 0 to 63. We both saw that and laughed. Our best guess is that some engineer specified that the volume control should go from 0..99 but wrote it as 0x00..0x63."

На что Eric Gunnerson ответил Законом произвольных пределов:

"Eric's Law of Arbitrary Limits

If you are designing a piece of tech gear - be it hardware or software - and you need to choose an arbitrary limit or range for something, make sure the limit is either 2^n or 2^n - 1.

The majority of the developers who use your product will convince themselves that you've chosen that limit for some well-thought-out reason, such as the internal data structure of your product, rather than just choosing a number because. They will speculate on why you chose that particular number, and you won't spend your time justifying the limit.

And they will be happy that they understand "the secret" behind why you chose such a strange number..."

Задавая размер буфера памяти, я всегда стараюсь выбирать степень двойки (или степень двойки минус один). Причем желательно, чтобы показатель степени сам был степенью двойки. Так же как и показатель показателя степени. Случалось, впрочем, и по-другому. Однажды я правил код, написанный другим разработчиком. Там был декларирован буфер памяти размером в 100. Реально требовалось меньше, но разработчик выбрал 100 как круглое число (я бы выбрал 0х100 или на худой конец 0х80). Пребывая в дурацком настроении, я исправил 100 на 124, приписав в комментарии, что размер буфера - 100 плюс НДС, который в Норвегии тогда был 24%. Прошло несколько лет, я уже не работал в той фирме, и мне пришло письмо от бывшего коллеги. Он написал, что исправил мой код. В связи с увеличением НДС до 25%. Теперь в программе был декларирован буфер в 125 байт.
  • Post a new comment


    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.