Должны ли функции быть разделены с точки зрения абстракции, если на них все еще будут ссылаться новые функции? - PullRequest
0 голосов
/ 01 марта 2020

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

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

Как и в этом примере, я думаю, что фильтрация, сортировка и зацикливание должны быть разными методами?

updatePayments(Payment payment) {
    var filteredPayments = paymentList.Where(x => x.createdOn == payment.CreatedOn).ToList();
    var sortedFilteredPayments = filteredPayments.OrderBy(x => x.name).ToList();
    var count = 1;
    foreach (Payment p in sortedFilteredPayments)
    {
        p.UpdatePaymentName(count + ": " + p.name + " previous payment: " + filteredPayments[count -1]);
    }
}

Если я разделю функцию на то, что я считаю меньшим количеством абстракций, я думаю, что в конечном итоге это будет выглядеть так:

updatePayment(Payment payment) {
    var filteredPayments = filterPaymentsByCreatedOn(payment);
    var sortedFilteredPayments = sortPaymentsByName(filteredPayments );
    updateNameOfPayments(filteredPayments, sortedFilteredPayments);
}

Так это лучше, чем оригинал? Он по-прежнему получает отфильтрованные платежи и сортированные платежи, но вместо кода теперь это просто имя функции, и на него все еще ссылаются.

Кроме того, теперь, когда я смотрю на это, можно ли разделить первые два на свою функцию? Я на самом деле не уверен, когда остановиться, как, конечно, это не идеально, весь мой код теперь все функции с одной строкой?

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