LINUX.ORG.RU

192
Всего сообщений: 459

gorm падает на joins

Пытаюсь подружить gorm с Access базой (да, знаю, что извращение, но выбирать не приходится).

Делаю всё по инструкции, объявляю модели, при запросе данных gorm внутри себя падает в панику. SQL перед этим генерирует корректный.

Меняю joins на preload - всё тут же начинает работать. Может я что-то не так в моделях для joins определяю?

https://pastebin.com/MKEeQqfA

 , , ,

atrus ()

Негибкость реализаций Go интерфейсов

Рассмотрим следующий пример кода на Go:

package main

import "fmt"

type animal interface {
	makeSound()
}

type cat struct {}
type dog struct {}

func (c cat) makeSound() {
	fmt.Println("meow")
}

func (d dog) makeSound() {
	fmt.Println("woof")
}

func main() {
	var cat1, dog1 animal = cat{}, dog{}
	cat1.makeSound()
	dog1.makeSound()

	var cat2, dog2 animal = &cat{}, &dog{}
	cat2.makeSound()
	dog2.makeSound()
}

Этот код работает - программа гавкает и мяукает как по значению, так и по ссылке. Но давайте немного изменим код:

package main

import "fmt"

type animal interface {
	makeSound()
}

type cat struct {}
type dog struct {}

func (c *cat) makeSound() {
	fmt.Println("meow")
}

func (d *dog) makeSound() {
	fmt.Println("woof")
}

func main() {
	var cat1, dog1 animal = cat{}, dog{}
	cat1.makeSound()
	dog1.makeSound()

	var cat2, dog2 animal = &cat{}, &dog{}
	cat2.makeSound()
	dog2.makeSound()
}

Теперь вызовы cat1.makeSound() и dog1.makeSound() не компилируются, выдавая ошибки вроде следующей:

.\test.go:21:6: cannot use cat{} (type cat) as type animal in assignment:
	cat does not implement animal (makeSound method has pointer receiver)

При этом вызовы cat2.makeSound() и dog2.makeSound() продолжают работать.

Почему такое неконсистентное поведение и почему передача того, что в других языках называется this или self в Go не унифицирована? В отличии от других языков программист на Go должен думать не только о сигнатуре метода, но и о способе передачи аналога this или self.

Кстати, объявить одновременно два варианта метода нельзя. Например если написать вот так:

func (c *cat) makeSound() {
	fmt.Println("meow")
}

func (c cat) makeSound() {
	fmt.Println("meow")
}

Будет ошибка:

.\test.go:16:6: method redeclared: cat.makeSound
	method(*cat) func()
	method(cat) func()

 ,

hummer ()

Стек технологий бекэнд разработки на Go

А расскажите мне Goты, какой у вас стек технологий, которые вы используете в типичном бекэнд проекте на Go?

Судя по статистике от JetBrains самым популярным фреймворком у вас является Gin. А где же IoC и прочие аналоги того, что есть в Spring Boot?

Возможно, мой последний вопрос не вполне корректный и неправильно искать прямые аналоги того, что есть в Java в Go. Мне просто хочется понять специфику бекэнд разработки на Go и её отличия от таковой на Java.

 , , , ,

hummer ()

BLM & Go

Почему модераторы ЛОР-а не модерируют этих поехавших на погромах BLM леваков из Гугла? Это же вопиющий нацпол на их главной.

Для Ъ: все сайты проекта Golang озаглавлены чёрной полосой в верхней части экрана с надписью: «Black Lives Matter. Support the Equal Justice Initiative.». На наличие нацпола многие жаловались, но гугловоды просто закрывали репорты и блокировали дальнейшее обсуждение.

Особенно мне понравился некто Sam Whited (Сем Побелевший) - явный тролль:

This is related to Go, because it’s a community issue and Go is a community as much as it’s a language.

Интересно, как много негров программируют на Go за зарплату?

 , ,

hummer ()

Зачем это нужно?

В proc.go стандартной библиотеки Go есть следующий код завершения процесса:

	exit(0)
	for {
		var x *int32
		*x = 0
	}

Какой смысл в бесконечном цикле сразу после exit(0)? Ведь он всё равно не выполняется.

 ,

hummer ()

Вакансия Senior/Lead Golang developer

Мы построили коммерческую облачную платформу на базе решения VMware, а также переоборудовали дата-центры в Москве, Санкт‑Петербурге, Владивостоке и Новосибирске, установив современные системы хранения данных и серверы мировых вендоров с высоким уровнем надежности. Таким образом, организовали распределенную облачную систему, объединенную собственными каналами связи, что позволяет гарантировать бесперебойную работу облачных ресурсов.

Что мы тебе гарантируем:

  • Официальное оформление;
  • Высокую, конкурентоспособную заработную плату до 450 000 р. на руки;
  • График 5/2 с плавающим началом;
  • Полностью удаленный формат;
  • Премия 20% от годового дохода;
  • ДМС со стоматологией для Москвы и области;
  • Курсы повышения квалификации;
  • Предоставление топового оборудования;
  • Отсутствие бюрократии;
  • Профессиональный и карьерный рост

Что мы ждем от тебя:

  • Опыт разработки от 2-х лет;
  • Знаешь архитектурные паттерны: гексогональная архитектура, DDD и другие;
  • Можешь самостоятельно разрабатывать и реализовывать архитектуру высоконагруженных отказоустойчивых решений;
  • Используешь принципы микросервисной архитектуры

С чем ты будешь работать:

  • Разработка платформы управления облачной инфраструктуры и сервисов;
  • Участие в API и в проектировании архитектуры сервиса

Мы уже ждем нашего будущего коллегу в гости, так что откликайся скорее!)

Контакты:+7(965)-088-94-67, Telegram @sacherepanova (Александра)

 , ,

Alexandra ()

Работа с памятью в go

premetheus по процессу отдаёт метрики:

go_memstats_heap_idle_bytes

go_memstats_heap_released_bytes

при этом эти значения около 13GB для сервера с 16GB RAM. $ps эту память включает в RSS процесса, так же как $free этих свободных 13GB не видит, нет её ни в кэше, ни в буферах. В meminfo эта память числится в Inactive(anon). Собственно вопрос, когда эта память станет реально доступной для ОС?

 ,

Viper ()

ищем GO - разработчика

Международный инновационный финансовый сервис (услуги в сфере криптовалюты на основе блокчейн) Локация: Москва

Контакты: 89199513579 телега, a.faizova081@gmai.com ЗП от 180 тыс.руб

Что мы предлагаем:

  • Возможность развиваться в международной компании, прокачивать hard skills (профессиональные навыки) в backend-разработке и soft skills (личные качества) в командной работе и решении проблем;

  • работа на полный рабочий день (в современном офисе с панормными видами города) или удаленно, по-договоренности;

  • официальное трудоустройство (белая заработная плата + бонусы за конкретные достижения);

  • пакет компенсаций (изучение английского языка, медицинская страховка ДМС)

График работы 5/2 + праздничные дни в соответствии с ТК РФ + 6 доп.дней к отпуску.

Что мы хотим видеть, какой опыт нам нужен:

  • опыт разработки на Go от 2 лет, Unit тесты, pprof, dlv
  • опыт работы с криптовалютами (BTC, ETH, etc);
  • Git
  • SQL. Опыт промышленной разработки с использованием MySQL (InnoDB, MyISAM), PostgresSQL.
  • NoSQL. Memcached, Redis, etc - использование на практике
  • Docker
  • Опыт использования RabbitMQ. Допускается так же опыт работы с Kafka, NATS
  • Опыт разработки RestFULL API под нагрузкой.
  • Опыт написания микросервисов, понимание микросервисной архитектуры
  • инициативность, креативность в рамках проекта

Дополнительные навыки, которые желательны в работе:

  • Tdd, принципы solid, hexagon architecture;

  • опыт работы в банковской сфере

  • опыт работы с Amazon AWS

Обязанности:

  • тесная работа в команде, взаимодействие с QA и продуктовой командами
  • разработка микросервисов на языке Go
  • оптимизация производительности
  • написание юнит-тестов
  • написание документации

 ,

alisa31 ()

go make get бесконечно

хотел себе собрать неплохой лаунчер под sway с https://github.com/nwg-piotr/nwg-dock, так make get висит уже час без изменений на строке

116 | GObject * g_binding_get_target (GBinding *binding);

можно было бы свалить на мой мини, но в топе я вижу процесс cc1 который занимает от 13 до 34% и все. Что делает make get и почему так долго? Я компилил более тяжелые проекты на расте гораздо быстрее

 ,

eco_dd ()

Поиск ключа по значению

Есть ли красивое решение без итерирования всех ключей и сравнивания значений?

 ,

dnb ()

Очередная новая революционная крипта (скорее всего пирамида)

Пост не реклама, даже наоборот. Хотелось бы размотать одну контору. В правилах не нашел пунктов запрещающих обсуждение такого.

Сабж.

На просторах интернета часто появляются разного рода криптовалюты с разной степенью лохотронства. Но одна из них мне уже съела мозг ибо многие мои знакомые туда уже полезли. В связи с чем, хотел бы обсудить его с форумчанами, при этом не делать ему рекламу. У проекта есть репозиторий и весьма мутный маркетинг. Скорее всего пирамида и хотелось бы разобрать.

А линукс тут при том что их ноду можно развернуть на линуксе, но не все так просто.

Называется сей велосипед Artery Network и созданная ими ARTR. Листинг есть только на одной не менее мутной эстонской бирже.

Модераторы, если что не так то снесите, но считаю тему интересной среди местных экспертов.

 , , , ,

ilinsky ()

В Go подкатывают generics

 , , ,

vertexua ()

vim и autocomplite

Доброе время суток!

Помогите, пожалуйста не могу разобраться с вопросом по поводу autocomplit у меня так и не работает для языков программирования Python, PHP, golang, javascript.

Вот мой .vimrc

( читать дальше... )

Буду признателен за помощь

 , , , ,

enep ()

Таймаут в контексте не срабатывает

ctx, cancel := context.WithTimeout(context.Background(), time.Duration(timeout)*time.Second)
defer cancel()
connect, err := mssql.NewConnector(connStr)
if err != nil {
	return err
}
db := sql.OpenDB(connect)
defer db.Close()
_, err = db.ExecContext(ctx, "WAITFOR DELAY '00:00:01';")
return err

И вижу зависшее соединение TCP lolcathost:37132->sql2k801.discountasp.net:ms-sql-s (ESTABLISHED). Есть такой же тикет https://github.com/denisenkom/go-mssqldb/issues/604 и, похоже, всем на*рать на него. Вопрос к опытным гоферам, как принудительно закрыть коннект и вернуть err средствами самого Go?

 , , ,

dnb ()

Менее прожорливые аналоги iotop есть?

Сабж.

 , , , ,

mertvoprog ()

Масштабирование приложений на go и scala

Для нового приложения выбираем стек и появился вопрос, как масштабировать приложения на go и scala. На ноде есть pm2 и можно указывать кол-во инстансов, есть ли что-то похожее на go или scala?

Скорее всего заказчик будет пускать приложение в кубах, но во-первых - не факт, а во-вторых хотелось бы знать, как выжимать максимум с одного сервера или виртуалки.

 , ,

Clause ()

моральный вопрос

Мы не сошлись с руководством компании «Рога и копыта», вернее эти три компании с тремя вывесками в одном коттедже, где в одной из фирм работал месяц один я, а еще месяц еще товарищ.

Я написал код для STM32 (IMHO простой, шаблоны там в основном только в util.cpp, каждый может переписать util.cpp).

Мне скзали, что я громко говорю и много (факт) и кучу бреда прро меня стандартного такого (вранье естественно). Я попросил дать мне закончить мой код до конца испытательного срока. Мой же ребенок, я хочу, чтобы у него выросли ножки и ручки. Начальство сделало вид, что пошло советоваться, хотя ответ понятен и так (ну конечно, проще заплатить мне за 2 недели работы, получил практически готовый проект, чем пытаться заставить кого-то разобраться в кусках кода, состоящий из TODO через три минуты вернулось и сказала - дописывай, только дисциплина и дальше бессмысленный набор слов.

Я сделаю модель ESP32 как WiFi-Bluetooth модем и Proof of Concept консольное приложение показывающее, что protobuf со скоростью ок 200Kbit/s по UART - будет работать.

Изначально идея была писать приложение в Unity. Я не люблю Unity, поэтому остановились на Xamarin. ВНЕЗАПНО.. оказалось, что в приложение должны быть «rig animations». Я тогда сказал, что давайте так Unity. Ну неважно. Теперь мне нужен PoC.

Меня тошнит от Python. Но я понял, как работат контора «Рога и копыта». У них нет денег платить программистом. Они берут их на испытательный, после чего увольняют и берут студента за в три раза меньше и он доделывает. Советь говорит мне писать TCP/IP-сервер и BLE-сервер в Python, так как каждый студент, знает Python. Его сейчас на первом курсе учат.

Но меня тошнит от Python. Я хочу написать PoC в Go. Все приложение займет < 1000 строк. А в Python/Go и того 500.

Можно ли быть в ладах со своей совестью заставив студента (особенно мутанта-любителя Unity) читать Go код?

Но все еще сложнее. Я подружился с перцем-коллегой. Он мне подарил STM32-Discovery board, а я ему купил пару мелочей на allegro. Он мне объяснил как работает H-bridge, а ему, что такое branch prediction и почем код, содержащий likely/unlikely - недерминистичен, а потому MISRA-incompatible.

Я хочу рассказать ему ВСЕ о том, что видел в рогах и копытах и что я думаю об их методе работы. У меня в жопе зудит рассказать ему об этои в понедельник вечером, но чувство самосохранения шепчет "расскажи тогда, когда они точно определяться, что Unity-студент будет им что-то править в STM32 коде. Как поступить? Рассказат в понедельник или в конце?

Помогите пожалуйста решить моральный вопрос. Мне понравился этот человек - отсюда вопрос. Кроме того, он месяц назад женился. Я не хочу его отговаривать от работы, просто предупредить и предостеречь от некоторых действий.

Как же поступить?

 , , ,

dissident ()

Как чувствует себя Go в системном программирование ?

Есть ли те, кто писал на Го на низком уровне? Удобно ли? И используют ли Го в кибербезопасности, а именно в написании каких-нибудь антивирусных штук?

 , ,

Petya-A ()

Стоит ли изучать Go для разработки под веб?

Я новичок, и мне нравится Го, я немного уже изучил основы, и язык довольно простой. Мне нравится разработка бэкенда, и именно на го.. Но есть ли перспективы у данной технологии? Как для новичка - это хороший выбор?

 ,

Petya-A ()

Remote Sr. Golang + React.js Fullstack Developer

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

опыт работы с rest api, websockets

3 года опыта разработки бэкэндов

1-2 года опыта работы с реактом

отличные знания mysql, опыт работы с большими таблицами

Желательно знание английского

Полный рабочий день, Гибкий график работы, зп в районе 3000 - 3500$.

Резюме высылайте на dev бобик smarttechdo тчк com

 , ,

mrdeath ()