
Банковские системы наверно самые жесткие в этом плане. Про хороший код, принципы, паттерны полно книг, а вот как рабоатть с таким легаси сильно меньше.
Первые два образования у меня как раз банковские. И мы помню эмулировали работу всей кухни на бумаге. пару десятков операций, заполнить на все доки, сделать проводки, пересчитать баланс, сделать отчеты, мсфо в тч, показатели всякие посчитать… И все это за 4 часа с калькулятором, листком и ручкой.
А потом я пришел в банк манагером среднего звена. И общнулся с чудом инженерной мысли — банковской системой. И чего в ней только не было. Особенно доставляли миллион всевозможных отчетов, которые в точности никто не знал как работают. А системы было 2 и они на одни и те-же отчеты выдавали немного разные цифры.
До сих пор помню как несколькими филиалами дружественными пытались понять как считать количество клиентов, и методика получилась весьма спорной. За каждым критерием по которому относить лицо к клиенту или нет велись долгие обсуждения и аргументация. Уверен — программистам и 10% от этого не рассказали и в документации никто не думал отражать это. У будущих поколений явно не раз проходила мысль «что они там курили».
Самым простым способом составить отчет было составить SQL запрос к базе. Правда для этого надо понимать корреспонденцию счетов и правила ведения каждого из счетов. Зато при таком составлнии можно было 100% описать, что включено и чего в отчете нет и какая методика. Вообще если бухгалтерскую кухню понимать — там много всего хорошего и продуманного, главное представлять себе в голове что с чем можно сджоинить.