мне — сделано ок, но работодателям не нравится https://github.com/pavelgubarev/openWeather . Хочу сделать лучше, но не знаю, что править. Спасибо!
CitiesListViewController кто ему данные провайдит? Протоколом не закрыт
CustomTabBarController ему провайдит данные. то есть презентер (через протокол) даёт данные главной вьюхе (CustomTabBarController), а она уже отдаёт дочерней CitiesListViewController. Или это не ок?
Не ок. CustomTabBarController — по хорошему он должен быть «тупым» отвечать только за инициализацию и навигацию. Грузить данные должен тот экран, где они будут показаны. Если эти данные используются на нескольких экранах и их нет надобности грузить заново, то нужно сохранить в сервис какой-нибудь. А потом брать эти данные там, где нужно. Если ты заявляешь что у тебя есть архитектура и она kind-a-MVP то презентеры должны быть у каждой самостоятельной вьюхи (вью контроллера). Вьюха является самостоятельной если она несет функциональную нагрузку, а не создана для скрытия кода. (Пример функциональной вьюхи — ячейка таблицы, пример скрытия кода — кастомный свитчер, кастомный лейбл)
Спасибо большое!
А разные презентеры могут друг о друге знать? Допустим, у меня задача: подгружается таб бар. В этот момент надо загрузить данные в одну из (невидимых ещё) вьюх, чтобы при обращении к ней уже всё было красиво. Я думаю так — таббар дёргает свой презентер, он дёргает презентер невидимой вьюхи и этот последний презентер уже даёт данные для невидимой вьюхи. Это нормально, «красиво»?
Да, презентеры могут общаться друг с другом в рамках дозволенного. Под дозволенным я имею в виду логичность происходящего, четко границу описать в сообщении сложно. В твоём кейсе вполне ок если родительский по сути презентер (таб бар контроллера) будет знать о своих «детях» и что-то им провайдить. В другую сторону (от детей родителю) тоже ок, но я бы рассмотрел вариант ввести какую-то абстракцию, а не держать ссылку прям на класс/протокол родителя.
Всё понял, спасибо огромное.
открыл 1 файл, мне тоже не нравится
А что именно?
Если интересно, могу за скромное вознаграждение в 1000 рублей сделать ревью
Спасибо за предложение
а где тесты? точнее, тестов нет, зачем тогда папки? это сразу отталкивает, хочется посмотреть что и как тестируется, а там пустые файлы. мне бы тоже не очень понравилось
а работодатели не говорят что им не нравится?
Не все себя утруждают подробными ответами 🙂 иногда отвечают, но общими словами типа «есть нарушения принципов СОЛИД».
Обсуждают сегодня