TG Telegram Group & Channel
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter | United States America (US)
Create: Update:

Как рефакторить метод с необязательными параметрами

Здесь обсуждается проблема, связанную с методами, имеющими необязательные параметры, которые могут вызывать неожиданные побочные эффекты. В качестве примера приводится класс PageRepository с методами find и findOrFail, у которых параметр $prerender имеет разные значения по умолчанию. Это может привести к ненамеренной предварительной отрисовке страницы, что является дорогостоящей операцией.

Пример проблемы:
Класс PageRepository содержит два метода:

find($pageId, $prerender = false), который по умолчанию не выполняет предварительную отрисовку.
findOrFail($pageId, $prerender = true), который по умолчанию выполняет предварительную отрисовку.

Возможные решения:

🟢Установить одинаковые значения по умолчанию для параметра $prerender.

🟢Явно указывать значение параметра.

🟢Разделить метод с флагом параметра на два отдельных метода. Это потребует от разработчика явного выбора функциональности, предотвращая ненамеренные побочные эффекты.

Как рефакторить метод с необязательными параметрами

Здесь обсуждается проблема, связанную с методами, имеющими необязательные параметры, которые могут вызывать неожиданные побочные эффекты. В качестве примера приводится класс PageRepository с методами find и findOrFail, у которых параметр $prerender имеет разные значения по умолчанию. Это может привести к ненамеренной предварительной отрисовке страницы, что является дорогостоящей операцией.

Пример проблемы:
Класс PageRepository содержит два метода:

find($pageId, $prerender = false), который по умолчанию не выполняет предварительную отрисовку.
findOrFail($pageId, $prerender = true), который по умолчанию выполняет предварительную отрисовку.

Возможные решения:

🟢Установить одинаковые значения по умолчанию для параметра $prerender.

🟢Явно указывать значение параметра.

🟢Разделить метод с флагом параметра на два отдельных метода. Это потребует от разработчика явного выбора функциональности, предотвращая ненамеренные побочные эффекты.


>>Click here to continue<<

Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)