garmoshka-mo / nemobile

nepotom client
1 stars 0 forks source link

Неправильная организация логики cancelLookingFor #17

Closed garmoshka-mo closed 8 years ago

garmoshka-mo commented 8 years ago

https://github.com/garmoshka-mo/nemobile/commit/538eca7db8c926b988b77e5603c756c2c843d71b

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

Тут, вероятно, уже допущена логическая ошибка - когда будет установлен внутренний чат, то выполнится только отсоединение от внешнего:

    if (message.event == "chat_ready") {
        externalChat.disconnect();

Но флаги внутри random не будут сброшены.

Логика должна быть простая - когда найден внешний - от отключает внутренний прямым вызовом из себя и наоборот. При этом, когда мы переходим в диалог - нам уже не важно, какие флаги для random UI А когда возвращаемся на randomController - сбрасываем флаги, чтобы UI правильно отображался.

davoam commented 8 years ago

Дело в том, что это утверждение "нам уже не важно, какие флаги для random UI" не верно. Так как в любой момент пользователь может закрыть вкладку и нам нужно знать посылать запрос на отмену поиска чата или нет.