Slava
а что дисковерить то?
Slava
если бекенд один
Anonymous
если бекенд один
Та не, это в этом случае, бэкендов много для других сервисов (уже порядка 10 (наверное мало по вашим меркам)
Slava
в исходной задаче был один бекенд и два SPA, которые с ним работают
Anonymous
Ну да, я уже говорю про перспективу
Slava
ааа
Slava
KISS
Anonymous
Chebyrash
Slava
https://en.wikipedia.org/wiki/KISS_principle
Anonymous
Ясно
Slava
но если один всё поддерживаешь, то можно хоть с чем поиграться, ежели хочется
Anonymous
Честно говоря, захотелось попробовать consul
Slava
тогда попробуй =) знания - сила
Roman
Единственное надо сразу инфру как код описыать
ainu
Cebtrifugo
ainu
Centrfugo
ainu
Centrifugo, во
ainu
События входа выхода регистрирует в том числе
Anonymous
Constantine️
ctrfuck
Максим
Всем привет, с наступившим!
Подскажите, пожалуйста, по поводу алгоритмов. Задача типовая. Распределение заказов между N количеством машин. На какие алгоритмы стоит обратить внимание? Читал, что для этого подходит алгоритм коммивояжера для нескольких коммивояжеров. Некоторые ссылались на алгоритм муравьиной колонии и модификации генетического алгоритма. А что вы думаете? Просьба камнями не забрасывать
朝の日差し ✙
Поучить про СМО. И пойти в профильный чатик😉
Мерль
Всем привет, с наступившим!
Подскажите, пожалуйста, по поводу алгоритмов. Задача типовая. Распределение заказов между N количеством машин. На какие алгоритмы стоит обратить внимание? Читал, что для этого подходит алгоритм коммивояжера для нескольких коммивояжеров. Некоторые ссылались на алгоритм муравьиной колонии и модификации генетического алгоритма. А что вы думаете? Просьба камнями не забрасывать
Гуглить: теория массового обслуживания, балансировка нагрузки, очереди сообщений, round robin, work stealing pool, consistent hash, worker pool
Максим
Так, видимо меня не поняли. Я не про асинхронное взаимодействие, а про постройку N множества маршрутов по заранее известному количеству точек. В любом случае, спасибо. Интересный материал, буду изучать
朝の日差し ✙
Эм. А как оно соотносится с задачей?
Максим
Эм. А как оно соотносится с задачей?
Вроде соотноситься. Немного не корректно описал задачу. Задача в том, что надо распределить эти заказы, составив маршрутизацию. Точки не должны повторяться, начало и конец в одной точке. Поэтому и гуглил в сторону графов и наткнулся на задачу коммивояжёра
Мерль
Максим
Oleg
не хватает ifdef для режимов development. Кто как делает?
aadz
aadz
const (
SUPER_TRUE = false
)
aadz
Как-то так
Oleg
ну так я и делаю, вычитываю из env режим и вокруг каждой err обертка. Вдруг что лучше есть
aadz
Олег, у нас же тут нет препроцессора. OK?
aadz
Хотя, строго говоря, сишный препроцессор - это генератор кода и сишники пишут код для него. Ну, OK! Тут Go-код пишут прямо для компилятора, но никто не мешает сделать препроцессор, конечно... Но стоит ли? На самом деле надо сто раз подумать!
aadz
Компилятор Go - это мегазабиватор на размер. Ему размер не важен :) Так что и без препроцессора можно (и нужно) обойтись
Oleg
ну в моем случае не страшно что эти if в прод пойдут
aadz
Кстати, это одна из причин, почему сишники не так возбудились от Go, как питонисты. Если ты в Python скажешь ёшь import this, то одно из первых будет "Explicit is better than implicit". В Go решили не делать препроцессора, а тупо решили делать язык. Кто не хочет этот конкретный язык - мы, конечно, будем очень скучать, как говорится :)
aadz
Хотя сишники в свое время и от LISP не возбудились, а, наверное, стоило... Такие уж они невозмутимые люди :)
aadz
Хотя проверка ошибки - это тоже код :)
Oleg
if err != nil {
if isDevelopmentMode {
принтф
} else {
паника
}
}
aadz
ну, это не обертка, это как раз проверка ошибки
aadz
Лучше тупо все в лог писать и все. При нужде тупо падать, да. И тоже - перед этим в лог писать
aadz
Вобще, программа, которая не умеет писать в лог - это зло! Пусть хоть на stderr, но должна делать лог, по-любому!
Мерль
aadz
А! Точно
aadz
Хрена се? https://golang.org/pkg/go/build/
Я его смотрел сто лет назад и забыл. А реально люди пользуются всеми этими прелестями? :)
Mikhail
Поясните, что делает это 2«10
aadz
сдвигает бинарное 10 на 10 бит влево
aadz
2<<10
Mikhail
2<<(10 - 1) = 1024. Выглядит как возведение в степень
aadz
да :)
aadz
только не -1
aadz
Это самый дешевый способ умножения по основанию 2
Mikhail
только не -1
если не -1, то выходит не верный результат
Oleksii
Oleksii
2^10 = 1024
Mikhail
2^9 != 1024
https://play.golang.org/p/0QkBN0kEcNd
Oleksii
1 << 10
Oleksii
= 1024
Mikhail
В общем использовать это как замену math.Pow не выйдет. Я понял.
aadz
выйдет, если тебе нужно целочисленное умножение или деление по основанию 2
aadz
Mikhail
aadz
Те, кто лучше знает китайский, то не подумайте. 私 - зто "Я" по-японски, а не чья-то собственность, как большинство людей тут подумали... Хотя, это канал про аниме, но китайцев-то все же больше...
Mikhail
В Go мульти-ретурн не является признаком говно-кода?
Vasily
нет, очень распространённая практика
Vasily
особенно в варианте "ответ + ошибка"
Mikhail
Любопытный ЯП.
Мерль
Oleh
Помогите пожалуста понять, почему на 21й строке мне ошибку пишет
panic: runtime error: invalid memory address or nil pointer dereference
Aleksandr
Phrases не инициирована например
Denis
именно
Oleh
хмм, проверю, спасибо
Denis
Товарищи, подскажите, как сделать bson.ObjectID в протобаф структуре??