Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Rooster

Программирование, т. 8

  

315 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

(изменено)

 

йоу мужики мужичеллы мужланы

 

нормальный ли паттерн хранить в таблице маркер "занятости" записи или это как-то иначе, по-взрослому, решается? база постгре

 

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

 

сейчас у меня есть поле-булеан "being_processed", которое ставится в тру перед началом обработки записи и в фолс по освобождению и уважается всеми остальными желающими поработать с нею, но я вижу в этом потенциальные проблемы (навсегда остаться в состоянии being_processed в случае какого фейла, например) и вообще есть душок говнокодерства, но вроде пока обеспечивает то, что от него требуется

Гуглируй optimistic vs. pessimistic locking и выбирай что тебе больше подходит. Все остальные решения будут доморощенными и хуёвыми костылями с вероятностью 99% :buba:

 

оптимистик локинг через БД не подскажешь как реализовать?

мб там есть какой-то аналог CAS ?

 

просто если ты в транзакции делаешь boolean_locked = true то его другие транзакции не увидят при попытке посмотреть не занято ли им. если ты сделаешь в отдельной подтранзакции - как чел говорит если что-то пойдет не так и всё наебнется то что-то может заблочиться "навечно"

вроде еще некоторые бд поддерживают вложенные транзакции - сначала коммитится какая-то подтранзакция, потом если падает основная то вторая тоже откатывается.


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

об чем? статья по большей части сказка и вымысел

не знаю че вы паритесь если

npm i java@latest

обмажутся своими энпээмами, а потому у посетителей их сайтов щиткойны пропадают

 

вчера хуячил тестовых пользователей, а при создании пользователя создаётся заявка в удостоверяющий центр на выпуск сертификата

 

ну и хули, наши запросы с тестового контура летят в продуктовый УД

 

звонят спрашивают что за пользователь такой stubautotestuser и почему их 20

вы канешь долбоебы. Все вызовы в сторонние апи должны мокаться.

 

вот ты умника - а как интеграцию конец-на-конец проверять, а?


Публикация отключена

Поделиться сообщением


Ссылка на сообщение

ну там в комментах многие соглашаются что ф шарп рулит


javascript:void(0);

Поделиться сообщением


Ссылка на сообщение

что за пиздоглазый дизайнер надизайнил новую тему для слака?


 

 

вот ты умника - а как интеграцию конец-на-конец проверять, а?
 

ты тестировать должен свой код, а не чужую интеграцию.

FeelYourDestiny понравилось это

 

<< твой комментарий очень важен для форума.

Поделиться сообщением


Ссылка на сообщение

что за пиздоглазый дизайнер надизайнил новую тему для слака?

плюсую, какой-то пиздец стал

 

ещё и иконка новая блевотина ебучая, нормальный чёрный # был куда лучше

Поделиться сообщением


Ссылка на сообщение

что за пиздоглазый дизайнер надизайнил новую тему для слака?

 

вот ты умника - а как интеграцию конец-на-конец проверять, а?

ты тестировать должен свой код, а не чужую интеграцию.

я тебе написал уже, что код тестируется юнитами, ты все равно ТЕСТИРОВАТЬ НАДО КОД

 

бизнесу поебать на покрытие тестами и отчёт сонаркуба, ему главное чтоб все работало, в том числе и интеграции

 

а вот это окукливание типа код протестирован

ну молодца, чё

Поделиться сообщением


Ссылка на сообщение

что за пиздоглазый дизайнер надизайнил новую тему для слака?

Preferences -> Sidebar и меняешь тему на оригинальную (или любую другую).
TheDeadSkin понравилось это

Поделиться сообщением


Ссылка на сообщение

 

 

бизнесу поебать на покрытие тестами и отчёт сонаркуба, ему главное чтоб все работало, в том числе и интеграции

а вот это окукливание типа код протестирован
ну молодца, чё

а для этого нужен отдельный стенд где ты имитируешь прод  :nate:  и все процессы что крутятся на проде. 


 

что за пиздоглазый дизайнер надизайнил новую тему для слака?

Preferences -> Sidebar и меняешь тему на оригинальную (или любую другую).

 

да уже, но шок то никуда не делся.


 

<< твой комментарий очень важен для форума.

Поделиться сообщением


Ссылка на сообщение

 

 

что за пиздоглазый дизайнер надизайнил новую тему для слака?

Preferences -> Sidebar и меняешь тему на оригинальную (или любую другую).

 

да уже, но шок то никуда не делся.

 

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

Поделиться сообщением


Ссылка на сообщение

:pray: спс за совет

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

Поделиться сообщением


Ссылка на сообщение

йоу мужики мужичеллы мужланы

 

нормальный ли паттерн хранить в таблице маркер "занятости" записи или это как-то иначе, по-взрослому, решается? база постгре

 

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

 

сейчас у меня есть поле-булеан "being_processed", которое ставится в тру перед началом обработки записи и в фолс по освобождению и уважается всеми остальными желающими поработать с нею, но я вижу в этом потенциальные проблемы (навсегда остаться в состоянии being_processed в случае какого фейла, например) и вообще есть душок говнокодерства, но вроде пока обеспечивает то, что от него требуется

у скл сервера optimistic concurrency делается через колонку типа timestamp которая рефрешится склсервером при каждом изменении строки и ормка имеет возможность упасть, если видит, что между чтением и записью кто-то поменял строку (верней технически оно обновляет строку с фильтром не только по айди, а еще и по таймстемпу, а потом смотрит, сколько строк обновилось. Если база ответила, что 0, значит кто-то либо удалил твою строку, либо апдейтнул до тебя)

гугл говорит, что у постгре на это вроде используют xmin, xmax

https://www.postgresql.org/docs/9.1/ddl-system-columns.html

 

ну и твоя колонка офк тоже, тк во всех случаях кроме рейс кондишена будет работать она, а если оказалось так, что строку схватили два потока, один просто упадет и начнет заново


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

 

бизнесу поебать на покрытие тестами и отчёт сонаркуба, ему главное чтоб все работало, в том числе и интеграции

 

а вот это окукливание типа код протестирован

ну молодца, чё

а для этого нужен отдельный стенд где ты имитируешь прод :nate: и все процессы что крутятся на проде.

 

что за пиздоглазый дизайнер надизайнил новую тему для слака?

Preferences -> Sidebar и меняешь тему на оригинальную (или любую другую).

да уже, но шок то никуда не делся.
я на нем и тестирую, алло, е2е тесты

только одна из систем боевая, а не тестовая

Поделиться сообщением


Ссылка на сообщение

Воу, до парня дошло, что писать без бесконечных классов/интерфейсов гораздо проще и качественнее  :ohpalevo: . Норм. Мб еще лет через 5 дойдет, что можно и типы не описывать, а писать на божественном js'e c динамической типизацией и код от этого только выйграет.

Поделиться сообщением


Ссылка на сообщение

что за пиздоглазый дизайнер надизайнил новую тему для слака?

 

 

вот ты умника - а как интеграцию конец-на-конец проверять, а?
 

ты тестировать должен свой код, а не чужую интеграцию.

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

 

ну и чужая интеграция это конечно так ищо рофлинка.


Публикация отключена

Поделиться сообщением


Ссылка на сообщение

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

 

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


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

 

что за пиздоглазый дизайнер надизайнил новую тему для слака?

 

 

вот ты умника - а как интеграцию конец-на-конец проверять, а?
 

ты тестировать должен свой код, а не чужую интеграцию.

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

 

ну и чужая интеграция это конечно так ищо рофлинка.

 

а нах тебе тестировать инфраструктуру где-то кроме нагрузочных тестов?

ну там вообще я чужое апи имел ввиду, уж поздно исправлять.


 

<< твой комментарий очень важен для форума.

Поделиться сообщением


Ссылка на сообщение

 

Воу, до парня дошло, что писать без бесконечных классов/интерфейсов гораздо проще и качественнее  :ohpalevo: . Норм. Мб еще лет через 5 дойдет, что можно и типы не описывать, а писать на божественном js'e c динамической типизацией и код от этого только выйграет.

 

выиграет кубок главного петуха на код-ревью  omegalul 

pepehands 

 


have courage and be kind

  😈🫀💋 🩸👣🤌🏿🦄 🐝 ☄️❣️ 💕 💞❤️😈

 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖

220941652_Annotation2021-03-20123345.jpg.23dcff343d6a377badf433b20f5271fd.jpg

💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 

Поделиться сообщением


Ссылка на сообщение
(изменено)

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

 

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

Хз с чего ты взял что он писал на  "C c классами". Ну ок, а вот эти парни в комментах тож на "C c классами" пишут ?

 

"Та же история — C#, энтерпрайз, клин код, абстрактные фабрики синглтонов, вера в Фаулера, мрак, безысходность."

 
"C# стиль (с кучой мусора на интерфейсах и DI)"
 
"Эта бесконечная вереница интерфейсов, скобочек и безумного количества мусорного кода с пробрасыванием интерфейсов, наследования от интерфесов, где у 99,99% интерфейсов всего одна единственная реализаця."

Изменено пользователем .felix

Поделиться сообщением


Ссылка на сообщение

чет вы как-то все переусложняете по поводу локов в таблице, есть же просто row-level лок в постгре, просто в каждой транзакции лочишь и остальные будут ждать, пока ты отпустишь, собсна: https://www.postgresql.org/docs/11/explicit-locking.html

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...