Roman
например какое-нибудь древо там например которое построено на указателях. Само древо статичное, а узлы древа - нет
Alexey
не с этим ли мы боремся?!
нет. автор дает возможность иметь иммутабельные данные, а не говорит кому как жить
Roman
иначе эту проблему не решить... если тебе нужно вот именно статичное древо на указателях, а Go тебе в ответ: "извини, я так не умею, придётся переосмысливать проблему"... это херово
Alexey
нет. автор дает возможность иметь иммутабельные данные, а не говорит кому как жить
это кстати может противоречить концепции языка. (я тут не троллю)
Alexey
в языке как-то принято что говорят как жить сверху
Roman
в языке как-то принято что говорят как жить сверху
есть такое, но оно не так часто ограничивает тебя до "невозможного" вот пример с древом это будет взрыв нижнего отверстия... придётся выбирать: либо древо не статичное (опасно, мутации), либо ноды иммутабельные (не решает задачу)
Roman
и опять мы вынуждены писать небезопасный код дабы решить проблему... зачем тогда пропосал писали - не понятно.
Roman
побуду адвокатом дьявола. я думаю тебе скажут что это 1% случаем а ради него мы не будем усложнять язык.
я боюсь что такое мышление убьёт Go во многих сферах и он так и останется супер-нишевым, хотя очень даже зря
Roman
I mean.... "who needs 4 billion IP addresses anyway?..."
Alexey
Опять же позиция авторов языка проста. Дав что-то забрать это нельзя. Можно посмотреть во что превратился с++. Их задача это предотвратить.
Roman
язык прост тогда - когда в правилах нет исключений. Чем меньше исключений - тем лучше, а "const применяется на указатель и на объект" это спец-правило и это очень нехорошо
Alexey
Да я только за. И за консты и за тайпклассы. :)
Roman
а с моим предложением правило без исключений распространяется на все типы. иммут и мут типы это как Материя и Антиматерия.. они практически одинаковы, за исключением заряда Object это тип []Object это тоже тип const []Object же это исключение тогда, потому-что на самом деле это const [] const Object ибо не понятно кто иммено имутабелен, слайс? или тип в слайсе? я лично против таких исключений из правила, даже ради упрощённого синтаксиса, больше неясности вносит чем символов экономит
Alexey
Я думаю авторы языка как раз не против. Посмотри на map.
Alexey
всмсл?)
всмысле генерики можно, но не всем.
Roman
всмысле генерики можно, но не всем.
у это таки немного другая тема
Vadim
Есть в c# такой keyword как readonly. Оставлю это здесь)
Roman
Есть в c# такой keyword как readonly. Оставлю это здесь)
в Go его не будет, никогда либо const, либо mut с иммутабельностью по умолчанию в Go2 через лет эдак 10
Vadim
Просто пища умам.
Roman
ronly, ro.
про причину использования const мы уже горовили неоднократно
Alexey
Парни, а что гугл за DI выпустил? Кто-нибудь использовал?
🏁Александр
мы тут решили как то
🏁Александр
что самописный на структуре - the best
🏁Александр
🙂
Alexey
Мы используем fx, но только не прикольно в runtime ловить null pointer. У di гугловского он упадет во время компиляции, если мне изменяет память..)
🏁Александр
хм
🏁Александр
там кодогенерация?
🏁Александр
что-то читал про него
саша
mutable shared state - это проблема concurrency, но по идее, решается с помощью мьютексов
Это проблема всего программирования. Мьютексы решают проблему синхронизации, но не решают проблему общего изменяемого состояния.
doc
Но на них никто не пишет
саша
в rust вроде эта проблема решена?
Эту проблему не решить, она лежит на фундаментальном уровне, это проблема вытекает из свойств, которые требуются от ПО. Иммутабельность и прочие решения пытаются лишь её изолировать и упростить поиск ошибок в коде с общим изменяемым состоянием.
саша
Но на них никто не пишет
Во первых - исторически сложилось, во вторых - пишут.
doc
Мало пишут
саша
Мало пишут
Сейчас каждый первый новый язык что-то тянет из хаскеля или окамла.
YᑌᖇIY
Скала, пишут и пишут все активнее. Иммутабельность в языке, большие проекты, serverless энвайроменты.
ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ
Сейчас каждый первый новый язык что-то тянет из хаскеля или окамла.
новых языков все больше, а все равно вакансий больше на джаве
Alexander
новых языков все больше, а все равно вакансий больше на джаве
а что плохого в яве ? ну и можно быть крутым спецом и найти вакансию хоть на common lisp
Alexander
Сама ява)
язык != плафторма. jvm отличная платформа. а язык не очень тупо потому что ему больше 20 лет и есть священная корова в виде обратной совместимости
🅁
Спорить можно долго, но чотбы продукт получился хорошим на яве - уровень разраба должен быть бог. Иначе то память, то поставьте в крон на рестарт каждые 2 дня...
YᑌᖇIY
Спорить можно долго, но чотбы продукт получился хорошим на яве - уровень разраба должен быть бог. Иначе то память, то поставьте в крон на рестарт каждые 2 дня...
вы не понимаете что все более-менее серьезные продукты разрабатываются командой? и что в команде не могут быть все разрабы "уровня бога". Именно это и дает появления JVM языков типа Scala, где командная разработка "защищена" от side-эффектов на уровне языка. Если хочешь делать mutable код, переменную и т.д., то этот кусок будет подвергнуть тщательному изучению, потому что на уровне рекомендаций разработки на Scala - var переменные "несколько хуже", чем val переменные, т.е. bad practiсe. Но если нужно и разраб "уровня бог", понимает последствия и может их устранить - то можно использовать var для внутренних нужд.
qurabay
Как деплойт go на vps ?
qurabay
Помог
qurabay
qurabay
Походу никто не знает да
Zver
Просто все отдыхают.
YᑌᖇIY
Как деплойт go на vps ?
вы про это? https://stackoverflow.com/questions/27518407/upload-and-deploy-golang-application-to-vps
Co(n)stantine👨‍🔬
https://blog.golang.org/docker
Co(n)stantine👨‍🔬
Google: golang deploy on linux server
Co(n)stantine👨‍🔬
golang deploy in docker
Nix
Подскажите чем можно заменить exec.Cmd для поторных использование. P.S. https://www.programming-books.io/essential/go/178-os-exec-gotchas
Co(n)stantine👨‍🔬
https://about.sourcegraph.com/go/gophercon-2018-5-mistakes-c-c-devs-make-writing-go
Ivan
Коллеги, нужен совет. Есть некий сервис, который ходит по сторонним апи и собирает данные. Он написан на го. Появилась админка, написана на пхп, и через нее добавляются уже новые задачи, что когда обновлять. Как правильнее объединить сие чудо? Сходу задумался о rabbitmq, но там довольно много разных моментов может быть - запускать каждый час, раз в сутки и пр. Никто похожего планировщика не делал? Все это хранится в бд
Peter
Я делал подобное, сервис и php смотрят в одну базу, при старте сервис считывает данные в свою структуру, если на php делаются какие-то действия, то через redis отправляется событие и id записи, сервис из базы обновляет свои данные
BCmob
Пробую постгрее в сравнении с монгой. Это нормально что операция инсерт выполняется около 5мс в то время как в монге около 0.5мс? Можно ли как-то оптимизировать?
.
в монге это фича же. быстрый инсерт
За счёт чего такая разница?
ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ
За счёт чего такая разница?
много причин. одна из них, то что не валидируются реляционные связи и не нужно расчитывать на какую страницу вставить
Anonymous
Убит
Daniel
Вы совсем страх потеряли
Anonymous
не дочитал (
l3xxxy
эххх такой срач загубили((((
Заур
Ээ, я же ответить хотел (
Daniel
Не надо
l3xxxy
кстати чел спрашивающий про аргументированную полемику не написал ниодного сообщения, которое было бы чем то аргументировано или содержало бы действительно стоящий аргумент
Anonymous
эххх такой срач загубили((((
Пиши на чем хочешь
l3xxxy
ну да ладно, для меня главный плюс гоу это компилятор а не интерпретатор(вм) собственно вопрос был не к тому чтобы поднять срач, а к тому, чтобы продолжая тему поинтересоваться юзает ли кто то нектар(компилятор для жиэса) если пишет на node.js к примеру
l3xxxy
потому что, сюрприз, js теперь тоже компилируется во что хочешь, даже в ассемблер