Size: a a a

2019 December 24

V

Vabka in Go-go!
Calculon
почему под блокировкой?
Пушо ты проверил, и в этот же момент другой поток всё меняет и твоя проверка уже не актуальна, но ты уже идёшь делать плохие дела
источник

IK

Ilya Kaznacheev in Go-go!
"дзвесце пяцьдзясят рублёў"
источник

zl

ziggy lucid in Go-go!
Daniel Podolsky
могу

чем, собственно, монолит отличается от микросервисов, да и модульной архитектуры?

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

мы запросто можем разбить наш продукт на 100 сервисов, которые все будут на своих машинках работать

но!

если при изменении бизнес-требований нам придется поправить болеее одного из этих 100 - это монолит, и это тем более монолит, чем больше нам приходится сервисов править для фичи/багфикса одновременно

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

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

x

x-foby in Go-go!
Yevhenii
Всмысле, блин. Проверять длинну массива, проверять адрес на == nil
Количество свободной памяти тоже проверять, что OOM не словить?)

Так не выйдет, но использовать паники в клиентском и, тем более, библиотечном коде надо аккуратно, да. Точно зная, зачем это делается)
источник

DY

Denys Yaroshenko in Go-go!
Daniel Podolsky
взять длину, взять первый элемент, спросить его тип
а если поле пустое ?
источник

DY

Denys Yaroshenko in Go-go!
[]Some - пусто
источник

Y

Yevhenii in Go-go!
x-foby
Количество свободной памяти тоже проверять, что OOM не словить?)

Так не выйдет, но использовать паники в клиентском и, тем более, библиотечном коде надо аккуратно, да. Точно зная, зачем это делается)
А, ну тут мб и полезно, да
источник

C

Calculon in Go-go!
Vabka
Пушо ты проверил, и в этот же момент другой поток всё меняет и твоя проверка уже не актуальна, но ты уже идёшь делать плохие дела
wut
Получается несколько потоков одновременно меняют значение одной переменной
Какой в этом смысл? Как то стремно
источник

DP

Daniel Podolsky in Go-go!
Calculon
почему под блокировкой?
потому, что от проверки длины слайса до его использования могут произойти изменения.

вообще, для многопроцессорных систем хорошо бы на чистых функциях писать, но мы ниасиливаем
источник

AK

Andrey Kolkov in Go-go!
Ilya Kaznacheev
А как там передается, интересно?
источник

OJ

O . J in Go-go!
Vabka
Пушо ты проверил, и в этот же момент другой поток всё меняет и твоя проверка уже не актуальна, но ты уже идёшь делать плохие дела
а panic/recover какую тут роль играют в таком случае? Для каких-то изменений тебе при любом исходе нужно лок брать
источник

DP

Daniel Podolsky in Go-go!
O . J
а panic/recover какую тут роль играют в таком случае? Для каких-то изменений тебе при любом исходе нужно лок брать
последний линии обороны роль. чтобы программа, которая работает очевидно некорректно, переставала сразу же
источник

V

Vabka in Go-go!
Calculon
wut
Получается несколько потоков одновременно меняют значение одной переменной
Какой в этом смысл? Как то стремно
Ну при расшареном стейте - это в порядке вещей
источник

V

Vabka in Go-go!
Daniel Podolsky
потому, что от проверки длины слайса до его использования могут произойти изменения.

вообще, для многопроцессорных систем хорошо бы на чистых функциях писать, но мы ниасиливаем
Ага
источник

C

Calculon in Go-go!
Daniel Podolsky
потому, что от проверки длины слайса до его использования могут произойти изменения.

вообще, для многопроцессорных систем хорошо бы на чистых функциях писать, но мы ниасиливаем
А если сначала сделать проверку, а потом отдать слайс?
Или это будет дороже чем recover?
источник

DP

Daniel Podolsky in Go-go!
там есть пространство для рейса по-любому
источник

DP

Daniel Podolsky in Go-go!
то есть - паника нам нужна в любом случае
источник

DP

Daniel Podolsky in Go-go!
а раз есть паника - должен быть и рековер. и еще одна паника, которую не ловит рековер (есть, называется throw, устроена как log+exit)
источник

C

Calculon in Go-go!
Daniel Podolsky
там есть пространство для рейса по-любому
дк пространство для рейса это разве не косяк?
источник

OJ

O . J in Go-go!
Daniel Podolsky
последний линии обороны роль. чтобы программа, которая работает очевидно некорректно, переставала сразу же
звучи как - вода должна быть мокрой.

Давайте больше конкретики, для взятия актуального размера с слайса мы и так держим лок при любом исходе, тогда ваше утверждение - panic это хороший вариант..собственно вариант чему? https://t.me/gogolang/373917
источник