Size: a a a

2020 June 06

AK

Anton Kucherov in Go-go!
ziggy lucid
так а почему нет, если уже знаешь как? пальцы ж не сотрутся, если на десяток строчек больше написать
Ну я лично согласен с Дональдом Кнутом и его позицией относительно оптимизации. Считаю что она должна быть оправданной, а не преждевременной. К тому же любая оптимизация вредит читаемости кода. Но вата точка зрения тоже имет место быть, я не против. Умеете, нравится, оптимизируйте. Я просто сказал что "не понимаю"
источник

Н

Никита in Go-go!
Anton Kucherov
Ну я лично согласен с Дональдом Кнутом и его позицией относительно оптимизации. Считаю что она должна быть оправданной, а не преждевременной. К тому же любая оптимизация вредит читаемости кода. Но вата точка зрения тоже имет место быть, я не против. Умеете, нравится, оптимизируйте. Я просто сказал что "не понимаю"
Не будет ли Clean преждевременной оптимизацией для маленьких-средних проектов?
источник

VL

V L in Go-go!
Никита
Ну вот если база одна. Мы разнесли все в разные структуры и пакеты. Как тут транзакции тогда вставить? Тоже проблема
а как бы вы делали транзакции, если бы это были независимые хранилища?
источник

AK

Anton Kucherov in Go-go!
Никита
Не будет ли Clean преждевременной оптимизацией для маленьких-средних проектов?
Такой вариант возможен, да.
источник

zl

ziggy lucid in Go-go!
Никита
Не будет ли Clean преждевременной оптимизацией для маленьких-средних проектов?
вот кстати да, по сути clean - оптимизация будущей поддержки
источник

Н

Никита in Go-go!
V L
а как бы вы делали транзакции, если бы это были независимые хранилища?
Это уже другой вопрос. Двухфазный коммит, как простейший вариант
источник

AK

Anton Kucherov in Go-go!
ziggy lucid
вот кстати да, по сути clean - оптимизация будущей поддержки
Именно поэтому я за то чтобы понять принципы которые под ней лежат и применять их постепенно, точечно и к месту
источник

ᐺ ! ᖇ ᖶ ᒪ in Go-go!
V L
ошибки нет, почитайте  https://blog.golang.org/json
заработало если заменить Stat{} на interface{}

в этом случае v превращается в map[string]interface{}
источник

zl

ziggy lucid in Go-go!
Anton Kucherov
Именно поэтому я за то чтобы понять принципы которые под ней лежат и применять их постепенно, точечно и к месту
а как понять, что уже пора применять?
источник

VL

V L in Go-go!
ᐺ ! ᖇ ᖶ ᒪ
заработало если заменить Stat{} на interface{}

в этом случае v превращается в map[string]interface{}
почитайте ссылку
источник

MG

Max Grigoriev in Go-go!
Никита
Вот, например, https://github.com/bxcodec/go-clean-arch. Это хороший пример? @antonikucherov
накину я еще :))) вот реализация казалось бы простой функции https://github.com/bxcodec/go-clean-arch/blob/master/article/usecase/article_ucase.go#L33-L82 и когда мне говорят что в Го все явное и простое а так же что джава это многострочный ужас я смотрю и удивляюсь.  вот та же реализация с асинхронностью на Джаве: https://pastebin.com/1rTXX0ak
источник

VL

V L in Go-go!
Никита
Это уже другой вопрос. Двухфазный коммит, как простейший вариант
Может можно тут попробовать также, а когда сделаете - возможно увидете как можно упростить?
источник

Н

Никита in Go-go!
V L
Может можно тут попробовать также, а когда сделаете - возможно увидете как можно упростить?
Мне кажется делать распределённые транзакции с одной БД это явный перебор. Нативные транзакции в разы надежнее и уже сделаны за нас.
источник

AK

Anton Kucherov in Go-go!
ziggy lucid
а как понять, что уже пора применять?
Проанализировать бизнес-требования, посмотреть где они неясны и/или где могут поменяться (изучать ту предметную область под которую вы пишете). Как правило любую технику применять приходится когда возникает проблема. Ну или вы уже много раз сталкивались с одной и той же проблемой и видите, к чему все идет.
источник

VL

V L in Go-go!
Никита
Мне кажется делать распределённые транзакции с одной БД это явный перебор. Нативные транзакции в разы надежнее и уже сделаны за нас.
Я не предлага вам отказаться от нативной транзакции БД, я предлагаю вам попробовать ее встроить в архитектуру.
источник

Н

Никита in Go-go!
V L
Я не предлага вам отказаться от нативной транзакции БД, я предлагаю вам попробовать ее встроить в архитектуру.
Сейчас она у меня реализована без проблем с одной структурой. Я пытался как-то сделать с несколькими, но не вышло.  По крайней мере с таким подходом, который у меня сейчас
источник

zl

ziggy lucid in Go-go!
Max Grigoriev
накину я еще :))) вот реализация казалось бы простой функции https://github.com/bxcodec/go-clean-arch/blob/master/article/usecase/article_ucase.go#L33-L82 и когда мне говорят что в Го все явное и простое а так же что джава это многострочный ужас я смотрю и удивляюсь.  вот та же реализация с асинхронностью на Джаве: https://pastebin.com/1rTXX0ak
flux разве не сторонняя библиотека? ведь сравниваете с изкоробочным го
источник

VL

V L in Go-go!
Никита
Сейчас она у меня реализована без проблем с одной структурой. Я пытался как-то сделать с несколькими, но не вышло.  По крайней мере с таким подходом, который у меня сейчас
У вас проблема, что нужно в разных методы разных классов использовать один и тот же объект, содержащий транзакцию к БД. Как это можно решить?
источник

MG

Max Grigoriev in Go-go!
ziggy lucid
flux разве не сторонняя библиотека? ведь сравниваете с изкоробочным го
а какая разница часть ждк или в мавене зависимость прикручу? я сравниваю решения.
источник

ᐺ ! ᖇ ᖶ ᒪ in Go-go!
ᐺ ! ᖇ ᖶ ᒪ
заработало если заменить Stat{} на interface{}

в этом случае v превращается в map[string]interface{}
крч нужно было просто экспортировать поля стракта
источник