Программист поделился фрагментом кода из проекта миграции с .NET Framework на .NET Core.
Код содержит CustomerController с методом действия, который обрабатывает объект Customer.
Внутри метода условие проверяет customer.someProperty, чтобы решить, какой перегруженный метод UpsertSomething вызвать.
Метод UpsertSomething вызывается с очень длинным списком параметров, многие из которых имеют значение null или значения по умолчанию для логического типа.
Автор отмечает, что два вызова UpsertSomething почти идентичны, различаясь только одним логическим параметром.
Это предполагает, что оператор if/else был излишним.
Вместо этого значение customer.someProperty можно было бы передать напрямую в качестве аргумента в один вызов UpsertSomething.
Автор выделяет это как яркий пример не самых идеальных методов кодирования.
Предоставленный фрагмент является репрезентативным для более широкой кодовой базы, с которой столкнулись во время миграции.
Пост служит примером того, как сложности кода иногда можно избежать с помощью более простых проектных решений.
CustomerControllerс методом действия, который обрабатывает объектCustomer. Внутри метода условие проверяетcustomer.someProperty, чтобы решить, какой перегруженный методUpsertSomethingвызвать. МетодUpsertSomethingвызывается с очень длинным списком параметров, многие из которых имеют значение null или значения по умолчанию для логического типа. Автор отмечает, что два вызоваUpsertSomethingпочти идентичны, различаясь только одним логическим параметром. Это предполагает, что операторif/elseбыл излишним. Вместо этого значениеcustomer.somePropertyможно было бы передать напрямую в качестве аргумента в один вызовUpsertSomething. Автор выделяет это как яркий пример не самых идеальных методов кодирования. Предоставленный фрагмент является репрезентативным для более широкой кодовой базы, с которой столкнулись во время миграции. Пост служит примером того, как сложности кода иногда можно избежать с помощью более простых проектных решений.