@proGO

Страница 1169 из 1674
Sergey
21.01.2018
18:52:11
Ну у указателя

Aleksandr
21.01.2018
18:52:13
вот же

Ну у указателя
какого указателя?)

Sergey
21.01.2018
18:53:23
Ща сек

Google
Mykyta
21.01.2018
18:53:27
Ну у указателя
os.Open возвращает *File

а не FileInfo

сорри, наизусть стандарт либу плохо помню

Sergey
21.01.2018
18:54:22
какого указателя?)
да да там *File



Mykyta
21.01.2018
18:55:03
да да там *File
https://golang.org/pkg/os/#File

Sergey
21.01.2018
18:55:04
то есть

по идеи

*File реализует io.Writer / Reader

Mykyta
21.01.2018
18:55:29
Ага

Сорян что запутал с FileInfo

Sergey
21.01.2018
18:56:15
да нормас

нет
пасяб

Google
Demuz
22.01.2018
06:36:04
Доброго времени суток всем! Ну что, начем? ))) Посоветуйте пожалуйста либ, где максимально упрощен HTTP POST JSON запрос.

Demuz
22.01.2018
06:37:07
net/http?)
Мне более высокоуровнего нужно. Подобие requests в питоне есть. Просто написал в строку и отправил.

Alexey
22.01.2018
06:37:08
Можно маленький враппер написать, чтоб парсить ответ, и ништяк

Demuz
22.01.2018
06:38:01
Что написал в строку?
Это образно. Имею ввиду уровень простоты как в requests.

Здесь сам язык не позволит запрос так же просто отправить как в питоне ((((

Alexey
22.01.2018
06:39:58
Ну можно написать функцию, на вход урл, и два интерфейса, в один структура для отправки, в другой - для ответа. И внутри вся отсылка. Ради такого либу искать - это совсем оверкилл, это не из пушки по воробьям, это атомной бомбой по муравью

10 строчек

Alexey
22.01.2018
06:41:51
Ща попробую. Думал может бест практис есть какой-нибудь.
Все свое пишут) потому что на го просто, а питон ущербный, и там приходится либы типа requests использовать

Demuz
22.01.2018
06:42:22
Все свое пишут) потому что на го просто, а питон ущербный, и там приходится либы типа requests использовать
Не вижу ущерба в такой простоте запроса. Есть такое понятие еще как простота.



Demuz
22.01.2018
06:43:02
Alexey
22.01.2018
06:43:09
Из коробки боль и унижение

А в го из коробки достаточно, чтоб не искать либу

Demuz
22.01.2018
06:44:33
Ща попробуем.

Alexey
22.01.2018
06:44:47
Ну типа того. Только http client надо переиспользовать и ошибки проверять

Google
Demuz
22.01.2018
06:45:23
Ну в принципе ничего сложного.

Александр
22.01.2018
06:52:32
в дефолтной либе еще таймауты настраивать надо

var netTransport = &http.Transport{ Dial: (&net.Dialer{ Timeout: 5 * time.Second, }).Dial, TLSHandshakeTimeout: 5 * time.Second, } var netClient = &http.Client{ Timeout: time.Second * 10, Transport: netTransport, }

например так

@Demuzx

Demuz
22.01.2018
06:55:11
Окей. Спасибо.

Александр
22.01.2018
06:56:06
Окей. Спасибо.
их надо именно настраивать, под задачу ? Не вздумайте копипастить тупо

Demuz
22.01.2018
06:56:16
Я уже скопипастил.



Из коробки боль и унижение
Согласен. Самому под себя легче высокоуровневое что-нибудь написать. Класная вещь. Понравилось в net http копаться.

И теперь, чтобы корректный JSON отправить на эндпоинт, сейчас начнется маршалл, анмаршалл, туда-сюда, да?

Alexey
22.01.2018
07:31:38
И теперь, чтобы корректный JSON отправить на эндпоинт, сейчас начнется маршалл, анмаршалл, туда-сюда, да?
Func send (req, resp interface {}, url string) error И внутри у нее для всех маршал анмаршал

Alexey
22.01.2018
07:32:04
А на вход даёшь просто указатели для нужной структуры

Demuz
22.01.2018
07:35:00
Еще говорят же часто многие не понимают интерфейсы. Смотрите, имеет ли смысл делать type Notificator interface { Send() error } , например если есть методы(Send() error) отправки уведомлений SMS(http.req), WEB(WebSocket), Email(пока не начал), Android(WS), IOS(WS). Разумеется, каждое из уведомлений отправляется своим методом Send(). Имеет ли вобще смысл здесь создавать и реализовывать именно интерфейс?

Александр
22.01.2018
07:36:24
а они где то в одном месте передаются?

интерфейсы то делаются что бы конкретный тип не писать

Demuz
22.01.2018
07:39:16


Send() реализуют - SMS(http.req), WEB(WebSocket), Email(пока не начал), Android(WS), IOS(WS)

И он получается отправляет для каждого типа своим методом.

Александр
22.01.2018
07:40:26
если бы где то эти классы передавались, тогда да

Google
Александр
22.01.2018
07:40:31
а так то какой смысл?

для струирования кода интерфейсы в коде не применимы

ибо утиная типизация

Admin
ERROR: S client not available

Александр
22.01.2018
07:41:19
ну это чисто моей имхо, подождем более авторитетных товарищей

Demuz
22.01.2018
07:42:16
если бы где то эти классы передавались, тогда да
Передаются. Берется клиента WebSocket, клиента Номер телефона, Клиента имейл, клиента телефон на Android. Затем вся эта пачка просто передается сюда и всё. Так не делают? *Клиент - имею ввиду конечный пользователь.

Александр
22.01.2018
07:43:20
ну тогда можно и запилить

Demuz
22.01.2018
07:43:37
Просто по другому мне придется всё постоянно руками писать. А после того как я начал так делать, заметил что масштабируемость чтоли безболезненная, или незнаю как выразиться, типа того.

Я заметил что вот как раз таки вот эта точка отправки сообщений, она вообще нихрена не изменяется )))) Например прибавляется метод отправки через ШмебСокет ))), а в методе ничего не менается )

Michael
22.01.2018
07:46:02
ну, вот есть транспорты, они могут отправлять

реализуешь Send

а в месте отправки его дёргаешь так как реалтзация тебе не важно

те главное отправить

Demuz
22.01.2018
07:47:00
ну тогда можно и запилить
Я еще не пилил, но предполагаю такую возможность и поэтому тоже хочу у спецов спросить, имеет ли смысл, поскольку допускаю что я сам не до конца могу применять интерфейсы именно там, где это необходимо.

Michael
22.01.2018
07:47:54
?

Demuz
22.01.2018
07:48:11
Имею ввиду, что именно вы подразумевали в сообщении?

Michael
22.01.2018
07:49:02
обобщение - смс, веб, сокет

Demuz
22.01.2018
07:49:11
Типа, реализация отправки чего-либо?

Michael
22.01.2018
07:49:18
угу

Google
Demuz
22.01.2018
07:49:19
А, все, понятно. Ну вон я там сфоткал.

Michael
22.01.2018
07:49:52
и выпей чашечку кохфа

Demuz
22.01.2018
07:50:02
Да, вот ща заварю.

Alexey
22.01.2018
07:53:15
Съешь ещё этих вкусных французских булочек

Demuz
22.01.2018
07:55:55
Да мне просто ппц нравится идея того, что если в проект понадобилось добавить новый метод отправки сообщений, например пусть будет телеграм бот, теперь ты описываешь новую структуру, прописываете ей метод сенд, который реализует Notificator interface{} и все. Это жесть! И все! И получается, больше ни в каких точках нет изменений.

Это я конкретно про эту точку.

Marlik
22.01.2018
08:05:25
А вот кстати вопрос, есть у меня структура, но все данные на первом этапе не нужны, возможно на другом понадобятся, это нормально не юзать сразу всё из структуры?

Александр
22.01.2018
08:06:37
ну норм

Alexander
22.01.2018
09:02:25
тебе решать, но я так не делаю)

Страница 1169 из 1674