Читать «Bash IT Happens Истории ## 9501 – 9600» онлайн - страница 19

Bash.org.ru IT

#9559: Оскорбление корпоративной этики

12:45 13.07.2012, IT happens

Лежит у меня 40-мегабайтный хард от WD с серийником 0000016. Года три назад была у него обнаружена интересная привычка: всуе обругаешь WD — не включается неделю, потом нормально. До следующего оскорбления корпоративной этики.

Наводки? Нет, он лежал на дощечке, так как компьютер был занят комбо-приводом под 5,25" и 3,5" дискеты. Единственное соединение — шлейф и питание от БП. БП работает до сих пор без нареканий. Обитатели дома? Нет, диск стоял в сторонке, пыль никто не протирал.

Единственное объяснение — мистика. Винт старый, из первой партии. От возраста у него настолько ослабли некоторые контакты, что поддерживались только квантовой связью, намоленной радостными мотивированными сотрудниками завода в первый день работы, и при её ослаблении он «глох». Мысли о том, что компания плоха, преобразовывались в радиоволны и улавливались чем-то в устройстве, внося помехи в нежные квантовые связи. Они нарушались, хард вис.

Может, вся суть «мистики» и «эффекта присутствия» в плохих контактах и маломощных резонансных наводках, «ремонтирующих» их?

#9560: Жизнь, Вселенная, индусы и всё такое

12:45 13.07.2012, IT happens

Последних лет десять я занимаюсь SAP. Практически вся прикладная часть системы доступна разработчикам конечного пользователя в исходных кодах. Язык программирования ABAP/4, правда, несколько специфический. Говорят, похож на Кобол. Если сравнивать с популярными ныне языками, то у меня он более всего ассоциируется с Бейсиком.

Есть в ABAP два вида подпрограмм: формы и функции. Форма имеет локальную область видимости (хотя её можно вызвать извне, но тогда нужно указать имя главной программы, в которой размещён код формы). Функции имеют глобальную область видимости, но должны быть обязательно приписаны к какой-нибудь группе функций. SAP может поставляется в разной комплектации. Набор установленных компонент (и, соответственно, доступных групп функций) может отличаться. Из-за этого имя вызываемой функции передаётся как литерал и, если оно указано неправильно или в системе не установлен компонент, содержащий нужную группу функций, выяснится это только в процессе вызова. Разработчики различных модулей вынуждены делить между собой общее пространство имён функций, а также других объектов. Наверное, они как-то координируют имена всех создаваемых функций. Но, скажем так, у них с этим есть некоторые трудности, потому очень часто в разных модулях есть функции, выполняющие схожие действия, а имя функции содержит посторонние символы. К слову, у конечного пользователя тоже есть возможность разрабатывать свои функции. И чтобы хотя бы устранить проблемы с пересечением имён с объектами клиентов, SAP не создаёт свои объекты с именами, начинающимися на букву Z — такие имена зарезервированы для разработчиков конечного пользователя, а клиентам не рекомендует создавать объекты, начинающиеся не на букву Z.

Конкретный пример. Во многих случаях необходимо определить количество дней в данном месяце (ну или последнюю дату в данном месяце). Похоже, что для каждого модуля SAP разработчики пишут эту функцию отдельно, причём не по одному разу. Беглый поиск дал сорок два различных варианта от SAP плюс ещё, конечно, ZMONTH_LAST_DATA — вариант от разработчиков конечного пользователя. Система SAP изначально немецкая, но индусский код попадается и тут. Вот несколько примеров.