× Новость: Площадка для торговли карточками в наших соцсетях

Готовый перевод An Ordinary Programmer Uses SAP and XR to Conquer the World / Обычный программист с SAP и XR завоёвывает мир: Глава 48: «Язык»

(Ctrl + влево) Предыдущая глава   |    Оглавление    |   Следующая глава (Ctrl + вправо)

На следующий день, едва придя на работу, Чжан Вэй сразу же связался с Алексом. Нужно было рассказать о новой потребности, которую он раскопал!

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

— Есть примерно два пути, — Чжан Вэй уверенно вещал в трубку. — Первый – это предварительный контроль. Проверять данные прямо при вводе, можно даже подтягивать их напрямую из базы, ведь в системе все эти данные уже есть! Второй путь – выявлять проблемные данные уже постфактум, с помощью отчетов. Но сам я больше склоняюсь к первому варианту, ведь решить проблему у самого истока – это и есть настоящее решение!

— Отлично! Ход мыслей верный! — Алекс замялся. — Но я вижу, что ты копаешься с этой задачей уже несколько дней. Почему не обратился ко мне сразу? Чем ты занимался? Как пытался решить?

— Ну да… — ответил Чжан Вэй. — Все эти дни я занимался отладкой стандартной транзакции MIGO_GR.

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

— Чжан Вэй, что ты сказал? Ты отлаживал MIGO_GR?

— Ну да! — Пожаловался Чжан Вэй. — Все эти дни только этим кодом и занимался. Измотался вусмерть, а толку ноль, так и не понял, что делать дальше!

— Ха-ха! Ну ты даешь! — Алекс так и покатился со смеху. — Я в свое время тоже этим страдал! Ну расскажи, получилось чего?

— Да в том-то и дело, что ничего не вышло! — С обидой в голосе произнес Чжан Вэй. — Если бы вчера братец Цян не рассказал мне про технологию расширения, которую называют «Enhancement», я бы, наверное, и сегодня продолжил эту отладку!

— Ха-ха, ну теперь мне спокойнее! — Алекс на том конце провода весело рассмеялся. — Аж сердце екнуло, я-то подумал, что ты реально во всем разобрался! Да, есть такая технология. Ладно, сейчас скину тебе кое-какие материалы и примеры, изучи сам. Если что непонятно – спрашивай!

— Ладно, договорились, спасибо огромное, Алекс! — Ответил Чжан Вэй и положил трубку.

В тайваньском офисе Алекс, повесив трубку, чуть не подавился от смеха. Он хохотал так, что едва не сполз под стол.

— Чему ты так радуешься? — Спросила его Лиза.

— Чжан Вэй… он пытался отлаживать MIGO_GR! Ха-ха-ха!

Лиза тоже чуть не брызнула водой, которую в этот момент пила:

— Помню-помню, ты в свое время занимался тем же самым! Ха-ха!

На самом деле отладка принесла Чжан Вэю огромную, колоссальную пользу. Но рассказывать об этом было нельзя – такие поразительные выводы невозможно объяснить в двух словах.

Формирование Ядра SAP, да еще и синего цвета? Да еще и состоящее из семи слоев?

И как это, скажите наводку, прикажете объяснять?

Уж лучше просто промолчать!

Чжан Вэй открыл документ, который прислал Алекс, и принялся изучать его.

И чем больше он читал, тем сильнее поражался изяществу этого архитектурного решения. Это был филигранный, ювелирный способ решения проблемы. Чжан Вэй просто поверить не мог, что подобные трюки вообще возможны. Приходилось лишь признать: масштаб этой инженерной мысли полностью переворачивал его прежние представления о программировании.

Он поймал себя на мысли, что уже в четвертый раз испытывает благоговейный трепет перед создателями SAP.

В первый раз это случилось, когда он формировал четвертый слой своего ядра – уровень полей. Благодаря этой концепции все поля с одинаковым смыслом во всей системе SAP – в любых модулях, технических именах, бизнес-терминах и определениях – оставались абсолютно идентичными.

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

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

И вот теперь, прямо сейчас, шел четвертый раз.

Что же на самом деле означало это расширение «Enhancement»?

Среди программистов бытует незыблемая истина: написанная, скомпилированная и выпущенная программа представляет собой неделимое целое. Чжан Вэй всегда мыслил в этих рамках, иначе он не полез бы отлаживать стандартный код.

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

Однако концепция «Enhancement» предлагала совершенно иной, обходной путь.

Представьте водопроводную трубу, которая тянется через чей-то земельный участок. Все работает исправно, и ни у кого не возникает вопросов.

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

Кажется, вполне логично. Но создатели SAP говорят вам: нет, это в корне неверно!

Разумеется, перерезав трубу, вы решите задачу. Но представляете ли вы объем сопутствующих работ? Сначала придется раскопать землю и обнажить погребенный трубопровод. Если труба тонкая – не страшно, пусть утечет немного воды. А если диаметр трубы – два метра? Рискнете провернуть такое? Вам придется перекрыть источник воды, сделать надпил прямо на месте и уложиться с монтажом тройника в кратчайшие сроки. А если не успеете, как быть тем, кто ждет воду дальше по течению? И насколько надежно встанет этот новый тройник, не даст ли он течь со временем?

При традиционном подходе все эти трудности считаются неизбежным злом, к которому все привыкли.

И тут SAP заявляет Чжан Вэю: все эти манипуляции ошибочны. В этой трубе еще при укладке был заранее предусмотрен тройник. Его заложили в проект сорок лет назад, просто до сих пор он был перекрыт.

Теперь вам нужна вода? Без проблем. Сначала проложите свою локальную сеть, затем подключитесь к готовому тройнику, а я просто открою вентиль!

В этот момент любой нормальный человек впадет в ступор: «Какого черта? Откуда вы знали сорок лет назад, когда закапывали трубу, что я решу построить здесь дом? Вы что, пришельцы из будущего?»

На это SAP отвечает: «Мы не знали конкретно про тебя. Но мы понимали, что рано или поздно здесь появится кто-то еще, кому понадобится вода. Поэтому на протяжении всего пути мы оставили множество таких тройников в самых предсказуемых местах. Сейчас они закрыты. Понадобятся – просто активируй и пользуйся».

В программировании для этого есть официальный термин – «UserExit», пользовательское расширение.

Чжан Вэй задумался: сколько же таких точек расширения нужно предусмотреть и в каких именно местах их устанавливать, чтобы это было эффективно?

Если даже ему, новичку, пришел в голову этот вопрос, то неужели великие умы из SAP не подумали об этом?

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

С программной логикой все еще проще. Самое удобное место для расширения – это стык между этапами, когда один массив данных уже обработан, но следующий этап еще не начался. Именно в этой точке перехода лучше всего разместить «UserExit». Почему? Потому что все стандартные процедуры уже выполнены. А какие у пользователя могут быть специфические капризы – предсказать невозможно. Поэтому система просто дает ему точку входа: «На, развлекайся, делай что хочешь. А как закончишь – мы продолжим выполнять нашу стандартную логику».

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

Воспользуется ли этим кто-то в будущем – не имеет значения. Главное, что сам механизм расширения отлажен и готов к работе.

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

А когда точка расширения предусмотрена заранее, магистраль защищена. Внутри своего «UserExit» программист волен творить любое безумие.

Как говорится в известной шутке: «Пока высокопоставленный отец твердо стоит на ногах, сынок может вытворять любые глупости и даже сознательно мутить воду». В архитектуре расширений SAP заложена именно эта логика: стабильность основы гарантирует свободу для экспериментов на периферии.

Чжан Вэй твердо решил: если он когда-нибудь будет проектировать собственное программное обеспечение, он обязательно применит этот подход! Начнет с семислойной архитектуры. Хотя, по совести говоря, хватит и четырех слоев. Первый и второй уровни проектировать не нужно, там нет выбора. На третьем уровне придется определиться с языком программирования – будь то Java, C# или Python. Но самое главное – это выстроить систему с четвертого по седьмой слой и добавить к ней концепцию пользовательских расширений. Вот тогда это будет истинный шедевр!

Увлекшись изучением вопроса, Чжан Вэй вбил в поисковик Baidu продукты самых известных ИТ-гигантов страны Ся. Ни одна из этих компаний не использовала подобную архитектуру и принципы проектирования!

Достаточно было бегло просмотреть новости, чтобы сделать выводы. Какая-нибудь софтверная компания с гордостью заявляет на всю страну: «Мы перевели свои продукты с VB на Java, а потом с Java на Python, поаплодируйте нам!» И никто не задумывается, что в SAP их собственный язык ABAP на третьем уровне архитектуры не менялся уже сорок лет!

Простой пример на пальцах объясняет, почему язык программирования имеет такое колоссальное значение.

Почему при колонизации других государств завоеватели первым делом насаждают свой язык и письменность? Потому что это уничтожает культурные накопления цивилизации в самом ее корне. Не зря в стране Ся ходит шутка: «Хорошо, что в свое время захватчики не смогли нас покорить, иначе у нас просто стало бы на одну народность больше, пятьдесят седьмой по счету». Глубина и мощь цивилизации, стоящей на фундаменте иероглифической письменности, настолько велики, что никакому мелкому соседу их не пошатнуть. Это колоссальная энергия, копившаяся пять тысяч лет. Разве может маленькое островное государство удержать в себе столь исполинскую мощь?

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

Взять ту же Страну утренней свежести. Сменив письменность, они внезапно обнаружили, что молодое поколение больше не может читать исторические книги! Как теперь передавать накопленную веками культуру и философию? Что произойдет, если они сменят язык еще раз? Начнут утверждать, что и Рождество придумали они?

В великой стране Ся такой проблемы нет. Пятитысячелетняя культура, опирающаяся на иероглифы, течет непрерывным, могучим потоком. Ее глубина, мощь и величие движутся вперед сокрушительной лавиной, способной сотрясать небеса.

Вот она – сила, которая веками, усилиями бесчисленных поколений, ковалась на территории в девять с половиной миллионов квадратных километров.

Именно поэтому мы и сегодня можем черпать мудрость из «Лунь юя» великого Конфуция. И что важно – наш народ подпитывается этой энергией уже не одну тысячу лет!

Если вернуться к технологиям: когда видишь, что функция SAP тридцатилетней давности под названием «BAPI_VENDOR_DISPLAY» до сих пор прекрасно работает, сразу понимаешь всю глубину и ценность этого подхода.

А теперь посмотрите на отечественный софт. Будет ли работать то, что написали пять лет назад? Приносит ли оно пользу? Накапливает ли энергию для продукта?

Чжан Вэй задавал эти вопросы самому себе, прекрасно понимая, что ответа на них нет.

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

Чжан Вэй пребывал в глубоком потрясении. Системе SAP уже сорок лет, ее исходный код практически открыт для изучения. Индустрия программного обеспечения в стране Ся существует минимум тридцать лет. Неужели за все это время никто детально не изучил этот опыт? Неужели он единственный во всей стране, кто смог сформировать семислойное ядро понимания системы?

Вполне возможно, подумал Чжан Вэй. Если проводить аналогии с романами о бессмертных культиваторах, то на целой планете мастеров Золотого Ядра всегда единицы. Почти все они принадлежат к великим сектам, а среди вольных практиков подобные мастера – редчайшее исключение.

С этой мыслью Чжан Вэй успокоился. На планете Земля мастера Синего Ядра SAP, очевидно, в первую очередь собрались в главной обители – немецкой корпорации SAP. Все остальные – лишь вольные практики. Как им взрастить в себе Золотое Ядро, если они даже не соприкоснулись с истинной системой культивации?

Похоже, софтверной индустрии страны Ся предстоит еще очень долгий и тернистый путь.

http://tl.rulate.ru/book/196473/21673012

(Ctrl + влево) Предыдущая глава   |    Оглавление    |   Следующая глава (Ctrl + вправо)

Обсуждение главы:

Еще никто не написал комментариев...
Чтобы оставлять комментарии Войдите или Зарегистрируйтесь

Инструменты
Настройки

Готово:

100.00% КП = 1.0

Скачать как .txt файл
Скачать как .fb2 файл
Скачать как .docx файл
Скачать как .pdf файл
Ссылка на эту страницу
Оглавление перевода
Интерфейс перевода