ага. А что?Наверное тогда знаете, что ORM на уровне например hibernate в го просто нет и в большинстве случаев легче написать самому запрос, чем ковыряться среди ORM
Вы писали на го, когда-нибудь?
Для самоутверждения
Хочется острых ощущений
Это круто
должен вызвать функцию ошибки, в которую требуется передать Поле из верхней структурыТут либо редизайн, либо можно просто добавить/перенести поле в дочернюю структуру, т.к. в го используется встраивание, то всегда можно будет получить имя родителя из ребенка. Типа такого, зачем вам указатель тут нужен я хз, или вы собираетесь менять имя родительского элемента?
<code lang="go">
type parent struct {
child
}
type child struct {
parentName string
}
</code>
он новый, простой и на него неплохой спросЭто всё так, но есть свои особенности, джунам тяжелее найти работу относительно Java или Python например. Нужно писать относительно много своего кода, который в других языках по сути уже встроен в фреймворк. В последнее время материалов по го стало достаточно много, но всё равно многие моменты можно почитать только в оф доке, что для новичка часто бывает скучным и сложным. Ну и в целом без представления о сетях/бд я бы не советовал бы лезть в го.
. Старые неиспользуемые профили мы удаляем через полгода.и
От того и частое сохранение прогресса на каждое подозрение о зкарытии окна.А зачем хранить все профили за полгода(я не докапываюсь просто интересно)? В этом случае redis не стоит использовать. В таком случае возможно имеет смысл держать в памяти/БД 5-10 сейвов, а остальное складировать в архив на сервере
Как он десятки миллионов записей хранить будетНа сайте написано, что с 250кк записями он справляется. Но я не пойму откуда у вас берется 10кк когда у вас всего профилей 100к?
zip.Я имел ввиду, что конкретно там хранится, но если в целом предполагается что данные прям так будут храниться, то я совсем не понимаю в чем смысл использовать mysql тут, логичнее всего использовать условный redis, который будет каждый раз будет обновлять по ключу профиль. Есть еще minio s3, но тут вряд ли этот кейс. В целом можно посмотреть еще в сторону оптимизации самих профилей, если там не собирается гора статистики, то в целом непонятно зачем отправлять 100кб сжатых данных по 3 раза в минуту
Про стандартные средства языка - а пустит ли меня движок "внутрь", чтобы я там что-то писал на языке? Вот в чем вопрос.Почти любой движок поддерживает какой-либо ЯП - это означает, что программист может писать свой код для взаимодействия с игрой или ОС. В юнити это C#, в UE с++, в godot несколько языков на выбор.
Речь про создание/чтение и сохранение txt файлов на сервере.В таком случае это не особо имеет отношение к движку, из движка нужно будет делать только HTTP запросы на сервер(можно конечно и другой протокол выбрать), а на сервере будет работать уже другая программа, которая будет заниматься чтением/записью файлов, формированием отчетов, сбором статистики и т.д.
но ведь питонисты и джависты изначально тоже не знают предметную область.Так и есть, но у одних есть джанго, а у других Spring, есть общепринятые ORM(в го часто нужно писать запросы самому), которые в целом позволяют уйти от написания sql в большинстве случаев, даже из реальной практики пример, знаю людей которые используют джанго и не знают как устроена аутентификация, в го с этим сложнее т.к. в принципе считается, что программист может переключиться между фреймворками почти безболезненно, в питоне/яве в целом такая ситуация довольно редкая.
В стандартной библиотеке go есть ли инструменты для работы сКстати многих удобных инструментов/библиотек нет, которые есть в других языках, так что много приходиться писать руками без готовых либ, либо их допиливать. В других языках такое тоже конечно есть, но по моему опыту этого меньше. Так что если не готовы писать свои инструменты, то го скорее всего вам не очень подходит.
Правда словил депрессняк от этого, но это уже другая тема.Ну на мой взгляд не стоит грустить от этого, т.к. все тупят в начале кроме мб пары процентов людей.
&http.Transport{
MaxIdleConns: 10, // global number of idle conns
MaxIdleConnsPerHost: 5, // subset of MaxIdleConns, per-host
// declare a conn idle after 10 seconds. too low and conns are recycled too much, too high and conns aren't recycled enough
IdleConnTimeout: 10 * time.Second,
// DisableKeepAlives: true, // this means create a new connection per request. not recommended
}
Вероятность этого 100% т.к я специально лазил проверять где забивается.Сколько занимает эта мапа памяти и как проводилась проверка? И опять же проблема вероятно не с ней а с тем что вы неправильно выполняете запросы, из-за чего она может забиваться.
Так и есть
Упасть из-за нехватки памяти можно и в программе и без горутин, сами по себе они не занимают много памяти. И в целом если горутин много, то программы чаще упираются в процессор чем в память. И в целом если горутин много и их нужно ограничивать, то проблему часто решает воркер пул, который не позволит создать больше горутин чем задано. Честно говоря я ни разу не встречался с тем, что проблемы были имеено в горутинах, обычно проблемы либо в архитектуре, либо в целом с выделением памяти