Pull to refresh

Comments 3

Спасибо, полезно!

Несколько моментов:

Во-первых, targert -> target :) Это опечатка, а об опечатках в личку, но тут это в коде, так что это практически pull request :)

Во-вторых, небольшое упрощение:

self.view?.onTouchedHandler = { [weak self] in
            self?.onTouched()
}
// вроде как, можно заменить на
self.view?.onTouchedHandler = self?.onTouched
// ну и так же для `goToSecondHandler`

И немного по структуре статьи:

А вот про разновидность данного паттерна, которая решает проблему сборки, возникающую при использовании MVP информации не так уж и много. Давайте попробуем разобраться что такое Router применительно к паттерну MVP

Из этого абзаца не понятно, в чём заключается "проблема сборки", и при этом создаётся впечатление, что её решает добавление роутера в классический MVP.

осознаем возникающую проблему сборки и применим сущности Assembley и Router для решения данной проблемы

Эта строка не помогает ситуации :)

Как вы догадываетесь, это озадачивает, в результате я очень внимательно вчитывался в статью, пытаясь понять, что, как и почему, а в итоге остался несколько разочарован, что суть "просто в добавлении сущности Assembly")

Ну и тут возникает проблемный вопрос всех туториалов – насколько глубоко нужно уходить в детали реализации "базовых" / "фоновых" вещей. Наверняка Вы тоже видели множество обучалок по какой-нибудь теме типа "создание локальных пуш-уведомлений", которые начинаются с "откройте Xcode, кликните New -> Project..." :) Я это к чему: из процитированного параграфа, вроде как, следует, что главная "вишенка" статьи – это та самая Assembly. Но чтобы до неё добраться, приходится аккуратно пройти через все шаги создания типового MVP(+R), с полным кодом и всеми деталями. В сочетании с тем, что проблематика обозначена не вполне чётко, как мы выяснили выше, воспринимается немного тяжело, т.к. нужно всю статью держать в голове полный контекст, ибо не знаешь, что из него дальше понадобится.

Я бы, наверное, постарался почётче обозначить проблематику в начале – расписать чуть подробнее, какую проблемы мы, собственно, пытаемся решить. Дальше, как вариант, можно использовать подход, который Apple очень любит в своих обучалках и документации – "сверху вниз". Изложить всю концепцию очень поверхностно, потом всё то же самое чуть более подробно, потом то же самое совсем подробно, уже с кодом и т.д. При этом код самого MVP может вообще уехать вод спойлеры, как вариант, хотя это дело вкуса, конечно.


P.S. Не поймите меня неправильно, я благодарен за статью, и критика – это просто моё личное мнение в надежде, что оно покажется Вам разумным и, возможно, следующие статьи будут ещё лучше) Моё мнение – не истина в последней инстанции)

Большое спасибо, за обратную связь. Она действительно полезная. ? Обязательно возьму на вооружение при написании будущих материалов.

В private extension можно не писать private func, она уже private.

Sign up to leave a comment.

Articles