Обновить
2

Пользователь

Отправить сообщение

Сколько вы хотите нейрослопа?
Да!

Видимо, в Антропик забыли древнее учение мудрых: "Чем меньше кода решает проблему, тем лучше"

> Крупнейшая соцсеть в РФ сделала рывок, перейдя с технологий 2010 года на технологии 2016 года

Даже звучит как заголовок с Панорамы, настоящая гойда

15 собесов за месяц? После всего шести собесов за полгода звучит как мана небесная)

Есть опасность что появится Великий Российский Firewall который будет разрешать только whitelist доступ к ресурсам и доступность «полноценного» Интернета, в лучшем случае, будет только от места к месту

Пророчество, не иначе

А где для AMD?))) Переименуйте хоть в x64 или x86_64
А где для AMD?))) Переименуйте хоть в x64 или x86_64

Из-за этого бага приостановили раскатку обновления 25.04, здесь было описано: https://www.gamingonlinux.com/2025/04/ubuntu-25-04-upgrades-halted-due-to-kubuntu-users-getting-a-broken-desktop/

built-in функцию copy для пришельцев придумали?)
Никто также не запрещает сделать append(dst, src...).
Всё это справедливо для слайсов, но никто не мешает кастить массивы в слайсы и назад, хоть это и муторно (append не сработал, но copy - вполне себе):

package main

import "fmt"

func main() {
	var a [2]int = [2]int{1, 2}
	var b [2]int

	fmt.Println(a)

	copy(b[:], a[:])
	fmt.Println(b)
}

sqlx > gorm, умеет такое же, но не приносит все минусы ORM-ок. Ещё и квери билдер удобный

Никакой, смысл тестировать мэйн?
Раз так хочется покороче - разбил инициализацию зависимостей по подпакетам (условный cmd/{название-проекта}/bootstrap/*, и там инициализируешь всё, что нужно, а сами Init-ы дёргаешь в мэйне. Можешь даже тесты прикрутить, кто тебе мешает

Например, как-то так
Например, как-то так

  1. Явный DI > Wire/fx/другие подобные решения.
    Для инициализации зависимостей можно делать отдельные пакеты/подпакеты в cmd, если уж такой большой проект, но только не IoC-контейнеры, с которыми выстрелить в ногу легче простого. (Как минимум в Go)

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

  3. Также не знаком с gin, однако судя по приставке Should у вас свалится паника, если не смаппится запрос. Может проще адекватно вернуть ошибку? Паника - это про фатал-кейсы, тут у нас просто плохой запрос, т.е. ошибка данных, но никак не фатальная ошибка, способная всё повалить.

  4. И зачем логировать ошибку в сервисе, если её можно пробросить на самый верхний уровень и уже там корректно обработать в одном месте как нужно?

Optional можно легко сделать собственной обёрткой а-ля:

type Optional[V any] struct {
	defined bool
	value   V
}
// И пара-тройка хелперов к нему


Всё на стеке, легко проверяется на "nil", и нет путаницы с валидными нулевыми значениями если отказаться от указателей. Так делают в sql пакете, например: https://pkg.go.dev/database/sql#NullInt64

Информация

В рейтинге
5 140-й
Зарегистрирован
Активность