Size: a a a

2020 July 17

AK

Anton Kucherov in Go-go!
Ihor Fox
Привет. Хочу спросить.
Если есть один пакет, в котором ТОЛЬКО функции, и есть другой, в котором тоже, что делать когда оба из них потребуют функции друг друга? Может ли Dependency Injection как то с этим помочь. Кто может разъяснить коротко - работает ли DI с таким, или она для чего-то другого ? Спасибо заранее.

ПС
Новичок
Когда пакеты требуют функции друг друга, в первую очередь следует задуматься об архитектурной проблеме (Где то или смешиваются слои или смешиваются обязанности). Иногда помогает DI иногда помогает вынесение части функций в 3-тий пакет. Иногда помогает слитие в 1 пакет (но это опаснее всего. Так можно прийти к одному огромному пакету где будет полная каша)
источник

NK

Nikolay Kiselev in Go-go!
Добрый вечер! Я поковырялся с goyacc и понял, что я алмазной киркой ломаю булыжник. Есть ли просто удобный токенизатор на котором просто можно будет текст привести в список токенов?
источник

IF

Ihor Fox in Go-go!
https://github.com/AldieNightStar/mhistea_go Вот кстати проект. Если что там все есть. Каша еще та, но именно там удалось сделать рабочую штуку. Но это для особо веселых разрабов :)
источник

IF

Ihor Fox in Go-go!
Переслано от Anton Kucherov
Когда пакеты требуют функции друг друга, в первую очередь следует задуматься об архитектурной проблеме (Где то или смешиваются слои или смешиваются обязанности). Иногда помогает DI иногда помогает вынесение части функций в 3-тий пакет. Иногда помогает слитие в 1 пакет (но это опаснее всего. Так можно прийти к одному огромному пакету где будет полная каша)
источник

DP

Daniel Podolsky in Go-go!
Nikolay Kiselev
Добрый вечер! Я поковырялся с goyacc и понял, что я алмазной киркой ломаю булыжник. Есть ли просто удобный токенизатор на котором просто можно будет текст привести в список токенов?
https://github.com/Djarvur/parsewords, примерно для этого я его сделал
источник

NK

Nikolay Kiselev in Go-go!
Большое вам спасибо!
источник

⛪️Поп Гапон⛪️... in Go-go!
Ihor Fox
Я когда-то писал некий common пакет с дефом структур, но когда кучу пакетов, с разными функциями - приходится юзать интерфейсы. Если бы пришлось писать игру - я бы застрелился. Скорее бы пошел на тот же go-lua :)
Жаль, что DI с таким не работает. Раньше обходил это через пакет init в котором, создал структуру и с каждого пакета собирал функции, что очень кончено с моей стороны, но только так смог это сделать. Но всё же это полная жесть. Есть ли у кого вообще советы - как организовать one-way пакетную архитектуру без возможности Cyclic import. Сам с Джавы, а там всё с этим проще. Если в Гофере каждый пакет - отдельная либа, то в Жабе там одна либа это массив пакетов.
Дело в архитектуре скорее, интерфейсы пишу если надо быстро что то закрыть и лень ковырять в пакетах
источник

Н

Никита in Go-go!
В чем преимущество делать package by feature вместо слоя, когда мы получаем вот такое очень читабельное дело?

type Server struct {
env       *serverenv.ServerEnv
db        *database.FederationOutDB
publishdb *publishdb.PublishDB
config    *Config
}


publishdb *publishdb.PublishDB


И есть еще хуже

import ”App/internal/publish/model”


publishmodel.Publish{}
источник

A

Aikidos in Go-go!
Ihor Fox
Привет. Хочу спросить.
Если есть один пакет, в котором ТОЛЬКО функции, и есть другой, в котором тоже, что делать когда оба из них потребуют функции друг друга? Может ли Dependency Injection как то с этим помочь. Кто может разъяснить коротко - работает ли DI с таким, или она для чего-то другого ? Спасибо заранее.

ПС
Новичок
Привет. Скорее всего нужно немного поправить архитектуру. Нужно стараться, чтобы граф зависимостей не получался циклическим. Иначе даже DI может не помочь потом. Просто вынесите код в пакет, который будет использоваться в других двух.
источник

DK

Daniil Korekovcev in Go-go!
Добрый день, начал пилить враппер для https://github.com/CESNET/GPUJPEG
https://github.com/Danile71/go-gpujpeg/
Если кому интересно декодирование/кодирование jpeg на gpu)
источник

A

Aleksandr in Go-go!
Но зачем?)
источник

DK

Daniil Korekovcev in Go-go!
Aleksandr
Но зачем?)
У меня проект rtsp+h264+dlib+opencv...) Юзаю cuda api
Может кому то пригодится тоже)
источник

w

whoami in Go-go!
Для наложения масок на лица ?
источник

w

whoami in Go-go!
"снапчат"?)
источник

w

whoami in Go-go!
так-то интересно)
источник

DK

Daniil Korekovcev in Go-go!
whoami
Для наложения масок на лица ?
Неее, совсем далеко от этого, но это тоже можно уже реализовать на go)
источник

DK

Daniil Korekovcev in Go-go!
dlib можно получить точки лица, и вырезать/заменять)
есть 68  или 5 точек
источник

МП

Мимо Проходящий... in Go-go!
Ihor Fox
Привет. Хочу спросить.
Если есть один пакет, в котором ТОЛЬКО функции, и есть другой, в котором тоже, что делать когда оба из них потребуют функции друг друга? Может ли Dependency Injection как то с этим помочь. Кто может разъяснить коротко - работает ли DI с таким, или она для чего-то другого ? Спасибо заранее.

ПС
Новичок
Di не поможет, только хуже сделает, поскольку циклические зависимости контролируются конпилятором, а di это не чекает никак. Нужно сделать третий пакет и поместить в него функции от которых зависят первых два.
источник

МП

Мимо Проходящий... in Go-go!
Nikolay Kiselev
Добрый вечер! Я поковырялся с goyacc и понял, что я алмазной киркой ломаю булыжник. Есть ли просто удобный токенизатор на котором просто можно будет текст привести в список токенов?
go-parsec
источник

ЛА

Локоть Анатолий... in Go-go!
Мимо Проходящий
Di не поможет, только хуже сделает, поскольку циклические зависимости контролируются конпилятором, а di это не чекает никак. Нужно сделать третий пакет и поместить в него функции от которых зависят первых два.
Циклические зависимости чекаются многими di и во вторых при циклической зависимости в худшем случае получится бесконечная рекурсия, что вполне очевидно глазу
источник