Pull to refresh
7
0
Владимир Мясников @vvovas

User

Send message

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

Проблема вызова только своего presenter'a решалась с помощью настроенной шины событий, которая представляла собой дерево, где корень - это медиатор, а лист - view. соответственно событие, всплывая от view просто не могло попасть к чужому presenter'у.

Ваш вариант тоже вполне рабочий и если с ним нет проблем - почему нет?

MVP очень приятный паттерн. Работал с ним во времена WinForms лет 15 назад.

Мы тогда тоже использовали подход, когда view дергает методы presenter'a, но потом перешли к более удобному и, на мой взгляд, правильному варианту: view не знает ничего о presenter'e и генерит события. Presenter подписан на эти события и реагирует. На события также может быть подписан mediator, который как раз имеет право дергать методы presenter'ов, потому что знает о них, чтобы реализовать реакцию одной view, на события другой.

У вас, я так понял, есть шина событий, не думали о таком варианте?

Мне кажется это индивидуально. У меня раньше получалось сделать сон осознанным, если я обращал внимание на то, что я задаюсь вопросом "а не сон ли это?"
В реальном мире мы никогда не задаемся этим вопросом. Или, например, я во обычных снах никогда не стою на месте, все время двигаюсь. Если удавалось остановиться во сне или хотя бы подумать об остановке, это также помогало войти в режим осознанного сновидения.
Еще экспериментировал с мысленным счетом и повторением фразы "я сплю" при засыпании: 1-я сплю, 2-я сплю и т.д. Несколько раз удавалось таким образом получить осознанные сны, так как фраза " я сплю" всплывала в самом сне и я за нее цеплялся.

Но как я уже сказал, думаю это все индивидуально.

Оговорка-то есть и я ее видел, но возникает вопрос: «можно дарить» - это я перевел и ни у кого вопросов не возникло или, будь добр, оформи договор дарения.

например, валютные операции между валютными резидентами РФ, хотя бы один из которых проживает большую часть года в России.

Я правильно понял, что, если я уехал в другую страну( с автоматическим обменом инфой) и не появляюсь в России больше полугода, а потом решил перевести родственникам, которые тут остались, денег, то это незаконно.

А на свой счет в РФ со своего иностранного я могу переводить?

Например, при сбое одного модуля шифрования могут полностью прекратить работу другие сервисы, включая движок рекомендаций, а в монолите такого не произойдёт.

Не совсем понятно, почему сделан такой вывод. Какие-то части других сервисов, которые работают с модулем шифрования перестанут работать, но полностью-то они с чего перестанут работать? В монолите все то же самое.

Думаю, речь о var переменных, которые видимы за пределами интуитивной области видимости.

Цель нигде ничего не хранить разбивается о потребность хранить мнемонические фразы с сидом.

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

А как Рогозин туда пишет? Твиттер ведь заблокирован.

Сэр Чарльз Э́нтони Ри́чард Хо́ар, который попал на фото к посту, но про него "забыли" написать в самой статье. Иронично..

Простите, но накипело...

Вот такой уровень "обучающих" статей я вижу последние несколько лет.
Есть задача? Скопируй код по этой ссылке (поставь вот этот пакет), напиши вот эту строчку и у тебя заработает.
Почему этот пакет? Как он работает? Что это за строчка? Это знать не нужно, потому что задача решена.

А если не решена, то вот еще надо дописать чуть-чуть: возьми список -> преврати в множество -> преврати в список (зачем?!) -> получи длину.
Но даже мне, человеку, который ни разу не работал с питоном, хватило полминуты, чтобы найти в документации, что можно сразу использовать множество. https://docs.python.org/3/library/stdtypes.html#set

Если мы хотим быть уверенными, что наш код делает то, что должен, то нужно четко понимать, что без интеграционных тестов описанных подход не работает. Сейчас вы тестируете, что ваш useCase вызывает с нужными параметрами методы связанных с ним портов. Проблема в том, что именно вы отвечаете за реализацию адаптеров. Грубо говоря, если вы в adapter'e HttpResource в методе send ничего не напишете, все ваши тесты будут зелеными, хотя код будет не рабочим.

Опять же теперь ваши тесты завязаны на гексагональную архитектуру и, если вдруг вы решите переписать код по-другому, то придется переписать и все тесты.

Я в текущем проекте использую чуть более широкие границы в тестах. Мы тестируем бэкенд и, соответственно:
1. Входными параметрами у нас являются не параметры useCase'a, а входной запрос от клиента.
2. Mock реализации делаются для тех частей, за реализацию, которых мы не отвечаем: запрос к БД, отправка сообщения в Message brocker, HTTP запрос к стороннему API и т.п.
3. Тестируются как раз правильные запросы к mock'ам, а также реакция на success/failure ответы от них.
Таким образом я не привязан к способу написания кода. В проекте есть как старые куски написанные в плоском стиле: вызови то, вызови это и т.д., так и новый код, как раз на гексагональной архитектуре. Рефакторинг при таком подходе не ломает тесты.

Тесты придется переписывать, только при изменении бизнес логики или замене одного внешнего сервиса на другой(одну БД, на другую). При описанном у вас подходе, такие замены вроде как не ломают тесты, но это только кажется, потому что, как я уже сказал, вам нужны интеграционные и сломаются уже они.

Я долго вот в этой игре зависал в свое время: missile-game.bwhmather.com
Как оказалось в app store есть теперь
Кто-то просто ее вообще не переваривает. Багфиксинг, в логах поковыряться, формочки однообразные… У меня просто мозг начинает искать способы оптимизации рутины и, наверное, поэтому рутина как таковая и не напрягает.
Я бы ушел в столярку + занялся бы фотографией. Я и так этим занимаюсь, но совсем по чуть-чуть.

А что насчет выгорания и работы всю жизнь программистом — я, например, работаю программистом в компании 13 лет. Это первое и единственное место работы. Повезло, наверное — умею в любой задаче интересное что-то для себя найти. Рутина, конечно, бывает, но так чтобы отбить желание программировать — нет. Как уже выше писали, в программировании столько областей, что всегда можно найти что-то интересное для себя.

К сожалению, text-overflow: ellipsis, насколько я помню, работает только на однострочном тексте. Бывает, что нужно так обрезать многострочный текст и тут приходится выкручиваться другими способами.

А потом разработчики начинают отдавать фиксы даже не запуская проект после изменений. Зачем? Есть же тестировщик.
Ну и что, что он отдаст обратно через минуту после запуска. Мое время дороже.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity