Pull to refresh
8K+
27
12
Rating
4
Subscribers
Send message

В итоге остановился на такой реализации:

// pkg/uow.go

package uow

type UoW[T any] interface {
	InTx(ctx context.Context, f func(ctx context.Context, tx T))
}
// handler.go

package handler

import (
  "model"
  "context"
  "pkg/uow"
)

type UsersRepository interface {
  Save(ctx context.Context, user model.User)
}

type OrdersRepository interface {
  Save(ctx context.Context, order model.Order)
}

type tx interface {
	GetUsersRepo() UsersRepository
	GetOrdersRepo() OrdersRepository
}

type Handler struct {
	users  UsersRepository
	orders OrdersRepository

	uow uow.UoW[tx]
}

func (h *Handler) Handle(ctx context.Context) {
	h.uow.InTx(ctx, func(ctx context.Context, tx tx) {
		u := tx.GetUsersRepo()
		o := tx.GetOrdersRepo()
	})
}

А можно пример посмотреть?

А кто и как создаёт postgres_pgx.IConnectionTransaction? И почему Read_ctx - это функция, а не метод?

Бизнес вроде озона невозможно перевезти в другую страну. Как вы себе это представляете?

Если автор действительно уверен в отрицательной доходности мирового рынка акций и облигаций, драгоценных металлов, криптовалюты и недвижимости (и жилой, и коммерческой), то ему неиронично нужно вкладывать все силы и деньги в собственную землю и знания по автономному выживанию.

Но автор комментария скорее всего просто крайне поверхностно разбирается в вопросе инвестиций (если вообще разбирается), поэтому и выдаёт такие катастрофические прогнозы.

В общем-то за сокращением населения на Земле должна неизбежно последовать эпоха отрицательной доходности на капитал

Всем таким знатокам, которые ТОЧНО уверены в своих прогнозах, я говорю одно и то же: "Ну так встаньте в шорт с плечом на условный S&P500 и заберите свой куш".

Дальше всегда от собеседника начинаются маневрирования и оправдания, почему он не будет этого делать

Какой смысл оценивать нужность какого-то подхода именно через SOLID? Это набор правил с довольно размытой формулировкой, которые применяются очень ситуативно.

модуль должен делать что-то одно

Вроде как сообщество пришло к консенсусу, что SRP про то, что у класса должна быть одна причина для изменений. А мы опять почему-то возвращаемся к определению десятилетней давности.

Ну вот сделали вы ради соблюдения SRP условный UserRepository. Спустя какое-то время там будет целая пачка методов (Create, Update, Delete и пр.). Это явно нарушает ваш SRP, потому что теперь класс не делает что-то одно. Волнует ли это кого-то в сообществе? Практически никого. Почему здесь мы вдруг обязаны опираться на SRP?

Каким образом вы натянули принцип подстановки Барбары-Лисков на язык без "полноценного" наследования, я вообще не понял.

Мне так нравится эта наивная вера некоторые разработчиков, которые уверенно заявляют, что они-то вот настоящие инженеры, которых не уволят из-за ИИ. А других обязательно уволят, потому что они липовые программисты, так как не знаю особенности рандома.

На деле рыночек порешает всех по своим правилам, которые заранее нам знать не суждено. Но последние года до бума айти в среднем по больнице скорее смузихлёб на JS зарабатывал куда больше по сравнению с "настоящим" инженером на C/C++

А работа через контекст хороша тем, что...

Да ничем она не хороша. Контекст был придуман не для того, чтобы туда складывать всё подряд

А помните, был такой коронавирус мессенджер макс?

В идеальном мире имя .go-файла должно кратко описывать его содержимое, состоять из одного слова и быть полностью в нижнем регистре. Хорошие примеры из пакета net/http стандартной библиотеки: cookie.go, server.go и status.go.

В официальных источниках нет такого правила. Всё вышеперечисленное относится к именам пакетов, а не файлов

Я интернет никому не блокировал, телеграм не замедлял, белые списки не вводил. И если я "сдрисну" в другое место, то там тоже ничего такого делать не буду.

Ну так и Вторая Республика была вовсе не калькой с Первой.

Хватает попыток построить коммунизм, хватит уже. Ни разу это не привело ни к чему хорошему. Зато проблем потом хватало на десятилетия вперёд. Часть из них мы до сих пор разгребаем

Вы построили дом. В нем было тепло, уютно. Пришел злобный имярек, дом разрушил. Ваш вывод - дом плохой, в нем не тепло и не уютно?

Правильная аналогия про СССР выглядит иначе. Вы построили дом на фундаменте из бумаги и поролона из крайне посредственных материалов. Выглядит дом не очень, хотя все вокруг говорят, что это лучший дом на свете, а в других странах домов вообще ни у кого нет.

В итоге дом сломался сам по себе, так как был построен по технологии, которая даже на бумаге выглядит крайне сомнительно.

Хорошо, что коммунисты решили эту проблему и предложили изначально монополизированный рынок. Удобно!

Может ли насекомое решающим образом повлиять на ход Второй мировой войны? Может - если внутри пчелы полковник-инженер Петр Дегтярев, нашедший себе в августе 2014 года героическую смерть в ходе боев на Донбассе.

Ну вот цитата из его же книги. Подробности можно найти на ютубе по запросу "анар бабаев разоблачение"

Information

Rating
599-th
Registered
Activity