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

Давайте обратимся к истокам. Щас вот наброшу прям =) А почему

именно нельзя иметь контект в презентере или бизнес-логике? В чем обоснование?
Я слышал такие причины, что нельзя тогда простестить. Но есть Роболектрик, пожалуйста.
Роболектрик долгий. У меня он стартует за 6 секунд, это много?
На сколько я знаю, если Роболектрик стартовал для одного теста, то уже просто подрубается к следующим. То есть 6 секунд тратится один раз. Дальше все по накатке.
Действительно иногда требуется либо получение строки, либо даты, либо еще чего-то.
Не спорю, можно это обходить энамом, врапперами и т.д. Но стоит ли это того?
Я придерживаюсь позиции, что архитектура должна нам прежде всего помогать, а не усложнять. А если следовать бездумно некоторым канонам, смысл которых не так ясен, мне кажется не совсем верным.

3 ответов

20 просмотров

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

имхо тестирование вообще мимо. Смысл в разделении приложения по слоям. И вот уже исходя их этого контекста не должно быть в презентере.

К теме, почему нельзя/можно использовать контекст в презентере. Я придерживаюсь такого мнения: контекст в презентере открывает огромное количество вариантов для чего его можно использовать. Когда видишь зависимость презентера от контекста, то мозг сразу настораживается, непонятно для чего конкретно он используется. Если презентер зависит только от самописных классов(причем построенных по принципу единственной ответственности) то просто глядя на конструктор презентера можно очертить границы, на что он может повлиять и от чего он зависит. Если конечно вы работаете в команде, каждый член которой имеет внутреннюю дисциплину и понимает какие границы использования контекста в презентере или у вас жесткое код ревью то проблем не должно быть, но если это не так, то на выходе можно получить проект, который вроде построен по MVP, но на самом деле имеет презентеры с размытой ответственностью и с различными side-эффектами. К тому же при таком раскладе может сыграть теория разбитых окон. Поэтому лучше задать изначальные ограничения на зависимости презентера и избавить проект от будущих проблем. Естественно за это придется заплатить чуть большим количеством кода, но, как известно, разрабы больше времени читают а не пишут код.

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта