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

42 ответов

24 просмотра

Никак, просто код писать.

fp ? ) 😂

иначе менять работу чаще ;)

Alex- Автор вопроса
Ilya Zviagin
Никак, просто код писать.

И как ты собираешься писать свой код без паттернов? Хуяк-хуяк и в продакшен?

Alex
И как ты собираешься писать свой код без паттернов...

Ну... А вот какие паттерны так вот для питона уж совсем нужны?

Alex
И как ты собираешься писать свой код без паттернов...

Спор про паттерны я думаю не нужен. Всегда лучше знать чем не знать)

Oleksandr Kalmykov
Спор про паттерны я думаю не нужен. Всегда лучше з...

Это да, но питонисту зачем — не совсем ясно (мне)

Alex- Автор вопроса
Ilya Zviagin
Ну... А вот какие паттерны так вот для питона уж...

Эм нет, давай так: Допустим у тебя есть апишечка. Как ты будешь делать к ней запросы?

Alex
Эм нет, давай так: Допустим у тебя есть апишечка....

апишечка — это WEB апишечка, или C call level API?

Alex
веб апишечка.

Так, ну и в чём вопрос? Как я буду делать к ней запросы — на HTTP. И не факт, что вообще на питоне.

Alex- Автор вопроса
Alex
ну а в код ты этот как упакуешь?

А как это фреймворк реализует — так и упакую. Я вон на Ладоне делал — там вызов API это просто питоновская функция в модуле (или классе — не помню, не очень важно)

Alex
какой еще фреймворк?

В котором я работать буду. Ладон, Бутылка, или Джанго.

Alex- Автор вопроса
Ilya Zviagin
В котором я работать буду. Ладон, Бутылка, или Джа...

А при чем здесь они? Может у тебя вообще тонкий клиент и тебе в нем надо чье-то апи утилизировать. Я про это говорю.

Alex
А при чем здесь они? Может у тебя вообще тонкий кл...

Ладно, я не понял тогда. Сори что поднял тему.

Alex- Автор вопроса
Ilya Zviagin
Ладно, я не понял тогда. Сори что поднял тему.

Давай тогда я объясню. Допустим у нас есть rest api и мы хотим его утилизировать у себя. Пусть это будет например апи какой-нибудь рекламной площадки и мы хотим в тонком клиенте отображать статистику по рекламным кампаниям. Допустим мы пишем клиент на питоне. Опустим нюансы типа фреймфорка для гуи и просто остановимся на питоне. Итак, как ты собираешься делать запросы в это апи?

Alex
Давай тогда я объясню. Допустим у нас есть rest ap...

Я собираюсь делать запросы по REQUESTS.

Alex- Автор вопроса
Ilya Zviagin
что значит в тонком клиенте?

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

Alex- Автор вопроса
Ilya Zviagin
Я собираюсь делать запросы по REQUESTS.

хорошо, как именно? просто requests.get/post?

Alex
хорошо, как именно? просто requests.get/post?

Ну, в первом приближении и так можно. Можно наваять маленькую фукнцию / набор функций / класс чтобы делать однотипные вещи (хер там знает что отдаёт это API) Ну и кстати SWAGGER же есть наверняка — можно им сгенирировать клиента.

Alex
хорошо, как именно? просто requests.get/post?

И вот я не понимаю — при чём тут паттерны?

Alex- Автор вопроса
Ilya Zviagin
И вот я не понимаю — при чём тут паттерны?

> Можно наваять маленькую фукнцию / набор функций / класс Допустим класс. Как ты его организуешь? Просто def get_campaigns(self): return requests.get('/api/campaigns') ?

Alex
> Можно наваять маленькую фукнцию / набор функций ...

Ой ну не знаю. надо смотреть на апи это.

Alex- Автор вопроса
Alex
ну примерно так?

Да нет, там наверное надо данные кэшировать, а не запрашивать каждый раз, И обрабатывать как-то, оно же (requests.get('/api/campaigns')) выдаёт объект-результат запроса, надо из него данные вытащить, зачем прям вот объект отдавать? Смысла мало. А так не знаю, — надо задаться целью, что эта прослойка делать должна. Видимо, что-то полезное с данными, в терминах предметной области, чтобы клиент класса не думал ни о каком API, ни о каком HTTP

Alex- Автор вопроса
Ilya Zviagin
Да нет, там наверное надо данные кэшировать, а не ...

> А так не знаю, — надо задаться целью, что эта прослойка делать должна. На такие вещи и помогает отвечать знание паттернов.

Alex
> А так не знаю, — надо задаться целью, что эта пр...

Ну, не согласен, просто наличие мозгов помогает больше. Паттерны можно и самому придумать находу.

Alex- Автор вопроса
Ilya Zviagin
Ну, не согласен, просто наличие мозгов помогает бо...

> Паттерны можно и самому придумать находу. Так заебись же. Расскажи пожалуйста какие паттерны ты придумал. Мне как интересующемуся архитектурой прям интересно.

Alex
> Паттерны можно и самому придумать находу. Так за...

Я предумал независимо от его автора virtual self reference , Composite, независимо от ГоФ, чёта ещё дофига всего, не помню.

Alex- Автор вопроса
Alex- Автор вопроса
Ilya Zviagin
сейчас переведу на GoF...

потому что если это твоя выдумка, то только ты знаешь что это такое.

Alex
> virtual self reference Ух ты, а это что такое?

В общем наверное это декоратор. https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BA%D0%BE%D1%80%D0%B0%D1%82%D0%BE%D1%80_(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F) с динамически меняющейся реализацией каждого метода. Каждый метод имеет параллельную фукнцию, возвращающую объект, реализующий данный метод. Сначала получается этот объект, затем ему перенаправляется вызов метода.

Alex- Автор вопроса
Ilya Zviagin
В общем наверное это декоратор. https://ru.wikipe...

> с динамически меняющейся реализацией каждого метода. Это не декоратор. Это больше похоже на замыкание или какую-то кодогенерацию. > Каждый метод имеет параллельную фукнцию, возвращающую объект, реализующий данный метод. Сначала получается этот объект, затем ему перенаправляется вызов метода. Звучит просто как своего рода dispatch.

Alex- Автор вопроса

Стикер

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

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

а через 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
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта