172 похожих чатов

Коллеги, привет. Никто не хочет покритиковать тестовое задание? Как по

мне — сделано ок, но работодателям не нравится https://github.com/pavelgubarev/openWeather . Хочу сделать лучше, но не знаю, что править. Спасибо!

14 ответов

14 просмотров

CitiesListViewController кто ему данные провайдит? Протоколом не закрыт

Pavel-Gubarev Автор вопроса
Kei Sidorov
CitiesListViewController кто ему данные провайдит?...

CustomTabBarController ему провайдит данные. то есть презентер (через протокол) даёт данные главной вьюхе (CustomTabBarController), а она уже отдаёт дочерней CitiesListViewController. Или это не ок?

Pavel Gubarev
CustomTabBarController ему провайдит данные. то ес...

Не ок. CustomTabBarController — по хорошему он должен быть «тупым» отвечать только за инициализацию и навигацию. Грузить данные должен тот экран, где они будут показаны. Если эти данные используются на нескольких экранах и их нет надобности грузить заново, то нужно сохранить в сервис какой-нибудь. А потом брать эти данные там, где нужно. Если ты заявляешь что у тебя есть архитектура и она kind-a-MVP то презентеры должны быть у каждой самостоятельной вьюхи (вью контроллера). Вьюха является самостоятельной если она несет функциональную нагрузку, а не создана для скрытия кода. (Пример функциональной вьюхи — ячейка таблицы, пример скрытия кода — кастомный свитчер, кастомный лейбл)

Pavel-Gubarev Автор вопроса
Kei Sidorov
Не ок. CustomTabBarController — по хорошему он дол...

А разные презентеры могут друг о друге знать? Допустим, у меня задача: подгружается таб бар. В этот момент надо загрузить данные в одну из (невидимых ещё) вьюх, чтобы при обращении к ней уже всё было красиво. Я думаю так — таббар дёргает свой презентер, он дёргает презентер невидимой вьюхи и этот последний презентер уже даёт данные для невидимой вьюхи. Это нормально, «красиво»?

Pavel Gubarev
А разные презентеры могут друг о друге знать? Допу...

Да, презентеры могут общаться друг с другом в рамках дозволенного. Под дозволенным я имею в виду логичность происходящего, четко границу описать в сообщении сложно. В твоём кейсе вполне ок если родительский по сути презентер (таб бар контроллера) будет знать о своих «детях» и что-то им провайдить. В другую сторону (от детей родителю) тоже ок, но я бы рассмотрел вариант ввести какую-то абстракцию, а не держать ссылку прям на класс/протокол родителя.

Pavel-Gubarev Автор вопроса

открыл 1 файл, мне тоже не нравится

Если интересно, могу за скромное вознаграждение в 1000 рублей сделать ревью

а где тесты? точнее, тестов нет, зачем тогда папки? это сразу отталкивает, хочется посмотреть что и как тестируется, а там пустые файлы. мне бы тоже не очень понравилось

а работодатели не говорят что им не нравится?

Pavel-Gubarev Автор вопроса
Andrey Yastrebov
а работодатели не говорят что им не нравится?

Не все себя утруждают подробными ответами 🙂 иногда отвечают, но общими словами типа «есть нарушения принципов СОЛИД».

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
Мне вот любопытно. Уже сколько времени имею соблазн купить макбук, ибо подозреваю что очень уж удобен будет в связке с другой техникой от эпл которая у меня есть, да и сам по ...
Not Yeromin
9
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Карта сайта