@ru_python

Страница 7959 из 9768
Валентин
01.02.2019
10:48:23
тут с терминами сложно
Вью отправляет запрос контроллеру Контроллер выполняет бизнес логику, заложенную в модели и решает, какой вью рендерить

Vasia
01.02.2019
10:48:26
он ломает все

Kirill Boev
01.02.2019
10:48:29
http://ipic.su/img/img7/fs/kiss_39kb.1549018096.png

Валентин
01.02.2019
10:48:33
Вью и модель явно не связаны вообще

Google
Tishka17
01.02.2019
10:48:34
это могли быть вьюхи jsonrpc и rest

A
01.02.2019
10:49:00
пробывал через selenium
но работает очень долго, что можно сделать?

Tishka17
01.02.2019
10:49:03
Валентин
01.02.2019
10:49:15
Да

Tishka17
01.02.2019
10:49:17
Да
то есть view парсит ввод и отдает в понятном контроллеру виде?

A
01.02.2019
10:49:34
точно никакого обхода нету?

Vasia
01.02.2019
10:49:39
нет

мы все здесь сидим и страдаем

Tishka17
01.02.2019
10:49:48
точно никакого обхода нету?
обратиться к владельцам сайта за нормальным api

Vasia
01.02.2019
10:49:55
только С++ бояре наслаждаются скоростью

Валентин
01.02.2019
10:50:19
то есть view парсит ввод и отдает в понятном контроллеру виде?
в общем случае нельзя сказать, кто парсит, от контекста зависит

Tishka17
01.02.2019
10:50:20
а ещё у меня проблема в этих MV* кто ссылку на кого хранит

Google
Валентин
01.02.2019
10:50:33
в случае с аргументами консоли скорее это работа контроллера

Рамиль
01.02.2019
10:50:46
Кто может скинуть ссылку на хорошую группу по c++? Только не баньте?

A
01.02.2019
10:51:33
Здравствуйте

Валентин
01.02.2019
10:51:36
а ещё у меня проблема в этих MV* кто ссылку на кого хранит
контроллер на модель, чтобы вызывать бизнес логику и получать данные

Tishka17
01.02.2019
10:51:37
а ещё у меня проблема в этих MV* кто ссылку на кого хранит
то есть кого куда инжектят по интерфейсам, а кто просто работает

?? Eugene
01.02.2019
10:51:40
Кто может скинуть ссылку на хорошую группу по c++? Только не баньте?
Есть кое-что получше: https://github.com/goq/telegram-list/blob/master/README.md#Меню

Валентин
01.02.2019
10:51:48
контроллер на вью, чтобы возвращать их пользователю

возможно вью на контроллер, если технически это нужно

если вью это хтмл страница, то она явно не имеет же ссылок на твой контроллер на бэкенде

имеет только роуты, куда стучать

Tishka17
01.02.2019
10:53:31
возможно вью на контроллер, если технически это нужно
Ну если Вью вызывать методы контроллера, она должна о нем знать

Vasia
01.02.2019
10:54:29
естественно о рычагах контроллера вью знает

она не знает о логике внутри рычагов, просто отправляет данные и все

Tishka17
01.02.2019
10:54:52
То есть должен быть абстрактный контроллер

Интерфейс

Vasia
01.02.2019
10:54:58
нет

должен быть конкретный контроллер с логикой

Валентин
01.02.2019
10:55:14
просто у контролера должен быть интерфейс, через который вью с ним общается

Maxim robox
01.02.2019
10:55:19
@Tishka17 чисто на всякий случай скажу, поскольку у тебя бекграунд на фласке, во фласке не mvc. Там можно сделать как угодно, но как правило там не mvc. Из того, что видел я, там был MTV (model template view), как и в джанго. А то вдруг ты из-за этого голову ломаешь.

Google
Vasia
01.02.2019
10:55:54
у тебя каша в голове, ты должен понять причину архитектыр mvc - когда ты пихаешь логику везде, то это сложно во первых разделять для рефакторинга, во вторых поддерживать

Tishka17
01.02.2019
10:56:00
Но да, фласк портит

Vasia
01.02.2019
10:56:21
для этого придумали что вью просто отображает, контроллер преобразует, модель хранит

контроллер преобразует в обе стороны

Tishka17
01.02.2019
10:56:45
просто у контролера должен быть интерфейс, через который вью с ним общается
Если Вью юзает контроллер напрямую без интерфейса, я не могу её протестить

Валентин
01.02.2019
10:56:56
напрямую это как?

функция контроллера, которая вызывается вью, это и есть интерфейс же

Tishka17
01.02.2019
10:57:42
Напрямую - это фиксированный класс. Или прям сама создаёт инстанс

Валентин
01.02.2019
10:57:57
интерфейс тут не в смысле какая-то абстракция

Vasia
01.02.2019
10:58:04
тест создает

Валентин
01.02.2019
10:58:08
а в смысле просто соглашение о том, как общаются вью и контроллер

через какие методы, какие параметры и тд

у тебя может быть 1 класс контроллера без всяких абстракций

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

Vasia
01.02.2019
10:58:47
после джавы или сишарпа сложно привыкнуть что куча абстракций в питоне не нужны

я первое время постоянно тосковал по IClassInterface

Tishka17
01.02.2019
10:59:15
Vasia
01.02.2019
10:59:24
ну, мне пока это ничего не нужно

Bogdan (SirEdvin)
01.02.2019
10:59:35
Ну протоколы обещают
Хм ... какие протоколы?

Google
Владимир
01.02.2019
11:00:10
Tishka17
01.02.2019
11:00:40
https://www.python.org/dev/peps/pep-0544/

Terminator
01.02.2019
11:05:36
@var_name будет жить. Поприветствуем!

Валентин
01.02.2019
11:06:18
https://www.python.org/dev/peps/pep-0544/
как в golang будут интерфейсы )

а, так это уже есть

в 3.7

Showly
01.02.2019
11:07:40
Нужно аналог сайта сделать, используя готовую API. Если кому интересна подработка , пишите в ЛС, пожалуйста.

Tishka17
01.02.2019
11:14:48
а, так это уже есть
Нету. Он оно драфт

Bogdan (SirEdvin)
01.02.2019
11:16:24
https://www.python.org/dev/peps/pep-0544/
Боюсь, получится как обычно, проще будет zope.interface взять

Tishka17
01.02.2019
11:20:40
Боюсь, получится как обычно, проще будет zope.interface взять
Да не. Речь о том, что ты будешь как в го отельно глядят объявлять интерфейс и анализатор будет проверять соответствие ему. Собственно, утиная типизация.

Tishka17
01.02.2019
11:22:29
Просто сейчас нет возможности сделать аннотацию для проверки что у всех переданных объектов есть нужный метод

Bogdan (SirEdvin)
01.02.2019
11:22:48
Или опять же, абстрактные классы)

Возможно я не совсем понимаю проблему)

Валентин
01.02.2019
11:23:52
смотри, ты zope ты явно указываешь реализацию

Tishka17
01.02.2019
11:23:53
Или опять же, абстрактные классы)
от абстрактного класса надо наследоваться

а в питоне вообще-то утиная типизация

Валентин
01.02.2019
11:24:09
class Foo: zope.interface.implements(IFoo)

в утиной типизации по-другому

Google
Валентин
01.02.2019
11:24:34
есть интерфейс Writable

Tishka17
01.02.2019
11:24:42
давай на прмиере

Bogdan (SirEdvin)
01.02.2019
11:24:48
А, до меня дошло)

Валентин
01.02.2019
11:24:54
у него должен быть метод write с 1 параметром, например

ты нигде не пишешь в своем классе про Writable

Bogdan (SirEdvin)
01.02.2019
11:25:07
Ну да, в mypy костыли, поэтому никак :(

Валентин
01.02.2019
11:25:09
ты просто пишешь в классе метод write с таким же параметром

Tishka17
01.02.2019
11:25:19
да!

Bogdan (SirEdvin)
01.02.2019
11:25:38
Хотя

Стоп

Все равно можно сделать subclass_hook что бы в рантайме правильно проверять

И наследование не нужно

Tishka17
01.02.2019
11:26:31
class Writer(Protocol): def write(self, arg): pass class RealWriter: def write(self, arg): pass def work(writer: Writer): writer.write(1)

вот теперь тебе надо чтобы work(RealWriter()) анализтор съел, а work(1) - нет

вот с протоколами это весь код, который нужен

Bogdan (SirEdvin)
01.02.2019
11:27:42
Ну, если мы говорим про mypy, так все плохо, так что да :)

Tishka17
01.02.2019
11:28:13
да не в mypy дело, а в коде

Валентин
01.02.2019
11:28:15
статья на вики на всякий про это дело

https://ru.wikipedia.org/wiki/Утиная_типизация

Tishka17
01.02.2019
11:28:33
PEP про то, как прмиенить аннотации типов к утиной типизации

Страница 7959 из 9768