2. Обо мне
● Опыт работы 10+ лет
● Участвовал в создании enterprise софта
(BPEL, J2EE, все дела)
● Ощутил прелести легковесной разработки
на фрилансе и в маленькой компании
(Python, Django)
● 3 года работал в Банке и вернулся туда
(я могу сравнивать :)
4. АБС
Работает с 1993 года
Клиент - Сервер
Oracle + MFC/Winforms
~ 25 mb PL/SQL
~ NNN mb C++ и C#
~ сотни тысяч операций в день
~ 3 миллиарда строк (в самой большой таблице)
5. Disclaimer
Я не автор этой системы
Все услышанное вами только вы можете
использовать против вас
6. Что такое банковская система?
План счетов
● комиссии
● вклады
● кредиты
● обмен с внешними системами
● отчетность
● Управление активами
● Залоги
● и т.д.
9. Блокировки?
очередь задач
● Отказ от online обработки
● Один worker
● Управление приоритетами (эмн)
+ Простое решение
+ Доступность актуальных остатков
+ Не привязаны к опердню
– Отказ от online обработки
14. Бизнес-Логика
Для всех платежных документов
● Проверить
● Возможно зачислить на другой счет
● Создать на их основе другие
документы
15. ~ 200 правил, ~ 2000 условий
Бизнес-Логика и EAV
Корректность контролируется триггером
Компилируется в PL/SQL
16. На практике
Пишите код так, как будто
сопровождать его будет склонный к
насилию психопат, который знает,
где вы живете.
17. На практике
● Не хватает аккуратности
● Не хватает качественного кода
○ Стиль
○ Обработка ошибок
● Не хватает хорошего современного UI
○ DRY
● Не хватает ряда высокоуровневых
решений
■ Зависимость между задачами