Как спроектировать и разработать приложение для финансовых транзакций в Spring Boot? - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь сделать приложение для теста, и мне нужна помощь. Приложение посвящено финансовым транзакциям и может иметь 4 типа транзакций. И мне нужно сделать 2 микросервиса.

MS2 будет иметь 2 объекта:

Пользовательский объект:

public class User {

    private int id;
    private String name;
    private String tin;
    private String iban;
    private String pocketNo;
    private List<Transaction> transactions;
}

Транзакционный объект:

public class Transaction {

    private int id;
    private enum TransactionType {
        IBAN_TO_IBAN, IBAN_TO_POCKET, POCKET_TO_IBAN, POCKET_TO_POCKET;
    }

    private int noOfTransactions;
    private BigDecimal sum;
}

Любые отзывы будут оценены, спасибо!

1 Ответ

0 голосов
/ 28 мая 2020

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

Если вы используете только одну конечную точку, вам, возможно, придется написать несколько логов синтаксического анализа c и добавить условия (либо if, либо switch, оба не идеальны), чтобы определить, как обрабатывать транзакцию в вашем RestController. Эта дополнительная сложность может привести к появлению ошибок и увеличению времени разработки, тогда как написание 4 отдельных конечных точек удаляет ненужные logi c и позволяет вам сосредоточиться на написании только того, что вам нужно.

Наличие REST API для создания отчетов тоже хорошо. Просто будьте осторожны с необходимыми аргументами - вы можете захотеть, чтобы id требовался для генерации отчетов, но ваш API может быть достаточно гибким, чтобы генерировать отчеты из свойств iban или pocketNo. В этом может помочь аннотация @RequestParam(required = false).

Для получения дополнительной информации в книге Clean Code есть хорошая глава о функциях записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...