GO_INTERVIEW_LIB Telegram 289
💬 В чем заключается риск использования глобальных переменных, особенно изменяемых?

Глобальные переменные — это те, которые мы размещаем вне функций или методов, доступные для любой части нашего кода для использования и изменения. Часто они приносят больше проблем, чем пользы. Вот почему:

🔹 Отслеживание изменений затруднено: определить, где была изменена переменная featureConfig.NewCheckoutProcessEnabled в вашем приложении, сложно, когда любая часть кода может её изменить.

🔹 Тестирование усложняется: предположим, мы тестируем новый и старый процессы оформления заказа. Если оба теста вмешиваются в один и тот же глобальный featureConfig, мы не сможем тестировать их независимо, не мешая один другому.

🔹 Проблемы с конкурентностью: когда несколько запросов пытаются одновременно читать или изменять featureConfig, это может привести к несоответствиям (состояние гонки).

📌 Что делать? Dependency injection👇

Это метод, при котором мы предоставляем объекту его потребности извне, вместо того чтобы создавать их самостоятельно или брать из глобальных переменных.

Да, этот метод делает вещи немного более сложными, но он также упрощает поддержку кода, его тестирование и поиск ошибок.

С внедрением зависимостей настройка тестов для сценариев с включенными и отключенными функциями становится простой.

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

Также, если мы используем глобальные переменные, которые изменяются во время выполнения, необходимо убедиться, что мы используем техники синхронизации.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2



tgoop.com/go_interview_lib/289
Create:
Last Update:

💬 В чем заключается риск использования глобальных переменных, особенно изменяемых?

Глобальные переменные — это те, которые мы размещаем вне функций или методов, доступные для любой части нашего кода для использования и изменения. Часто они приносят больше проблем, чем пользы. Вот почему:

🔹 Отслеживание изменений затруднено: определить, где была изменена переменная featureConfig.NewCheckoutProcessEnabled в вашем приложении, сложно, когда любая часть кода может её изменить.

🔹 Тестирование усложняется: предположим, мы тестируем новый и старый процессы оформления заказа. Если оба теста вмешиваются в один и тот же глобальный featureConfig, мы не сможем тестировать их независимо, не мешая один другому.

🔹 Проблемы с конкурентностью: когда несколько запросов пытаются одновременно читать или изменять featureConfig, это может привести к несоответствиям (состояние гонки).

📌 Что делать? Dependency injection👇

Это метод, при котором мы предоставляем объекту его потребности извне, вместо того чтобы создавать их самостоятельно или брать из глобальных переменных.

Да, этот метод делает вещи немного более сложными, но он также упрощает поддержку кода, его тестирование и поиск ошибок.

С внедрением зависимостей настройка тестов для сценариев с включенными и отключенными функциями становится простой.

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

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

BY Библиотека Go для собеса | вопросы с собеседований





Share with your friend now:
tgoop.com/go_interview_lib/289

View MORE
Open in Telegram


Telegram News

Date: |

The SUCK Channel on Telegram, with a message saying some content has been removed by the police. Photo: Telegram screenshot. The creator of the channel becomes its administrator by default. If you need help managing your channel, you can add more administrators from your subscriber base. You can provide each admin with limited or full rights to manage the channel. For example, you can allow an administrator to publish and edit content while withholding the right to add new subscribers. In handing down the sentence yesterday, deputy judge Peter Hui Shiu-keung of the district court said that even if Ng did not post the messages, he cannot shirk responsibility as the owner and administrator of such a big group for allowing these messages that incite illegal behaviors to exist. Administrators In the next window, choose the type of your channel. If you want your channel to be public, you need to develop a link for it. In the screenshot below, it’s ”/catmarketing.” If your selected link is unavailable, you’ll need to suggest another option.
from us


Telegram Библиотека Go для собеса | вопросы с собеседований
FROM American