Anonymous
И он далёк от совершенства
Anonymous
Ещё bytom на go
Anonymous
Но крестовых больше
Savely
Lightning.network.
(кстати это как сайт работает)
Евгений
по-моему это феерия:
Мерль
почему - хз
Потому что в «интерпрайзных» блокчейнах часто используют не PoW, а консенсусы типа рафта, у которых нормальные реализации в основном на Go + там очень любят docker и Kubernetes
Daniel
а это где такое счастье?
Евгений
а это где такое счастье?
это пример токена на NEO https://github.com/CityOfZion/neo-storm/blob/master/examples/token/token.go#L64
Мерль
а это где такое счастье?
Всё семейство hyperledger и co И куча реализацмй по мотивам
Daniel
ага. не удивлен. я вообще блокчейн ненавижу люто. сама по себе идея ничего, но реализации... дока вся написана, похоже, с одной мыслью "ни в коем случае не попалить ненужность блокчейна"
freezlite
Есть http handler и много if err != nil { log(err) writeStatusCode(500) return } Это можно как то соократить ? )
freezlite
checkErr(500), но как завершить код хз)
Daniel
до двухх строк
freezlite
такая себе оптимизация)
Daniel
и станет невнятно
freezlite
ну там на самом деле в функции log(err) много одинаковых параметров, везде в книге говортся о DRY строк, но не символов)
freezlite
4 повторяющихся аргумента
Мерль
ага. не удивлен. я вообще блокчейн ненавижу люто. сама по себе идея ничего, но реализации... дока вся написана, похоже, с одной мыслью "ни в коем случае не попалить ненужность блокчейна"
самое смешное — это реализация блокчейнов для серьёзных бизнесов и государственных предприятий когда есть один глобальный ключ, позволяющий менять историю, главный узео и т.д.
Мерль
и когда реализацию KV принципиально неконсинстеного хранилища поверх блокчейна пытаются выдать за production grade хранилище для бизнеса (а-ля Oracle, дадада)
Dmitry
Есть http handler и много if err != nil { log(err) writeStatusCode(500) return } Это можно как то соократить ? )
вынесите из http handlera всю бизнес логику в отдельный метод таким образом в хендлере будет только логика получающие данные от пользователя и бизнес вызов метода если метод упал то хендлер отдаст ошибку
Мерль
в данном случае опрос железа с малинки, так что нет, не стрёмно. не ответила железка - и не надо.
ну тогда не страшно и канал использовать просто он должен быть достаточно большим
freezlite
как в vscode сделать чтобы он подсказывал импорты
freezlite
самому писать всю строку очень утомительно
Daniel
так goimports их правит вполне успешно
Daniel
надо только повесить его вызов на сохранение
Veaceslav
так мужики мне нужна ваша помощь. Сделал сервер на Echo и хотел бы понять как сделать build для linux.
Daniel
(ну - я так сделал)
Veaceslav
Нужно будет запустить все это на Centos, go я там уже поставил
Veaceslav
Хотя вроде как и не нужно ))
Veaceslav
Поможете плиз ?
freezlite
надо только повесить его вызов на сохранение
"go.formatTool": "gofmt" это опция почему то строка а не массив
freezlite
ага, goimports уже с gofmt внутри
p0rsche
Парни, подскажите, когда делается вот так: s := &SomeStructType{Field1: value1} это значит что создается структура новая и возвращается указатель на нее?
freezlite
да
freezlite
так goimports их правит вполне успешно
а как выбрать если с похожим именем несколько может быть импортов в разных пакетах? я что то не пойму как оно работает
Daniel
он берет первый попавшийся, в котором есть соответствующая сигнатура
Andrei 🦉
Нужно будет запустить все это на Centos, go я там уже поставил
https://www.digitalocean.com/community/tutorials/how-to-build-go-executables-for-multiple-platforms-on-ubuntu-16-04
Andrei 🦉
здесь написано про бубунту, но команды для билда на любой системе ничем не отличаются
Veaceslav
Нету в системе env
Заур
Такой вопрос. Я делаю запрос в базу монги и получаю коллекцию документов. В документах есть поля, которые текущий юзер не может видеть. Как их лучше отсеивать, отсеивать в самой программе, или перенести эту нагрузку на саму монгу, что бы она сама просчитывали, возвращать поле или нет?
Заур
Я бы хотел перекинуть на монгу, но меня беспокоит, что монга будет нагружена выполнением этой логики
Viktor
Я бы хотел перекинуть на монгу, но меня беспокоит, что монга будет нагружена выполнением этой логики
В запросе выборки должна генерироваться часть отвечающая за rls. Выбирать полные данные и отсеивать их на стороне клиента это плохая идея
Заур
Аа, всё
Заур
Понял, спасибо
Eugenii
Ок, а я смогу тот же маневр на sql повторить?
вместо звездочки список полей.
Заур
вместо звездочки список полей.
Не совсем про это. Чтобы определенные поля возвращались только если они удовлетворяют условию
Заур
Т.е. отдельные условия для строк и ещё отдельные для некоторых полей
Anonymous
Там такой же код?
Во-первых, это красиво :D
Eugenii
case, coalisce если не удовлетвояет условию, то null
Eugenii
либо если очень хочется то в том же постгре можно упаковывать в json
Евгений
самое смешное — это реализация блокчейнов для серьёзных бизнесов и государственных предприятий когда есть один глобальный ключ, позволяющий менять историю, главный узео и т.д.
Если он будет публиковать хеши, то можно будет легко отслеживать изменения. Если история была переписана, это будет видно.
Daniel
и что можно будет сделать?
Евгений
Во-первых, это красиво :D
Несомненно. После такого даже в Роттердам расхочется ехать :)
Заур
и что можно будет сделать?
Выйти на одиночный пикет
Заур
😀
Заур
С плакатом "руки прочь от блокчейна"
Andrey
..и получить штраф в защекоинах
🎉
Люди, а как реализуете связку go+react, в плане роутов? Роуты и в реакте и в го?
🏁Александр
а []myStruct и []*myStruct они же одинаково в памяти занимают?
🏁Александр
если я набор результатов возращаю
🏁Александр
(при условии что на каждую запись - свой экземпля myStruct)
Anonymous
а []myStruct и []*myStruct они же одинаково в памяти занимают?
э ... как бы, нет. В первом случае у тебя массив объектов, а во втором указателей
🏁Александр
но указатели то указывают на обьекты же
Vovan
ссылка на значения и значения не могут занимать одинаково
🏁Александр
я специально оговрился что на каждую запись свой обьект
🏁Александр
вы не поняли...
Darwin
🏁Александр
я считаю []*myStruct + обьем памяти по каждому обьекту ==/!= []myStruct
🏁Александр
в первом случаи даже получится мне кажется больше
🏁Александр
накладные расходы
Darwin
ну да, из стека выделится еще место под адрес
Darwin
1 байт или сколько там
🏁Александр
type myStruct { Num int } var result1 []myStruct for i:=0;i<1000000;i++ { result1 = append(result1, myStruct{ Num: i }) } var result2 []*myStruct for i:=0;i<1000000;i++ { tmp := &myStruct{ Num: i } result2 = append(result2, tmp) }