Про дилетантов

Не так давно на Хабре пробежала статья, в которой некий дилетант кидал камни в огород SAP.

Один из камней:

Почему люди переводившие продукт не понимали русский язык? Потому что даже при перепечатывании русскоговорящий человек должен был усомниться, увидев фразу «Пушномолочная свинья-несушка» — так до определенного времени называлась программа RAIMEWMS (сейчас название уже исправили). В оригинале она называется «Eierlegende Wollmilchsau», что переводится как «Мастер на все руки», но умный Magic Gooddy посчитал, что Wollmilchsau – это 3 отдельных слова (Woll, milch, sau) и перевел фразу «Eierlegende Woll milch sau» как «Яйцо укладки шерсти молока свиноматки». Остается только гадать, как это потом превратилось в «Пушномолочная свинья-несушка».

Вот вопрос: кто больший дилетант? Тот, кто сделал такой перевод, или тот, кто кинул камень?

По пунктам:

(далее…)

Куда пристроить модульные тесты в ABAP. Часть вторая. Первые грабли.

Первый шаг сделан. Теперь нужно расширить и углубить наше наступление. Глобальная цель – максимально полное покрытие тестами, в рамках целесообразности происходящего.

Грабля первая. Обработка ошибок.

Допустим, наш ФМ делает не замещение значений, а проверку:

function zfi_bte_00001120.

  if ls_bseg-zuonr eq space.
    message ‘Поле Присвоение обязательно для заполнения’ type ‘E’.
  endif.

endfunction.

Тут есть две проблемы.

(далее…)

Куда пристроить модульные тесты в ABAP. Часть первая. Первый тест.

В умных книгах и статьях много про это написано в целом. Но вопрос по части специфики в ABAP-программировании раскрыт мало.

ABAP-программирование может быть совсем разным. Но почти в любом большом проекте его можно разложить на следующие кучи:

  • Экзиты (user-exits). Сюда относятся: проверки, замещения, BTE, BAdI, CMOD и подобные способы расширения стандартной функциональности.
  • Собственное приложение. Вполне вероятно, что это будет вариация на тему CRUD.
  • Отчеты. Можно сказать, что отчёт – это такое собственное приложение, но у программ такого рода есть свои нюансы.
  • Входящая интеграция, исходящая интеграция. Мы вызываем, нас вызывают, как это часто не совпадает.
  • Вспомогательные библиотеки. Полуфабрикаты, необходимые для построения готового продукта.

А теперь отдельно про экзиты.

(далее…)

Слишком много скидок

В гуглоплее кроме приложений и игр продают ещё и книги.

Хорошо, есть пара книг, которые я хотел бы прикупить. Вот одна из них продавалась якобы за 938 тенге, но сейчас проходит акция и она уходит за 844 тенге. Вычитаем, делим, умножаем: выходит скидка в 10%. По текущему курсу (3,55) это 264 рубля и 238 рублей соответственно. Не уверен, что именно такой ценник стоит в российском сегменте, но я не знаю как переключиться на просмотр цены в рублях.

Ладно, пойдём в самый известный российский магазин электронных книг.

Лежит без всяких скидок 169 рублей. Ох, маркетологи хреновы, считаем 170 рублей. Магазин понятливый, заодно сразу показывает ценник в тенге: 600 тенге. Делим и получаем курс 3,55. Ну нормально так.

А у автора есть свой собственный магазин электронных книг.

Простой такой магазинчик, без заморочек. И там ценник 140 рублей, что в местных ценах значит уже 500 тенге.

А теперь вопрос: чем сервис гугла лучше местного супермаркета, и чем супермаркет лучше мелкой частной лавочки?

(далее…)

Формирование фоновых заданий и массовый запуск транзакции ASKB/ASKBN

Изначальная постановка задачи сводилась к тому, что в системе необходим еженедельный автоматический запуск транзакции ASKB. Ничего сложного.

Загвоздка первая: транзакция ASKB полно и продуктивно работает только в фоновом режиме. На всякий пожарный случай от греха подальше.

Загвоздка вторая: транзакция ASKB не умеет работать с несколькими БЕ. Экран выбора не оставляет выбора. Если бы на нашем проекте было бы мало БЕ (одна-две-три), то можно было бы просто создать напрямую несколько фоновых заданий и дело в шляпе. Но если у нас сотня БЕ, то уже необходима собственная запускалка, раз стандартной нет никакой.

Отлично, приступаем к реализации.

(далее…)

Самое опасное — между сегодня и завтра

* * *

Снова и снова несколько поколений переживали глупейшую катастрофу, выкрикивая обязательное: "Помни Кумскую долину!"
Каждому обществу жизненно необходим подобный клич, но только в крайне редких случаях используется полный, не приукрашенный вариант, а именно: "Помните-Злодеяния-Совершенные-Против-Нас-В-Прошлый-Раз-Которые-Оправдывают-Те-Злодеяния-Что-Мы-Совершим-Сегодня! Ну И Так Далее! Ура!"

* * *

— А ты что будешь делать? — спросила Сьюзен, схватив два ведра.
— Очень сильно переживать! И это, поверь, совсем не простое занятие!

* * *

Некоторые люди готовы сотворить что угодно, лишь бы выяснить, возможно это или нет. Если где-нибудь в глубокой пещере установить большой рычаг с огромной такой надписью "Конец Света/Включить. ПРОСЬБА НЕ ТРОГАТЬ!", то даже краска не успеет высохнуть.

* * *

— Конечно, — согласилась Сьюзен. — иногда мне кажется, что люди должны сдать соответствующий и надлежащий экзамен, прежде чем заслужить право быть родителями. И я имею в виду не только практическую часть вопроса.

* * *

То, что работает исправно, никто никогда не замечает.

* * *

Очень трудно заставить кого-то, что-то сделать, когда ты самый главный…

* * *

И рука об руку с этим шла способность ассоциировать, делать вещи нормальными. Мир чудовищно изменился, а люди через несколько дней решили, что этонормально. У них есть неподражаемый талант закрывать глаза на очевидное и забывать то, что не подходит. Они сами себе рассказывают небылицы, чтобы объяснить необъяснимое, представить его в нормальном свете.

Особенно хорошо это удается историкам.

* * *

Девять десятых вселенной — это, по сути, документация.

* * *

Вор Времени (с) Терри Пратчетт