@gogolang

Страница 1324 из 1630
Alexey
29.08.2018
18:11:48
можно решить генериками

Alexey
29.08.2018
18:12:32
но в типах суммах все равно будет нужна параметризация. ты же не хочешь тип сумму писать на каждый тип значения в ней

Daniel
29.08.2018
18:12:39
можно решить генериками
вот за это, как раз, генерики и хейтят те, кто понимает

Google
Alexey
29.08.2018
18:12:57
вот за это, как раз, генерики и хейтят те, кто понимает
ну пассивную агрессию мы уже тоже обсуждали, да?

Alexey
29.08.2018
18:13:48
почему пассивную?
не, в эту тему мы не будем скатываться.

Daniel
29.08.2018
18:14:00
тогда и не начинай, ок?

Alexander
29.08.2018
18:14:10
:)

Alexey
29.08.2018
18:15:23
Просто каждый раз когда я получаю interface {} у меня возникает вопрос что там. И если это мой код, то еще есть шансы разобраться, но если это чужой, то все. Труба. Можно вокруг этого всего накостылить кодогенерацию и документацию, но в живом проекте поддержать это нереально :(

И вопрос не в том чтобы узнать что там A или B. Вопрос в том, что там может быть массив или строка или хз вообще что. Вот каждый раз вместо этого я хочу видеть конкретный тип параметр.

Daniel
29.08.2018
18:16:30
да откуда ты его так часто получаешь?

Daniel
29.08.2018
18:16:50
не, боль именно от пустого интерфейса

который, конечно, та еще хрень

Google
Alexander
29.08.2018
18:17:25
а... пустых я тоже боюся что-то

Pawel
29.08.2018
18:34:41
Изо дня в день этот плачь Ярославны. — без дженериков никак! — приведи пример кода! — ... — без дженериков никак!

тайпклассов нет
дада, в С++ они ох как нужны Ты бы разобрался для начала что такое тайп классы и какой в С++ обощённое прграммирвоание

Anatoly
29.08.2018
18:37:02
дада, в С++ они ох как нужны Ты бы разобрался для начала что такое тайп классы и какой в С++ обощённое прграммирвоание
у меня более 10 лет опыта разработки приложений на плюсах, я знаю, что там нет тайп классов и не может быть)

даже трейтов нет

типа скаловских

или растовых

скоро будут концепты, но то не то)

Евгений
29.08.2018
18:38:00
типа скаловских
Скаловские трейты то крутые интерфейсы.

В расте таже фигня.

Ими можно обмазываться.

Pawel
29.08.2018
18:38:47
у меня более 10 лет опыта разработки приложений на плюсах, я знаю, что там нет тайп классов и не может быть)
ок. Вот был вопрос "А почему тогда сразу не юзать C++? Там все есть, что надо и не надо" ты говоришь - там тайпклассов нет. Отсюда можно сделать вывод что они там нужны.

Anatoly
29.08.2018
18:39:29
накой в плюсах тайпклассы, если даже нормального вывода типов нет?)

как в хаскеле или в f#

Anatoly
29.08.2018
18:40:52
я очень часто пишу код, помогающий компилятору понять, что он имеет дело не с переменной или указателем на функцию, а с типом...а вы про тайпклассы) Рано ещё, надо лет 20 подождать)

тогда во всех языках будет одно и то же

Pawel
29.08.2018
18:41:17
накой в плюсах тайпклассы, если даже нормального вывода типов нет?)
это не с выводом типов связано. Тайп классы - это ограничения на дженерики, а вплюсах совершенно другой (уродский) механизм стат. полиморфизма, неимеющий с дженериками ничего общего

Google
Pawel
29.08.2018
18:41:43
И получалось плохо
в С++ плохо абсолютно всё

Anatoly
29.08.2018
18:42:30
в С++ плохо абсолютно всё
ну так Страустропу захотелось и Степанов помог)

Алексей
29.08.2018
18:42:35
Контракты воображаемого Go2 чем то очень отдалённо напоминают тайпклассы. Ну прям такое ощущение возникает.

Anatoly
29.08.2018
18:44:40
я, кстати, достаточно недавно начал что-то писать на го и мне было очень тяжело после C++ и Java... это из-за того что у меня ООП мозга, да?

позабавило форматирование даты/времени)

Сергей
29.08.2018
18:46:21
тогда во всех языках будет одно и то же
не будет же. будет долгая эволюционная замена одних другими

Anatoly
29.08.2018
18:48:05
не будет же. будет долгая эволюционная замена одних другими
но Cobol даже всё ещё жив...как-то не заменяется...

Алексей
29.08.2018
18:48:46
Anatoly
29.08.2018
18:49:00
это смотря что жизнью считать
ну, пока жив хотя бы один программист)...

это как с естественными языками

Алексей
29.08.2018
18:49:23
ну это прям очень широкое определение

по которому вообще почти все языки признаются живыми

Michael
29.08.2018
18:50:02
После беглого прочтения черновика гоу2 генериков, показалось что это продолжение развития идеи, что генерики в ГОУ это интерфейсы Чем сейчас плохо - не понятно, что черновики дадут лучшего вообще не ясно

Алексей
29.08.2018
18:50:55
Дамы и господа, подскажите пожалуйста как разрешить ситуацию... У меня пакет в котором методы "ловят" внешние сообщения допустим http... парст их и передает дальше другому пакету, в котором крутится в бесконечный цикл и делает важные дела... в него приходят данные и он там с ними варится... но наступает момент, когда ему надо отдать какую-то информацию во внешку, он должен отдать её пакету который могет это делать - который и работает с "внешкой"... и у меня получается циклический импорт... мне надо из одного пакета вызывать определнные методы, и обратно... и я что-то голову сломал как тут разъехаться что бы не было циклического ипорта...

Michael
29.08.2018
18:54:48
Ну если бы генерики не отличались бы принципиально от интерфейсов, их бы и не пытались ввести
То что оно отличается то понятно, вопрос - зачем оно такое надо и что реально оно решит В том виде как сейчас оно добавит сложности и кол-во г...но кода увеличится

Daniel
29.08.2018
18:55:46
После беглого прочтения черновика гоу2 генериков, показалось что это продолжение развития идеи, что генерики в ГОУ это интерфейсы Чем сейчас плохо - не понятно, что черновики дадут лучшего вообще не ясно
чем плохо сейчас - понятно, нет параметрических типов, а они время от времени нужны. мы умеем делать параметрические типы кодогенерацией, но внятного синтаксиса описания этих самых параметрических типов нет, поэтому кодогенерация существует за пределами экосистемы языка, и это неудобно чем кончится внедрене генериков - тоже понятно, энтузиасты начнут делать на них пресловутые тип-суммы и прочее наследование. они всегда это делают с генериками...

Алексей
29.08.2018
18:56:38
вот наследования точно не надо, тем более через генерики и такие энтузиасты будут посылаться на три буквы моментально

Google
Алексей
29.08.2018
18:57:20
но вообще как бы в черновике в overview есть разделы Problem и Goals

не верю. их тупо больше...
Ну давайте тогда все unsafe операции запретим, чтобы чудаки себе и другим в ноги не стреляли

Daniel
29.08.2018
18:58:34
а я бы и запретил, будь моя воля

Алексей
29.08.2018
18:58:57
а ну понятно

Kirill
29.08.2018
18:59:06
а я бы и запретил, будь моя воля
И сломал бы мне тонну проектов

Daniel
29.08.2018
18:59:24
ну - бодливой корове бог рог не дает

Алексей
29.08.2018
18:59:42
методы унести в третий пакет
я увел с одно пакета и все продолжило падать... со второго не унес... благдарю... видно мозг уже перестает соображать

Алексей
29.08.2018
19:00:26
ещё тьюринг полноту надо запретить, чтобы бесконечные циклы никто создать не смог

Michael
29.08.2018
19:03:34
Ваще круто было бы ?

Admin
ERROR: S client not available

Алексей
29.08.2018
19:04:54
С ума сошел?
нет, просто довёл идею до абсурда

Roman
29.08.2018
19:05:07
Вот чего стоит сделать с unsafe - это сделать блоки кода

И ещё очень хочется свои коллекции вместо стандартных

Daniel
29.08.2018
19:07:39
а зачем?

мне вот не хочется :)

Pawel
29.08.2018
19:16:36
И ещё очень хочется свои коллекции вместо стандартных
если в 2.0 угодить всем любителям странного, эдак можно и руст переплюнуть

Алексей
29.08.2018
19:17:57
методы унести в третий пакет
Это ничем не помогает, только теперь в цепочке импортов появляется 3 пакет, получается что два других ипортят его, а он импортит оба... а при разносе на 4 пакета я получил крговую зависимость...

Daniel
29.08.2018
19:23:01
коллега

Google
Daniel
29.08.2018
19:23:07
что вам не помогает

Wingman
29.08.2018
19:24:37
А в GO нет чего-то похожего на плюсовую #pragma once ?
Передавай в туда in/out каналы и пуляйся данными

Daniel
29.08.2018
19:25:41
да причем тут каналы

человек схему типов сдизайнить не може без циклических зависимостей

а вы ему каналы

Алексей
29.08.2018
19:28:03
что вам не помогает
Вынесение методов в отдельный пакет, может я это криво делаю, но получается что оба пакета испортят его, а он испортит два других...

Или Вы предлогами вынести вызываемый метод в другой пакет?...

Wingman
29.08.2018
19:30:07
Вынесение методов в отдельный пакет, может я это криво делаю, но получается что оба пакета испортят его, а он испортит два других...
надо сесть и начертить в голове/в пейнте/на бумажке схему желаемой работы с учетом невозможности цикличных импортов )

я поначалу тоже о подобное спотыкался

Алексей
29.08.2018
19:37:01
надо сесть и начертить в голове/в пейнте/на бумажке схему желаемой работы с учетом невозможности цикличных импортов )
Есть пакет отвечающий за работу с клиентами через вебсокеты, он в себе содержит логику према и отправки сообщений, и есть другой пакет, центральная логика, которая должна принимать в себя сообщения которые даёт пакет отвечающий за прием сообщений, и он же способен сам генирить сообщения которые должен отдавать пакету отвечающему за работу с клиентами по вебсокетам... Я при таком раскладе вижу два варианта, или разделить логикой пакета работающего с сокетами на две или спилить брокер сообщений и общаться через него...

Wingman
29.08.2018
19:37:33
а чем каналы плохо? :)

Алексей
29.08.2018
19:40:56
Может и не плохо, только проблему то это не решает, что бы что-то положить в канал нужной мне горутины, мне соответствующую горутину импортнуть придется...

Wingman
29.08.2018
19:41:07
нет

раздели логику и данные

Wingman
29.08.2018
19:43:33
ну, примитивный пример из головы: - есть пакет DB, оперирующий общением с БД. Конект, дисконект, ещё что-то - есть пакет с бизнес-логикой - есть данные, которые должны быть доступны обоим пакетам (сами данные, их структуры): модели/описания таблиц собственно, выносишь модели в отдельный пакет - и импортишь его куда угодно. Главное, чтобы в нём не было _вообще_ ничего лишнего: это тупо структуры, которые ничего не знают ни про БД, ни про логику

у тебя, например (ну пальцем в небо, не зная твоей начинки) - сделать отдельные структуры "UserMessage", "UserResponse", которые пулять по каналам в ядро и обратно

Pawel
29.08.2018
19:47:16
А что странного?
на сколько я понимаю, стандартные контейнеры устраивают всех кроме вас и может быть ещё пары тройки людей

Алексей
29.08.2018
19:51:33
у тебя, например (ну пальцем в небо, не зная твоей начинки) - сделать отдельные структуры "UserMessage", "UserResponse", которые пулять по каналам в ядро и обратно
Пока не получается осознать как это должно работать... Про вынесение данных - понятно, и то что их ипортить можно куда угодно тоже понятно... Но как тут должны работать каналы, я не совсем понимаю...

Wingman
29.08.2018
19:52:01
эм... а что именно непонятно?)

создаёшь 2 канала (ин, аут) или один (ин/аут) ; из "общателя" передаёшь в ядро, или наоборот, или в оба при инициализации дальше обоими пакетами слушаешь эти каналы, при поступлении данных - что-то с ними делаешь

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