
Alexandr
24.11.2017
09:21:07
Ребят подскажите пожалуйста, реально ли сделать так, чтобы две golang программы могли работать с общей памятью или это возможно только с помощью redis?

Mikhail
24.11.2017
09:31:21
можно заюзать shared memory из posix

Alexandr
24.11.2017
09:32:07

Mikhail
24.11.2017
09:32:54
да, но она не быстрая

Google

Alexandr
24.11.2017
09:35:11

Mikhail
24.11.2017
09:46:07
это самый быстрый способ взаимодействия между процессами. и в целом почти не отличается от выделенной памяти на процесс. просто взиимоействие через нее потребует локов, а передача сообщений как принято в го - более эффективное средство
но все от задачи зависит
по факту это та же память что и процессу выделяется

Alexandr
24.11.2017
10:12:30
Ок, спасибо за наводку

Юрий
24.11.2017
11:35:10
подскажите как лучше выразить a = b = c
a,b,c некие выражения
Приходит в голову только
s := a
if s == b && s == c { равны}

Aleksandr
24.11.2017
11:37:00
a == b && a == c && b == c
если я правильно понял, т.к. a =b =c и s := a - это какие-то дикие вещи, не сооттносящиеся друг с другом

Blue Screen of Death
24.11.2017
11:37:56
a == b && a == c

Юрий
24.11.2017
11:40:40
ну а длинное выражение с выходным значением например int
и b,с тоже выражение

Aleksandr
24.11.2017
11:41:17
я не понимаю что ты хочешь.

Юрий
24.11.2017
11:41:21
поэтому два раза "a" не хочу считать

Google

Aleksandr
24.11.2017
11:46:24

Юрий
24.11.2017
11:47:20
я хочу
if (1+2+4) == (3+3+1) == (5+1+1) { верно }

Александр
24.11.2017
11:48:27
а я продолжаю строить ОРМ на рефлексии ?
задолбался
наследование моделей тяжко

Alexey
24.11.2017
11:48:59
Но ведь в Go нет наследования

Александр
24.11.2017
11:49:13
уже есть (злобный смех)

Ilya
24.11.2017
11:49:21

Александр
24.11.2017
11:50:09
на самом деле я делаю вставки
type TestModel struct {
BaseModel
field string 'куча тегов, с какого поля базы заполнять, валидация...'
}

Юрий
24.11.2017
11:50:27
а разве так можно if (...) == (...) == (...) ?

Александр
24.11.2017
11:50:31
потом это все рефлексией парситься...
либу кормим фабриками моделей
но я понял что чем дальше в лес, тем толще партизаны
поскольку модели могут бесконечно вкладываться друг в друга, это рекурсивно ходить в глубину
(вкладыватся что бы избежать копипаста полей с тегами)
по другому что-то пока не придумал как сделать

Aleksandr
24.11.2017
11:52:48

Nikolay
24.11.2017
11:54:13
Кстати предикаты это go way?:D

Юрий
24.11.2017
11:56:27
ну тогда , как я и предполагал. спс
s := a
if s == b && s == c { равны}

Google

Kirill
24.11.2017
12:00:45
Нормально из конструктора возвращать два значения - объект и ошибку?

Aleksandr
24.11.2017
12:01:34

Kirill
24.11.2017
12:02:04
Ну я про функции вида newMyObject()

Artem
24.11.2017
12:02:13

Konstantins
24.11.2017
12:02:26
наверное

Александр
24.11.2017
12:02:45

Aleksandr
24.11.2017
12:03:49
(и нужно, если ошибка возможна)

Artem
24.11.2017
12:04:21

Kirill
24.11.2017
12:06:02
(и нужно, если ошибка возможна)
Ну вот я помню еще из книги Кернигана что мол в го практикуется вложенная обработка ошибок и в итоге так проще потом понять где произошла ошибка, т.к. видишь что всю иерархию, через которую она прошла, просто хотел убедиться что в фабричных методах такое уместно

Александр
24.11.2017
12:10:56

Александр
24.11.2017
12:11:04
у него свои завихрения
вообще конечно я тут прикинул, придеться отказаться от обертки и сделать руками преобразование, иначе не видать нам хорошего rps

Kirill
24.11.2017
12:16:15
С LDAP вам его и так не видать

Александр
24.11.2017
12:19:05

Aleksandr
24.11.2017
12:19:56

Александр
24.11.2017
12:20:29
ну не знаю, боимся копипаста
10 моделей ходим наследованием пилить
это все с ООП привычка, в любом случаи плоди новую абстракцию

Google

Александр
24.11.2017
12:21:26
до 3 уровней вложенности наследования (на самом деле больше)
type appleTree struct {
FruitTree
}
type FruitTree struct {
Tree
}
type Tree struct {
id string
}
таким образом id в случаи переименования во всех трех моделях появится
*тяжко пыхтит* еще один уровень рефлексии

Kirill
24.11.2017
12:25:16
Не надо вам в Го, одни проблемы будут
Особенно тем кому потом придется все это говно разгребать

Александр
24.11.2017
12:26:34
три раза

Admin
ERROR: S client not available

Aleksandr
24.11.2017
12:28:35
а вы бы скопипастили?
это не про копипасту. это про проектирование. ты не правильно проектируешь, обосновывая копипастой.

Александр
24.11.2017
12:29:00
эм?
у тебя есть PeachTree AppleTree CherryTree с одним свойством id
логично сразу проситься базовое дерево

Aleksandr
24.11.2017
12:30:43
мне не очень. но мне знакома и понятна твоя логика.

Александр
24.11.2017
12:31:03
а если у тебя так-же есть ChristmasTree в котором этого свойства нет, но есть другое... велком еще одна парент модель

Aleksandr
24.11.2017
12:31:06
я не пытаюсь уколоть, но хочу быть честным - это та логика, за которую не любят пхп-программистов
их много, их уровень очень низок, и в программировании как в науке они плохо разбираются.

Александр
24.11.2017
12:31:54
так это в любом ООП языке так, JAVA или не дай бог С++ c его кастомными типами. Там нагородили бы таких городков

Aleksandr
24.11.2017
12:32:10

Kirill
24.11.2017
12:32:55

Google

Александр
24.11.2017
12:33:12
создавать парент модель? O_o

Alexey
24.11.2017
12:45:58

Kirill
24.11.2017
12:47:39

Александр
24.11.2017
12:49:33
ну варианты как у меня, на структуре, на структуре с магическим методом fields() (map[string]fieldOptions)
опять же если мы хотим избежать копипаста без "наследования" далеко не уедем
или придеться писать миксер моделей

Aleksandr
24.11.2017
12:50:46

Александр
24.11.2017
12:51:47

Pawel
24.11.2017
12:51:51

Aleksandr
24.11.2017
12:53:09

Александр
24.11.2017
12:53:45
в той же GORM кстати каскадное "наследование"
с рефлексией все хорошо

Aleksandr
24.11.2017
12:54:16

Александр
24.11.2017
12:55:53
можно просто отрезать колбасы, а можно построить фабрику по нарезки колбасы
ты будешь туда скармливать колбасу и вид нарезки...

nezorflame
24.11.2017
12:56:29
если ты будешь есть только вареную, тебе не нужна фабрика по производству всех видов
ты будешь тупо клепать вареную

Aleksandr
24.11.2017
12:56:46
не начинай в аналогии. я сразу тебе скажу что она неверная, и предложу другую. поэтому не начинай

Александр
24.11.2017
12:57:54
что бы потом с запасиком