
Roman
09.06.2018
07:30:55

Nikolay
09.06.2018
07:34:41
IWebProxy вроде для WebClient онли

Evgeniy
09.06.2018
07:37:38
Что там, скоро F#4.5 выйдет?

Google

Летучая
09.06.2018
07:38:21

Evgeniy
09.06.2018
07:38:32
Давайте все документировать!

Roman
09.06.2018
07:40:42
Привет!!

Bonart
09.06.2018
08:52:31

Летучая
09.06.2018
08:53:00

Bonart
09.06.2018
08:53:18
Это всего лишь DIP
В этом случае пакетам с реализациями друг на друга ссылаться не нужно
И ненужные тебе зависимости не тягаются

Vasily
09.06.2018
08:57:39
Да не надо так делать
Посылка запроса-это чейн
Соответственно надо просто дать возможность встроиться в него

Google

Vasily
09.06.2018
09:01:05
Глянул код

Roman
09.06.2018
09:01:39

Vasily
09.06.2018
09:02:03
Проблема в явном инстанцировании HttpClient

Bonart
09.06.2018
09:02:23

Vasily
09.06.2018
09:02:35
Если хочется его использовать, лучше спрятать за интерфейс

Bonart
09.06.2018
09:02:47
Для встраивания нужен контракт и точка расширения

Roman
09.06.2018
09:02:52

Vasily
09.06.2018
09:02:55
В котором сделать метод Configure

Bonart
09.06.2018
09:03:15
HttpClient спрятать за интерфейс НЕ просто
Слишком много кишочков наружу
Фасад надо делать

Roman
09.06.2018
09:03:44

Vasily
09.06.2018
09:03:53
Фасад запроса нужен
Есть httprequest
У него есть тело, заголовки, параметры урл и метод
Вот если есть фасад запроса,то интерфейс из двух методов состоит-send и configure

Летучая
09.06.2018
09:08:37
Oчень слoжнo.

Vasily
09.06.2018
09:09:06
В целом в Api можно просто прокидыватл функцию конфигурирования клиента

Bonart
09.06.2018
09:10:14

Google

Vasily
09.06.2018
09:10:31
Одна
Httpclient->unit

Bonart
09.06.2018
09:11:04
Одна
Добавлять всякий раз будут по одной, кто бы спорил

Летучая
09.06.2018
09:11:23
Oдна из самых пoпулярных библиoтек для рабoты с Telegram Bot API — Telebot на питoне https://github.com/eternnoir/pyTelegramBotAPI прибита гвoздями к другoй библиoтеке requests. И люди нoрмальнo живут и пишут бoтoв без приседаний и ухищрений. Прoшу извинить за радикализм, нo мне кажется, никаких абстракций и кoнфигуратoрoв для настoлькo прoстoй задачи делать не нужнo. Жёсткo зависеть oт стандартнoгo HTTP клиента — этo нoрмальнo.

Bonart
09.06.2018
09:12:17
Все отдельные задачи "настолько простые". Вот только HttpCLient в ряде случаев увы овно

Vlad
09.06.2018
09:12:46

Evgeniy
09.06.2018
09:12:49

Vasily
09.06.2018
09:12:50
Все говно в ряде случаев

Evgeniy
09.06.2018
09:13:30

Vasily
09.06.2018
09:13:48
Можно, конечно, упороться

Evgeniy
09.06.2018
09:14:08
Наверное, стоит начать с ревью PR от @neftedollar, чтобы хоть какой-то прокси был прямо сейчас?

Летучая
09.06.2018
09:14:26
Нет, мoжет, чтo-тo настраиваемoе и стoит дoбавлять, нo тoгда егo и спрятать нужнo пoдальше, чтoб эксперт нашёл, а ньюби не испугался

Bonart
09.06.2018
09:15:15
Разумеется, пользоваться должно быть легко. Но это НЕ значит, что легко спроектировать и реализовать то, чем легко пользоваться

Roman
09.06.2018
09:15:29

Bonart
09.06.2018
09:15:51
Не совсем - прокси-то не настроить

Roman
09.06.2018
09:16:04

Ayrat
09.06.2018
09:16:06
А чо не сделать как в http.fs?

Roman
09.06.2018
09:16:14

Ayrat
09.06.2018
09:16:23
Это обертка для httphandler

Google

Ayrat
09.06.2018
09:16:31
На F# и гопаке. От haf кстати

Летучая
09.06.2018
09:16:33
так и сделано сейчас
Там надo api config.Client config.Token писать, сделай чтoб мoжнo былo кoнфиг прoбрасывать (а тo раздуется) :)

Roman
09.06.2018
09:16:50

Ayrat
09.06.2018
09:17:15
Раньше была обертка для httprequestmessage, но теперь он перешёл на httphandler

Bonart
09.06.2018
09:17:40
И снаружи никто не увидел разницы?

Vasily
09.06.2018
09:17:53
Блин, пробросьте в Api функцию конфигурации и все
И сделайте ее дефолтным параметров

Ayrat
09.06.2018
09:18:36
Ну, сделано норм, хттп хендлер там внутри, снаружи типа все функционально

Vasily
09.06.2018
09:18:58
Даже код менять не надо в куче мест

Bonart
09.06.2018
09:19:48

Roman
09.06.2018
09:20:15

Vasily
09.06.2018
09:22:27
Млин. Ща
let internal Api config =.... И возвращаем рекорд с двумя методами
Которые ща статик мемберами
Там тип не нужен как таковой
Точнее, его конструктор и прочее
Все равно там использование как Api.Method

Roman
09.06.2018
09:27:58

Vasily
09.06.2018
09:28:00
Так почему нельзя вернуть рекорд?

Google

Roman
09.06.2018
09:28:12

Летучая
09.06.2018
09:29:38

Ayrat
09.06.2018
09:32:29
Вот как в Http.FS сделано
есть интернал клиент и врапер для него
https://github.com/haf/Http.fs/blob/52bb2d4f1c0b5b9aa028b618c7826250a264576d/HttpFs/HttpFs.fs#L634
По дефолту хттп запросы создаются с помощью дефолтного хттпклиента
https://github.com/haf/Http.fs/blob/52bb2d4f1c0b5b9aa028b618c7826250a264576d/HttpFs/HttpFs.fs#L1033
но всегда можно создать со своим, ну и через паршал апликейшн запомнить навсегда или сбрасывать при необходимости
https://github.com/haf/Http.fs/blob/52bb2d4f1c0b5b9aa028b618c7826250a264576d/HttpFs/HttpFs.fs#L1046

Evgeniy
09.06.2018
09:35:00
@neftedollar У меня, кстати, замечание. Старайся рефакторинги и правки кодстайла делать в отдельных PR. :)

Roman
09.06.2018
09:35:10

Evgeniy
09.06.2018
09:35:26
Ревьювить будет попроще. :)

Vasily
09.06.2018
09:36:03

Evgeniy
09.06.2018
09:46:34
?
@neftedollar Может консистентно сделаем:
@fsharp_chat — F# Chat
@fsharp_flood — F# Flood
@fsharp_news — F# News
Обрати внимание на пробелы, заглавные буквы, и новые ссылки. ;)

Vlad
09.06.2018
09:49:29
пробел нужен, во спасение

Evgeniy
09.06.2018
09:49:48
А я обновлю в goq\telegram-list. Где у нас еще висят ссылки?

Roman
09.06.2018
09:53:04

Evgeniy
09.06.2018
09:53:57
done
У канала и флудилки заглавые буквы нужны.
// я зануда

Летучая
09.06.2018
09:54:09

Evgeniy
09.06.2018
09:56:25
Ок, PR в telegram-list кинул.