Васильев Виктор
vgo лучше так как это будущее - да
Daniel
или не будущее
Daniel
Бранч просто (с расчётом на dep)? Или связаться с gopkg.in ?
gopkg.in - это вишенка на торте, можно без него, но с ним - лучше. и если с ним связываться - по старому урлу оставить старую версию
Yura
vgo лучше так как это будущее - да
Пользователи живут настоящем (в лучшем случае) и прошлым (что чаще).
Vladislav
dep сможет и с бранчами.
Васильев Виктор
Пользователи живут настоящем (в лучшем случае) и прошлым (что чаще).
vgo умеет брать информацию из dep так что ты не потеряешь старых пользователей
Мерль
Мерль
Anonymous
посоветуйте плз что-то простое, чтобы поднять вебсервер и обрабатывать роуты (если сразу рест - то вообще огонь будет)
Aleksey
net/http
Anonymous
net/http
чтобы роуты обработать, придется много писать и писать тот, код, который наверняка уже миллионы раз писали другие люди
Anonymous
chi gin echo
спасибо!
Aleksey
или strings.Split(r.URL.EscapedPath(), "/")
Roman
Неужели это редкий кейс) и нет рекомендаций go way где нибудь в доках)
есть мнение создателей языка, оно говорит, что твоя архитектура - хавно
Nazar
ddd юзайте
Nazar
Услышал вчера новое слово кароч
Nazar
Думаю это Круто
Pawel
вообще говоря любой соискатель, который не в состоянии коротко и внятно объяснить, как он будет решать эту задачу (не зависимо от ЯП) посылается на "мы с вами свяжемся" без продолжения собеседования
Alexandr
есть мнение создателей языка, оно говорит, что твоя архитектура - хавно
хавно в плане, что такой ситуации не должно возникнуть?)
.
Какую литературу по шаблонам проектирования посоветуете?
Pawel
гугель
Roman
хавно в плане, что такой ситуации не должно возникнуть?)
не так структуры данных спроектированы
Alexandr
используйте шаблон проектирования АДАПТЕР. детали в гугеле
На склько я понимаю, адаптер нужен для исполнения одного действия с разной реализацией для объектов. А у меня одна и та же реализация и чтоб не дублировать код, адаптер не поможет. И получается что здесь нужна кодогенерация, чтоб руками одно и то же не писать и не менять потом
Alexandr
не так структуры данных спроектированы
Проектируется не с нуля, уже есть данность. В реале при проектировании конечно этот момент был бы решен
Pawel
не так структуры данных спроектированы
omg спасите мир от своих мыслей
Roman
omg спасите мир от своих мыслей
это в книге донована даже естт
Alexandr
вы не правильно понимаете. реализация тут вообще не при чём, её можно любой сделать кодогенерация не нужна
я понимаю что для каждой структуры можно сделать свой метод исполнения алгоритма, в функции ждать интерфейс и просто вызывать метод,т.к он гарантированно там есть. В итоге одна и та же реализация в двух методах. В итоге это решается оптимально кодогенерацией в го
Alexandr
или я не могу поймать суть избежания дублирования алгоритма для двух разных структур с помощью адаптера
Roman
вместо размышлений о том, как одинаково обработать разные данные, рекомендуется думать о разделении функционала на интерфейсы с небольшим числом методов, но не гет-сет
Alexandr
https://play.golang.org/p/usCLCTalZ3A
Alexandr
еще есть рефлексия, если совсем не вмоготу
рефлексию применять не охото, не нравится)
Alexandr
что это ?
попытка выдрать код из контекста) извиняюсь за попытку)
Alexandr
Тизеры и баннеры лежат в разных пакетах. Нужно сделать ротацию по одному и тому же алгоритму, грубо говоря выдачу топ5 элементов из переданного набора данных, который собирается не только в зависимости от свойст тизеров и баннеров, но и внешних данных не касающихся их. Прошу сильно не пинать, в моей голове это звучит понятно, но мозг уже спит)
Roman
посмотри как сделан пакет sort, сделай по аналогии
Roman
с точки зрения интерфейсов
Alexandr
по принципу sort будет двойное приведение типов, при передаче и получении данных
Alexandr
этот вариант не подходит.
Roman
почему?
Roman
зачем двойное приведение?
Alexandr
из сегодняшнего "Заседания" коллег, самый элегантный вид без рефлексии и не похожий на склад костылей, это вариант от Daniel Podolsky, c с ожиданием одного типа на входе и использовании кодогенерации
Roman
при приеме ты получаешь мапу из жсона
Roman
юзай мапу
Roman
кодогенерация это круто, но может быть неоправданно избыточно
Alexandr
при приеме ты получаешь мапу из жсона
в функцию ротации надо передать мапу либо слайс структур(набор) и получить в ответ тоже набор
Roman
слайс из мап
Roman
получай, ротируй, отдавай
Alexandr
кодогенерация это круто, но может быть неоправданно избыточно
зато это будет оправдано производительностью, понятностью, и избежания копипаста
Roman
не завязываясь на структуру вообще
Alexandr
не завязываясь на структуру вообще
каким образом? ротация это не единственное, что происходит с данными до передачи в ротацию
Alexandr
если только сделать еще структуру,в которой будет храниться ид и нужные данные, ротировать их и выбирать потом уже нужные по ид
Alexandr
Спасибо всем!) надо спать, утром будет проще)))
Roman
связный список есть в стдлибе, глянь ее, кажется, пакет heap или около него
Pawel
вы что, троллите?
Pawel
https://play.golang.org/p/jZVJVefROWd
Alexandr
вы что, троллите?
func (implTeaser) Rotate() { } func (implBanner ) Rotate() { } это и есть то что написанно мной выше, выше)
Aleksandr
func (implTeaser) Rotate() { } func (implBanner ) Rotate() { } это и есть то что написанно мной выше, выше)
Да нет. Вы тут целый день обсуждает то, что описано в каждой книжке по паттернам проектирования
Alexandr
чтоо?? вы реальн оне видете разницы?? pizdec
хоть во что их оберните, я говорю про то что получается метод Rotate() для каждого типа
Alexandr
хоть в доль смотри, хоть поперек
Alexandr
и?
а что и, я разве отвергал ваше предложение? этот метод решения приходит первый в голову, просто думал может есть другие способы решения в го, без дублирования кода
Alexandr
Как решается эта проблема.
как? я каждую не читал книгу, подскажите?