Что такое сис банк

Обновлено: 28.03.2024

Попробую и я что-то написать под уходящую волну собеседований.

Давно это было, в году 2006 вроде.

Будучи совсем зелёным специалистом и искавшим работу, я стоял на учёте в центре занятости. На каком-то очередном тренинге (а их там было по 3-4 в неделю) рядом со мной сидела женщина, которая узнав в какой сфере я ищу работу, на клочке бумаги написала какой-то номер телефона, и сказала позвонить. Оказывается это главный в области айтишник из банка. Договорились о собеседовании и я стал ждать. Мысли всякие лезли в голову - где я, а где работа в банке, ведь я ещё совсем зелёный и после учёбы только продавцом год проработал, а там профессионалы IT-сферы сидят, куда мне до них.. приду - засмеют же.. Но решил - пусть и опозорюсь, но хоть попытаюсь!

Затянул со вступление, пардоньте.

Наступил день Х. Я пришёл - позвонил, пульт охраны меня пропустил, встретил меня миловидный мужичёк, провёл в кабинет, где работают It. Знаете как выглядит кабинет айтишников? (это горы мониторов, системников, принтеров и прочей мелкой требухи, ожидающей своей судьбы.) Меня посадили за стол, поспрашивали что я умею и толком не дослушав сказали починить комп за которым я сидел. Краем глаза я видел, что он постоянно перезагружается. Ну т.е. заставка биоса, прогрузка винды, приветсвие, синий экран и всё по кругу. На выполнение задачи я потратил секунд 5. Я знал что это скринсервер такой, и банальным движением мыши или нажатием кнопки он вырубатся, а под ним работающая винда. Главный посмеялся и задал вопрос: (Далее Г - главный; Я - я)

Я: Ну бывает иногда (я уже подумал что это тест какой-то, но нет)

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

Г: В контру играешь?

Я: Да я пол школы прогулял играя в неё

Г: Вот и отлично, запускай, создавай, а я сейчас подключусь.

По итогу я проработал в этом банке 2 года. Работа мне очень нравилась, меня обучили работе с банкоматами, коллектив просто отличный, пили мы чуть-ли не каждый день, в обеденное время играли в КС. Только одна вещь мне никогда не нравилась там - это ЗП, из-за неё и уволился.

Простите, это первый пост, старался написать понятным языком, ну а там уже как получилось.)

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

Каждый банк имеет свою АБС, где проводит операции, аккумулирует информацию, создает отчетность для последующей сдачи в ЦБ. Если простая организация вполне может вести свою отчетность на бумажных носителях, то в банке это сделать невозможно по причине огромного количества проводок, введения постоянных изменений.

Что такое АБС?


Это комплекс систем технического программного обеспечения, разработанный для автоматизации различных процессов и проведения операций. Архитектура АБС достаточно сложна и функциональна. Для удобства она разделена на модули:

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

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

Зачем банку АБС?


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

  • Сократить время на проведение операций, увеличивает конверсию клиентского потока.
  • Снизить количество работников, занимающихся малозначимой работой, за счет внедрения автоматической системы обработки информации.
  • Обработать всю информацию о клиентах и подбор подходящих услуг.
  • Повысить квалификацию персонала. Если сотрудник допускает ошибку, то система это заметит.
  • Интегрировать все системы банка в одно информационное пространство.
  • Собирать информацию и управлять ею, поступающих из разных источников.
  • Обеспечивать дистанционный доступ клиентов к своим счетам.
  • Обеспечить контрольные функции для различных подразделений банка

Из чего состоит АБС?

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

  • Фронт. Здесь система содержит модули для первичного общения с клиентами, заноса информации в систему и их обработка для дальнейшего использования. На этом уровне сотрудники создают платежные документы, обслуживают клиентов, открывают счета и пр. Полученная информация закрепляется в базах.
  • Бэк. Система бэка отличается от фронта большим функционалом. Все внутренние операции проводятся здесь. В этих модулях системы ведутся внутренних расчеты по картам, кредитам, счетам, обрабатываются и проверяются документы.
  • Счетный офис. Полученные данные с предыдущих модулей поступают в счетный офис, где уже формируется отчетность, ведется учет всех активов и пассивов. На основании полученных данных система формируется отчет об эффективности работы банка, показателях и пр.

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

При наличии сбоя в каком-то модуле, данные не теряются. Модуль можно починить без ущерба для работы остальных составляющих. Все устаревшие компоненты можно менять без остановки всей системы. Поскольку проверка информации идет на нескольких уровнях, то это минимизирует мошеннические действия. АБС позволяет оперативно управлять несколькими процессами, собирать нужную информацию в режиме онлайн.

АБС в России.


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

В России работают отечественные и зарубежные АБС. Отечественные системы работают по сетевому принципу, что дает дистанционно контролировать их работу и следить за финансовой деятельностью. Лидерами являются

  • Softlab,
  • Diasoft,
  • RStyle,
  • Инверсия,
  • SCБанк,
  • Бисквит

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

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

Что такое СМС-банк?

Что может СМС-Банк?

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

СМС банк

Как подключить СМС-Банк?

СМС-Банк можно подключить несколькими способами. В разных банках могут быть свои варианты, но обычно СМС-банк подключается 3 основными способами:

  1. В банкомате или терминале
  2. В отделении банка
  3. По телефону горячей линии

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

Подключение в терминале или банкомате

Для этого нужно вставить карточку в устройство, ввести ПИН-код и выбрать на экране монитора нужный раздел — «Информация и сервисы» — «Подключить СМС-банк».

Далее клиенту предложат выбрать подходящий тариф. В Сбербанке есть платный и бесплатный тариф. Лучше выбрать первый полноценный СМС-банк, чтобы пользоваться всеми преимуществами дистанционного обслуживания.

Последним шагом станет подтверждение подключения СМС-банка. Когда услуга будет подключена, клиент получит об этом соответствующее уведомление с номера 900.

Подключение СМС-банка по телефону

Для этого нужно позвонить на горячую линию Сбербанка по номеру 88005555550 и сообщить сотруднику о своем желании подключить СМС-банк.

Когда услуга будет подключена, клиент получит об этом соответствующее уведомление с номера 900.

Подключение в офисе банка

В отделении тоже можно подключить СМС-банк. Для этого нужно обратиться к любому сотруднику банка с паспортом. На месте он за считанные минуты подключит услугу к номеру телефона, который привязан к карте.

Подключение через интернет-банк

Подключить СМС-банк можно в личном кабинете интернет-банка. Для этого нужно авторизоваться в системе и выбрать раздел «Настройки» — «Мобильный банк».

Далее нужно выбрать подходящий вам тариф из предложенных банком и нажать кнопку «Подтвердить».

Примерные смс-команды на примере Сбербанка

Разберем самые популярные СМС-запросы, которые можно применить в Сбербанке для полноценного обслуживания через СМС-банк.

Клиенту Сбербанка и других организаций нужно помнить, что в каждом банке есть собственные ограничения и лимиты по сумме операций через СМС-Банк. Это нужно для безопасности личных средств клиента на тот случай, если телефоном завладеет злоумышленник.

Сколько стоит СМС-банк в разных банках?

Услуга СМС-банка в разных кредитных организациях варьируется от 0 до 89 рублей в месяц и выше. Средняя стоимость составляет 60 руб. Такая разница в стоимости обслуживания СМС-банка обуславливается тарифами. Даже в одном и том же банке у разных карт может быть разная стоимость СМС-банка. В таблице представлены популярные банки и указана стоимость СМС-банка в каждом из них.

БанкСтоимость СМС-Банка
Сбербанк60 руб. начиная с 3-го месяца
Тинькофф Банк59 руб.
ВТБ59 рублей со 2-го месяца
Газпромбанк59 рублей с 4-го месяца
Россельхозбанк59 рублей в месяц. По зарплатному и социальному тарифам по 10 руб.
Банк Открытие59 руб. ежемесячно
Райффайзенбанк60 руб. с 3-го месяца
Хоум Кредит банк59 руб. ежемесячно
Альфа-Банк59 руб. со 2-го месяца

СМС-Банк — популярный вид мошенничества

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

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


Финансовые компании находятся в поисках лучших решений, которые оптимизируют внутренние процессы разработки, разовьют IT-инфраструктуру в соответствии с требованиями бизнеса и позволят им выводить на рынок лучшие конкурентные продукты. Так, два года назад мы ступили на путь перевода разработки ЦФТ-банк на платформу CFT Platform IDE. Среди коллег по цеху ходят слухи, что это процесс невероятной сложности, ввиду чего не решаются приступить к делу. На своем примере мы докажем, что это вполне подъемный процесс и для вашей команды.

Процесс разработки ПО в НРД в большинстве случаев характерен наличием нескольких команд разработчиков, которые лавируют между проектами, занимаясь разными модулями одной или даже разных систем. В работе у нас постоянно большое количество доработок и приходится держать несколько dev и test-контуров с разными версиями системы. Таким образом, всегда есть необходимость доступа к централизованному хранилищу кода с поддержкой версионности, обеспечением автоматической сборки и установки. Для системы ЦФТ-Банк на протяжении многих лет таких возможностей не было.

ЦФТ-Банк – это автоматизированная банковская система ЗАО «Центр финансовых технологий». Она характерна использованием собственного языка программирования pl/plus и, как следствие, возможностью применения только собственных средств разработки, предлагаемых вендором системы. Код системы открытый, с ограниченными возможностями модификации дистрибутивных модулей и с широкими возможностями создания своих собственных модулей.

Это порождало лишние затраты на подготовку сборок, merge-изменений и т.д. Часто возникали случаи порчи программного кода, т.к. следить за правильностью версиии той или иной программной компоненты могли только сами разработчики в полностью ручном режиме. Однако поменять подход к разработке для системы ЦФТ-Банк было невозможно ввиду существования безальтернативной среды разработки для этой системы, по своему интерфейсу и возможностям отставшей от жизни лет на 15.

Решение наших проблем было предложено ЦФТ с выводом на рынок в 2018 г. новой платформы разработки для своих систем, которая называется CFT Platform IDE (она же Admin 2.0, или сокращённо A2).

Ключевые отличия новой платформы разработки

Внешне разработчик получает среду, реализованную на основе Eclipse Platform, которая гораздо симпатичнее архаичного Администратора словаря данных.

Для сравнения редактирование кода в старой среде (Администратор словаря данных):


Редактирование кода в Admin 2.0:


Но основным преимуществом новой платформы разработки для нас явилась возможность хранения программного кода системы, а также экранных форм, описаний типов и прочего в виде множества текстовых файлов. Именно это позволяет выгружать код в систему контроля версий (в нашем случае Git) со всеми её возможностями, которых нам так недоставало ранее при разработке для ЦФТ-Банк.

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


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


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

  • ::MAIN_DOCUM вместо ::[MAIN_DOCUM] ,
  • select md(md%id: rSelf) in ::[MAIN_DOCUM] all where md.[IN_FOLDER]=this bulk , причём в откомпилированном коде PL/SQL слова bulk нет, что с ним, что без него компилируется одинаково,
  • Pragma macro(’Ошибка!’) вместо Pragma error(’Ошибка!’) .

Непонятно, как Администратор словаря «переваривал» подобное без ошибок. Причём, если первые 2 примера представляют собой безобидный мусор, то последнее — явная ошибка, которая приведёт к некорректной работе программы.

И ещё одной особенностью Admin 2.0 является, благодаря интеграции с Git, функционал получения списка изменений на основе сравнения 2-х веток.


Это позволяет выполнять развёртывание этих изменений в целевую БД. Затем изменения из БД можно выгрузить по тому же списку элементов, используя старый Администратор проектов, в mdb-файл, если их необходимо передать для установки в БД, куда разработчик не имеет прямого доступа. Однако более интересным вариантом является подготовка и развёртывание изменений в новом формате. Он представляет из себя zip-архив, внутри которого находятся текстовые файлы с кодом, а также некоторая метаинформация. Побочным эффектом является возможность просмотреть и даже изменить код в передаваемой поставке без установки в какую-то БД, что в случае с mdb-форматом было невозможно. Но самое основное – сохранение в этот новый формат из Git-репозитория и развёртывание в БД Admin 2.0 предусматривает делать и в безинтерфейсном режиме, что позволяет настроить автосборку и автоустановку, т.е. наконец говорить о CI/СD в применении к доработкам ЦФТ-Банк. Правда, данную тему я планирую подробно раскрыть уже в следующей статье.

Особенности перехода на новую платформу

Материальный вопрос

Первое, с чем пришлось столкнуться — получение лицензий на рабочие места. На каждое рабочее место разработчика требуется отдельная лицензия, которая привязана сразу и к железу ПК, и к учётной записи пользователя. Если у вас в компании тоже несколько изолированных сетей, где есть сервера с ЦФТ-Банк, и ведётся разработка на них, то на одного разработчика потребуется купить несколько лицензий Admin 2.0. Стоимость одной лицензии на момент написания статьи составляет 125 у.е./мес., или около 8 тыс. руб. по внутреннему курсу. За первоначальную покупку на данный момент деньги не взимаются. Лицензии распространяются в виде файлов, а не смарт-ключей, что позволяет без проблем развернуть среду даже на виртуальной станции.

До покупки можно договориться о предоставлении тестовых лицензий. В нашем случае были получены 6 лицензий со сроком действия — 4 месяца на бесплатной основе. Условия обсуждаются с персональным менеджером индивидуально.

Настройка рабочих мест и БД

Серверную часть IDE можно устанавливать и в рабочее время, но правильней будет, если в момент установки не будут открыты на редактирование программные объекты ЦФТ, т.к. основное в обновлении — это новый механизм соответствующих блокировок.

Выгрузка кода локального приложения

Для создания проекта, с которым будет работать Admin 2.0, нам нужно выгрузить из БД в папку с набором текстовых файлов описание объектов, являющихся нашими локальными доработками, а также, условно говоря, ссылки на объекты, от которых наши доработки зависят.

Отмечу, что при большом объёме локального приложения среда разработки начинает тормозить, поэтому в такой ситуации необходимо будет деление исходников на актив и архив. К счастью, в лимит мы вписались при немалом объёме локала. Однако стоит учесть объём оперативной памяти рабочих станций. Согласно документации требуется не менее 16Гб, хотя некоторое время части наших разработчиков удавалось работать и на 8Гб памяти, надо было лишь отрегулировать объём памяти java-приложения в файле eclipse.ini.

Что касается выгрузки — процедура несложная, т.к. все необходимые скрипты, такие как для подсчёта объёма приложения, для получения списка объектов и другие входят в комплект поставки.

Адаптация кода

Адаптация заключалась в дополнении того, что не собрал скрип, например, прогрузились не все ссылки на таблицы в чистом Oracle, некоторые ТБП со сложным подчинением — в единичных случаях не подгрузились типы ссылок или массивы. Также надо было слегка подчистить код (см. примеры выше). Но самое главное — подстроить код под новые особенности:

  • все простые представления были автоматически преобразованы в pl/plus (т.к. работу с простыми представлениями Admin 2.0 не поддерживает). При этом нередко это происходило с ошибками, которые надо было устранять (например, т.к. вызов интерфейсных пакетов напрямую теперь не поддерживается пришлось переделать вызовы в стиле pl/sql (типа Z$MAIN_DOCUM. ) на pl/plus (типа::[MAIN_DOCUM]. ));
  • в Admin 2.0 была исключена поддержка inline-вставок pl/sql кода — конструкции в фигурных скобках <>, и лишь недавно эту поддержку вернули;
  • Admin 2.0 не поддерживает выражение between в sql запросах, которое использовалось у нас в нескольких представлениях (что странно, т.к. это стандартная конструкция, в том числе для чистого pl/sql);
  • проявившиеся ошибки в «мёртвых» кусках кода. У нас было несколько процедур, где часть кода отсекалась посредством return, либо if false, или же макросом IF_DEF. Оптимизатор или макрокомпилятор отсекали код, который уже не анализировался на наличие ошибок. Некоторые такие куски стали невалидными, т.к. изменились вызываемые процедуры и используемые ТБП, просто компилятор их не видел. Admin 2.0 стал «обращать внимание» и на эти куски.

Результат

Серьёзных проблем при адаптации не было. Нам посчастливилось «познакомиться поближе» со своим кодом. В процессе мы выявили недочёты в IDE и даже в технологическом ядре (в компиляторе), которые сейчас ЦФТ уже исправил.

Большую помощь нам оказали специалисты ЦФТ, которые оперативно реагировали на возникшие проблемы, а в случае замедления процесса внедрения с нашей стороны всячески нас стимулировали и поддерживали интерес. После всех этих подготовительных действий мы запросто настроили интеграцию Eclipse с Git и выгрузили в него код текущей версии.
Нам потребовалось создать регламент ведения разработок, т.к. разработчикам ЦФТ-Банк пришлось привыкать работать совершенно в ином стиле: правильно маркировать коммиты, работать в нужной версии и пр. Сама методика работы стала соответствовать общим стандартам разработки в IT-компании.

Несмотря на первоначальное снижение скорости разработки, Admin 2.0 был сразу встречен в нашем коллективе с большим энтузиазмом. За 1-2 месяца активной работы все привыкли к новой среде, а эффективность возросла.

Сегодня Admin 2.0 до сих пор находится на стадии активных доработок, но это гораздо менее сырой продукт, чем 2 года назад. Например, только недавно появилась поддержка работы с группами доступа, пока работающая с ошибками. Также развёртывание в безинтерфейсном режиме может завершаться с ошибками при наличии в коде макросов. Большинство недочетов, которые мы фиксируем, ЦФТ устраняет в пределах месяца. За эти 2 года мы использовали отличную возможность повлиять на развитие Admin 2.0. Сегодня компании, которые задумали подобный переход, смогут пройти этот путь ощутимо быстрее.


Финансовые компании находятся в поисках лучших решений, которые оптимизируют внутренние процессы разработки, разовьют IT-инфраструктуру в соответствии с требованиями бизнеса и позволят им выводить на рынок лучшие конкурентные продукты. Так, два года назад мы ступили на путь перевода разработки ЦФТ-банк на платформу CFT Platform IDE. Среди коллег по цеху ходят слухи, что это процесс невероятной сложности, ввиду чего не решаются приступить к делу. На своем примере мы докажем, что это вполне подъемный процесс и для вашей команды.

Процесс разработки ПО в НРД в большинстве случаев характерен наличием нескольких команд разработчиков, которые лавируют между проектами, занимаясь разными модулями одной или даже разных систем. В работе у нас постоянно большое количество доработок и приходится держать несколько dev и test-контуров с разными версиями системы. Таким образом, всегда есть необходимость доступа к централизованному хранилищу кода с поддержкой версионности, обеспечением автоматической сборки и установки. Для системы ЦФТ-Банк на протяжении многих лет таких возможностей не было.

ЦФТ-Банк – это автоматизированная банковская система ЗАО «Центр финансовых технологий». Она характерна использованием собственного языка программирования pl/plus и, как следствие, возможностью применения только собственных средств разработки, предлагаемых вендором системы. Код системы открытый, с ограниченными возможностями модификации дистрибутивных модулей и с широкими возможностями создания своих собственных модулей.

Это порождало лишние затраты на подготовку сборок, merge-изменений и т.д. Часто возникали случаи порчи программного кода, т.к. следить за правильностью версиии той или иной программной компоненты могли только сами разработчики в полностью ручном режиме. Однако поменять подход к разработке для системы ЦФТ-Банк было невозможно ввиду существования безальтернативной среды разработки для этой системы, по своему интерфейсу и возможностям отставшей от жизни лет на 15.

Решение наших проблем было предложено ЦФТ с выводом на рынок в 2018 г. новой платформы разработки для своих систем, которая называется CFT Platform IDE (она же Admin 2.0, или сокращённо A2).

Ключевые отличия новой платформы разработки

Внешне разработчик получает среду, реализованную на основе Eclipse Platform, которая гораздо симпатичнее архаичного Администратора словаря данных.

Для сравнения редактирование кода в старой среде (Администратор словаря данных):


Редактирование кода в Admin 2.0:


Но основным преимуществом новой платформы разработки для нас явилась возможность хранения программного кода системы, а также экранных форм, описаний типов и прочего в виде множества текстовых файлов. Именно это позволяет выгружать код в систему контроля версий (в нашем случае Git) со всеми её возможностями, которых нам так недоставало ранее при разработке для ЦФТ-Банк.

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


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


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

  • ::MAIN_DOCUM вместо ::[MAIN_DOCUM] ,
  • select md(md%id: rSelf) in ::[MAIN_DOCUM] all where md.[IN_FOLDER]=this bulk , причём в откомпилированном коде PL/SQL слова bulk нет, что с ним, что без него компилируется одинаково,
  • Pragma macro(’Ошибка!’) вместо Pragma error(’Ошибка!’) .

Непонятно, как Администратор словаря «переваривал» подобное без ошибок. Причём, если первые 2 примера представляют собой безобидный мусор, то последнее — явная ошибка, которая приведёт к некорректной работе программы.

И ещё одной особенностью Admin 2.0 является, благодаря интеграции с Git, функционал получения списка изменений на основе сравнения 2-х веток.


Это позволяет выполнять развёртывание этих изменений в целевую БД. Затем изменения из БД можно выгрузить по тому же списку элементов, используя старый Администратор проектов, в mdb-файл, если их необходимо передать для установки в БД, куда разработчик не имеет прямого доступа. Однако более интересным вариантом является подготовка и развёртывание изменений в новом формате. Он представляет из себя zip-архив, внутри которого находятся текстовые файлы с кодом, а также некоторая метаинформация. Побочным эффектом является возможность просмотреть и даже изменить код в передаваемой поставке без установки в какую-то БД, что в случае с mdb-форматом было невозможно. Но самое основное – сохранение в этот новый формат из Git-репозитория и развёртывание в БД Admin 2.0 предусматривает делать и в безинтерфейсном режиме, что позволяет настроить автосборку и автоустановку, т.е. наконец говорить о CI/СD в применении к доработкам ЦФТ-Банк. Правда, данную тему я планирую подробно раскрыть уже в следующей статье.

Особенности перехода на новую платформу

Материальный вопрос

Первое, с чем пришлось столкнуться — получение лицензий на рабочие места. На каждое рабочее место разработчика требуется отдельная лицензия, которая привязана сразу и к железу ПК, и к учётной записи пользователя. Если у вас в компании тоже несколько изолированных сетей, где есть сервера с ЦФТ-Банк, и ведётся разработка на них, то на одного разработчика потребуется купить несколько лицензий Admin 2.0. Стоимость одной лицензии на момент написания статьи составляет 125 у.е./мес., или около 8 тыс. руб. по внутреннему курсу. За первоначальную покупку на данный момент деньги не взимаются. Лицензии распространяются в виде файлов, а не смарт-ключей, что позволяет без проблем развернуть среду даже на виртуальной станции.

До покупки можно договориться о предоставлении тестовых лицензий. В нашем случае были получены 6 лицензий со сроком действия — 4 месяца на бесплатной основе. Условия обсуждаются с персональным менеджером индивидуально.

Настройка рабочих мест и БД

Серверную часть IDE можно устанавливать и в рабочее время, но правильней будет, если в момент установки не будут открыты на редактирование программные объекты ЦФТ, т.к. основное в обновлении — это новый механизм соответствующих блокировок.

Выгрузка кода локального приложения

Для создания проекта, с которым будет работать Admin 2.0, нам нужно выгрузить из БД в папку с набором текстовых файлов описание объектов, являющихся нашими локальными доработками, а также, условно говоря, ссылки на объекты, от которых наши доработки зависят.

Отмечу, что при большом объёме локального приложения среда разработки начинает тормозить, поэтому в такой ситуации необходимо будет деление исходников на актив и архив. К счастью, в лимит мы вписались при немалом объёме локала. Однако стоит учесть объём оперативной памяти рабочих станций. Согласно документации требуется не менее 16Гб, хотя некоторое время части наших разработчиков удавалось работать и на 8Гб памяти, надо было лишь отрегулировать объём памяти java-приложения в файле eclipse.ini.

Что касается выгрузки — процедура несложная, т.к. все необходимые скрипты, такие как для подсчёта объёма приложения, для получения списка объектов и другие входят в комплект поставки.

Адаптация кода

Адаптация заключалась в дополнении того, что не собрал скрип, например, прогрузились не все ссылки на таблицы в чистом Oracle, некоторые ТБП со сложным подчинением — в единичных случаях не подгрузились типы ссылок или массивы. Также надо было слегка подчистить код (см. примеры выше). Но самое главное — подстроить код под новые особенности:

  • все простые представления были автоматически преобразованы в pl/plus (т.к. работу с простыми представлениями Admin 2.0 не поддерживает). При этом нередко это происходило с ошибками, которые надо было устранять (например, т.к. вызов интерфейсных пакетов напрямую теперь не поддерживается пришлось переделать вызовы в стиле pl/sql (типа Z$MAIN_DOCUM. ) на pl/plus (типа::[MAIN_DOCUM]. ));
  • в Admin 2.0 была исключена поддержка inline-вставок pl/sql кода — конструкции в фигурных скобках <>, и лишь недавно эту поддержку вернули;
  • Admin 2.0 не поддерживает выражение between в sql запросах, которое использовалось у нас в нескольких представлениях (что странно, т.к. это стандартная конструкция, в том числе для чистого pl/sql);
  • проявившиеся ошибки в «мёртвых» кусках кода. У нас было несколько процедур, где часть кода отсекалась посредством return, либо if false, или же макросом IF_DEF. Оптимизатор или макрокомпилятор отсекали код, который уже не анализировался на наличие ошибок. Некоторые такие куски стали невалидными, т.к. изменились вызываемые процедуры и используемые ТБП, просто компилятор их не видел. Admin 2.0 стал «обращать внимание» и на эти куски.

Результат

Серьёзных проблем при адаптации не было. Нам посчастливилось «познакомиться поближе» со своим кодом. В процессе мы выявили недочёты в IDE и даже в технологическом ядре (в компиляторе), которые сейчас ЦФТ уже исправил.

Большую помощь нам оказали специалисты ЦФТ, которые оперативно реагировали на возникшие проблемы, а в случае замедления процесса внедрения с нашей стороны всячески нас стимулировали и поддерживали интерес. После всех этих подготовительных действий мы запросто настроили интеграцию Eclipse с Git и выгрузили в него код текущей версии.
Нам потребовалось создать регламент ведения разработок, т.к. разработчикам ЦФТ-Банк пришлось привыкать работать совершенно в ином стиле: правильно маркировать коммиты, работать в нужной версии и пр. Сама методика работы стала соответствовать общим стандартам разработки в IT-компании.

Несмотря на первоначальное снижение скорости разработки, Admin 2.0 был сразу встречен в нашем коллективе с большим энтузиазмом. За 1-2 месяца активной работы все привыкли к новой среде, а эффективность возросла.

Сегодня Admin 2.0 до сих пор находится на стадии активных доработок, но это гораздо менее сырой продукт, чем 2 года назад. Например, только недавно появилась поддержка работы с группами доступа, пока работающая с ошибками. Также развёртывание в безинтерфейсном режиме может завершаться с ошибками при наличии в коде макросов. Большинство недочетов, которые мы фиксируем, ЦФТ устраняет в пределах месяца. За эти 2 года мы использовали отличную возможность повлиять на развитие Admin 2.0. Сегодня компании, которые задумали подобный переход, смогут пройти этот путь ощутимо быстрее.

Автор статьи

Куприянов Денис Юрьевич

Куприянов Денис Юрьевич

Юрист частного права

Страница автора

Читайте также: