@gogolang

Страница 1535 из 1630
Никита
11.10.2018
15:36:26
репозиторий скрывает конкретную реализацию
то есть в принципе ок иметь метод Restore?

Aleksandr
11.10.2018
15:36:39
причем тут язык? репозиторий - интерфейс к хранилищу. это имеется в виду

Илья
11.10.2018
15:36:45
где это репозиторий — интерфейс?
type Repository interface{ } - достаточно интерфейсно?

Google
Михаил
11.10.2018
15:37:00
Подскажите как внутри функции присвоить запросу контекст?

Илья
11.10.2018
15:37:03
то есть в принципе ок иметь метод Restore?
да, ОК иметь методы, которые вам нужны

Илья
11.10.2018
15:37:52
вагную, что нужно передать в функцию контекст

но вопрос пугает

Daniel
11.10.2018
15:38:09
я думаю там все сложнее

Alexander
11.10.2018
15:38:10
Почему нет?
потому-что в голанге нет обобщённых интерфейсов

Илья
11.10.2018
15:38:29
Daniel
11.10.2018
15:38:32
возможно, даже рогатые твари

Михаил
11.10.2018
15:39:07
Есть f(r *http.Request). Внутри функции присвоить ctx := r.Context() сtx = context.WithValue(ctx, "tt", "123") r = r.WithContext(ctx)

Google
Alexander
11.10.2018
15:41:07
то есть в принципе ок иметь метод Restore?
Короче репозиторий это скорее паттерн, а ещё скорее это часть методологии, которая называется Domain Driven Development. А делать вы можете что хотите, законом не запрещено.

Roman
11.10.2018
15:41:55
Подвох в том, что нет никакого композитного оператора &[]. Есть две раздельные операции. [0] - получить первый элемент слайса, & - вернуть его адрес
https://goplay.space/#PYb1K0nmmTL ты ошибаешься. Если бы это была 2 операции тогда & взял бы адрес не item'а а копии в стэке, а он берёт именно адрес item'а в array'e под слайсом

Подвох в том, что нет никакого композитного оператора &[]. Есть две раздельные операции. [0] - получить первый элемент слайса, & - вернуть его адрес
выходит что &[] это не композиция из 2 операторов а вообще отдельный оператор, который берёт адрес item'а.

Artem
11.10.2018
15:44:23
ноуп, все еще нет
Он все ещё уверен что она делает копию

Dmitri
11.10.2018
15:44:32
Просто посмотрите, как устроен слайс

Roman
11.10.2018
15:46:06
ещё раз, будучи бывшим плюсером, я исходил из того, что [] это функция в реализации интерфейса типа слайс. но это оказалось не так, это встроенная в сам язык конструкция

Ilya
11.10.2018
15:46:17
Здравствуйте! Что происходит когда структура расширяется при помощи анонимной вложенной структуры, но имеет такие же имена?

Daniel
11.10.2018
15:46:20
да, так и есть

Ilya
11.10.2018
15:46:40
Они переписываются?

Ilya
11.10.2018
15:47:20
а?!
Ну смотирте, гипотетически. Есть ```type A struct {

Daniel
11.10.2018
15:47:22
а в С++, наверное, функция, только я знать этого не желаю

Roman
11.10.2018
15:47:41
в С это тоже ни хера не функция
ну да, это вот только C++ видимо такой "прекрасный" в плане абстракций)))

Daniel
11.10.2018
15:48:01
ваши представления о прекрасном пугают меня

Roman
11.10.2018
15:48:11
Ilya
11.10.2018
15:48:41
а?!
'''type A struct {

Google
Dmitri
11.10.2018
15:48:48
Он все ещё уверен что она делает копию
А потом он получит вот так адрес, потом заппендит что-то к слайсу и вообще охренеет от происходящего)

Daniel
11.10.2018
15:49:00
'''type A struct {
давайте сразу в play

Ilya
11.10.2018
15:49:06
of

Roman
11.10.2018
15:50:27
ну ведь согласитесь это прекрасно когда: a = new Array() c = a[10] может повесить программу на 5 минут, потому-что в реализации перегрузки индексного оператора пойдёт брать этот int по сети и повиснет на await connection ? </sarcasm>

Alexander
11.10.2018
15:50:35
ваши представления о прекрасном пугают меня
а разве есть что-то хорошее во встроенных языковых конструкциях?

Ilya
11.10.2018
15:53:09
давайте сразу в play
https://play.golang.org/p/c98JMp-EOih

Darwin
11.10.2018
15:53:31
дупликейт же

Alexander
11.10.2018
15:53:35
@nexmean ??
1) "прекрасно, когда в языке нет контроля за эффектами" 2) ваш пример — это детский сад, а не инженерия, банальное отсутствие хоть какой-то культуры и понимания того, что он делает, у человека, который такое писал

ну и утинная типизация с возможностью перегрузки операторов, абсолютно насрав на исходную его сигнатуру — тоже весело

Roman
11.10.2018
15:54:59
1) "прекрасно, когда в языке нет контроля за эффектами" 2) ваш пример — это детский сад, а не инженерия, банальное отсутствие хоть какой-то культуры и понимания того, что он делает, у человека, который такое писал
у [] должно быть только 1 значение. перегрузка функций и операторов это весело, всем рекомендую через это пройти чтоб осознать почему в Go от этого отказались

Ilya
11.10.2018
15:55:09
давайте сразу в play
вот как мне лучше сделать такое поведение? Приходит json, структура имеет вложенную структуру (Клиент в заказе). Но в json приходит только айди клиента. Хотел через рефлект проверять тип значение после json.Unmarshal и в зависимости от этого запускать разные sql

Darwin
11.10.2018
15:56:10
зачем при этом одинаковые имена в стурктурах которые наследуются?

Ilya
11.10.2018
15:57:28
зачем при этом одинаковые имена в стурктурах которые наследуются?
просто в основном там структура клиента со своими полями. А при создании заказа берется только айдишник, поэтому достаточно Client int json:"client"

Alexander
11.10.2018
15:57:55
у [] должно быть только 1 значение. перегрузка функций и операторов это весело, всем рекомендую через это пройти чтоб осознать почему в Go от этого отказались
от этого отказались для того, чтобы студентов лишней фиче не учить, а так те же раст и хаскель спокойно живут с перегрузкой операторов при этом являясь пожалуй одними из самых простых языков для написания системных и, соответственно, прикладных программ

прошу заметить, простых не для изучения, а для написания программ

Google
Алексей
11.10.2018
15:59:24
ну ведь согласитесь это прекрасно когда: a = new Array() c = a[10] может повесить программу на 5 минут, потому-что в реализации перегрузки индексного оператора пойдёт брать этот int по сети и повиснет на await connection ? </sarcasm>
Если выпилить из языка все потенциально опасные конструкции, то от языка вообще ничего не останется. Вообще перегрузка операторов - это фича для тех людей, которые знают что делают и понимают последствия своих действий. Плюс существует целый ряд задач, которые крайне уродливо решаются на языке без перегрузки операторов.

Хотя стоит заметить, что Go в принципе не для таких задач сделан.

Roman
11.10.2018
16:01:08
особенно весело было с такми случаями как: void DoSomething(s &std::string) { // do stuff A } void DoSomething(s const &std::string) { // do stuff B // changed by bugfix commit } помню такую ситуацию, когда эти две реализации были в раздельных файлах и кто-то тупанул и внедрил изменения только в ту функцию которая принимает const &std::string потому-что мы только ей и пользовались, но первая изначально была задумана оригинальным автором "про запас" мол "вдруг пригодится" и да... однажды она пригодилась, потому-что кто-то поменял рабочий тип на мутируемый string и итоге мы поломали прод, потому-что все забыли кроме изначального автора (а он уже свалил из конторы ?), что функция перегружена, что баг-фикс был только в одной из вариантов и что передавать ей другой тип было поэтому - небезопасно. Весело короче живётся с перегрузкой

Alexander
11.10.2018
16:02:25
вам повезло, что я не баню за голословные утверждения.
Меня просто текущий проект на голанге вгоняет в дикую депрессию. Не в последнюю очередь из-за того, что проект на голанге.

Но ещё он херого написан и без тестов.

Алексей
11.10.2018
16:02:53
Alexander
11.10.2018
16:03:01
А та часть, которую я дописываю за сеньёром недавно ушедшим в яндекс как раз работает с деньгами пользователей.

Алексей
11.10.2018
16:03:08
И тем не менее в Go она присутствует

Daniel
11.10.2018
16:03:27
Меня просто текущий проект на голанге вгоняет в дикую депрессию. Не в последнюю очередь из-за того, что проект на голанге.
может - плохо спроектировали? некоторые архитектурные ходы на go очень уродливо выглядят

Alexander
11.10.2018
16:03:40
может - плохо спроектировали? некоторые архитектурные ходы на go очень уродливо выглядят
да нет там проектирования, один сервис на 1к строк с десятком публичны методов и с ещё десятком приватных методов

Daniel
11.10.2018
16:04:34
Alexey
11.10.2018
16:04:46
Я видел!

Alexey
11.10.2018
16:04:56
В диффе, который его убирал ?

Daniel
11.10.2018
16:05:02
:)

Alexander
11.10.2018
16:06:00
Roman
11.10.2018
16:06:13
Если выпилить из языка все потенциально опасные конструкции, то от языка вообще ничего не останется. Вообще перегрузка операторов - это фича для тех людей, которые знают что делают и понимают последствия своих действий. Плюс существует целый ряд задач, которые крайне уродливо решаются на языке без перегрузки операторов.
все они знают что делают... до поры до времени, а потом забывают, что они там делали, либо просто уходят и на их место становятся люди, которые ничерта о коде не знают))) меняют только одну из функций забыв изменить другие перегруженные и всё вообщенакрывается медным тазом))) перегрузка это многозначность! это прямое нарушение DRY принципа приводящая к порой страшным последствиям

Google
Daniel
11.10.2018
16:07:18
а?!

Vyacheslav
11.10.2018
16:07:30
шо?

Alexander
11.10.2018
16:07:34
при чём вызов через точку — куда более мощная многозначность, чем перегрузка оператора

Roman
11.10.2018
16:08:33
ну перечисли нам, какие "значения может иметь вызов через точку")

Alexander
11.10.2018
16:08:41
а ещё интерфейсы — тоже многозначность

Daniel
11.10.2018
16:09:07
но такая, на втором шаге заканчивается

Zver
11.10.2018
16:09:53
ибо, ещё раз: если [] возвращает нам копию, то брать адрес копии не должно давать нам адреса самого инта в слайсе
[] возращает и не копию и не указатель, а переменную и дальше мы можем либо получить указатель от переменной или извлечь значение.

Alexander
11.10.2018
16:10:19
ну перечисли нам, какие "значения может иметь вызов через точку")
pook.BlaBla(fack) — этот код в голанге может сделать что угодно, чем это лучше чем pook >> fack совершенно неясно

Eugenii
11.10.2018
16:10:23
да нет там проектирования, один сервис на 1к строк с десятком публичны методов и с ещё десятком приватных методов
скажите, а что вам мешает переписать его на что то другое, раз с го так несложилось?

Alexander
11.10.2018
16:10:52
я вместо этого собираюсь работу менять вместе со стеком

Eugenii
11.10.2018
16:11:45
зачем проект весь, перепешите один сервис у которого 1к и нет архитектуры, зато десяток публичных методов

Zver
11.10.2018
16:11:50
ну да, я так и сказал, что это не функция в стиле C++, это language construct
Ну так и не написано нигде, что это функция.

Alexander
11.10.2018
16:12:20
Vyacheslav
11.10.2018
16:12:35
а ты перепиши на го

Grom
11.10.2018
16:12:58
привет, подскажите, проблема с телеграм ботом, не могу сообразить, код из примера пакета на гитхабе нормально работал, бот читал сообщение, обрабатывал и все, затем принимал новое сообщение и обрабатывал, все ок. Но почему-то сейчас одно и тоже сообщение прилитает бесконечно,, удается его прочитать только если скормить айди +1 в GetUpdates, не могу понять почему вдруг стало работать не так и принятое сообщение не маркеруется прочитанным на сервере. Подскажите что можно сделать в этой ситуации?

Alexander
11.10.2018
16:13:50
но такая, на втором шаге заканчивается
А на каком шаге заканчивается перегрузка оператора? И как вообще это считать?

Страница 1535 из 1630