Size: a a a

Saint P Ruby Community

2020 September 23

AD

Anton Davydov in Saint P Ruby Community
wi11son
А чего не Андрей? Он вроде тоже здесь
А я кстати не знал Оо
источник

АК

Александр Крылов... in Saint P Ruby Community
Гайз что можно почитать по примерам организации биллинг систем?
Если вкратце то решаю задачу учета зачисления средств на ЮЛ клиентов, распределения средств по картам пользователей клиентов, и расходования средств.

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

АД

Антон Дьячук... in Saint P Ruby Community
max
в классическом варианте возвращают заголовок http status code 4xx, 5xx
но без body это быстро становится неудобным, тк абсолютно неясно что произошло - может просто вебсервер прилег

поэтому лучше передавать json в body с детальным описанием ошибки

и по мне, так лучше возвращать 200 с телом result: {}, error: { code: 42, desc: ... } (по своему вкусу)
и чекать что error не пустой
и тогда статусы отличные от 200 сигнализируют, что что-то не так с веб-сервером, а не с приложением
что бы "почувствовать разницу" попробуйте написать обработчики then/catch для `$.ajax('/api/order/123')`и различить в них когда ошибка от приложухи, а когда от вебсервера
нельзя возвращать 200 в случае ошибки
1) это плохая привычка, потому что она сработает на этом проекте, но не сработат на другом
2) почти все грамотные библиотеки умеют работать со статусами
3) тесты работают со статусами
4) люди читают одни и те же книги и в общем следуют рекомендациям, а тут тебе вдруг 200 но реквест не суккес
5) ожидать не 200 нормально
6) если все всегда 200 - подозрительно (все всегда работать не может)
7) что делать с 204, 201? оверрайдить ответ каждого экшена вручную?
источник

CM

Cucumba Morozov in Saint P Ruby Community
так вооооот
источник

CM

Cucumba Morozov in Saint P Ruby Community
Александр Крылов
Гайз что можно почитать по примерам организации биллинг систем?
Если вкратце то решаю задачу учета зачисления средств на ЮЛ клиентов, распределения средств по картам пользователей клиентов, и расходования средств.

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

CM

Cucumba Morozov in Saint P Ruby Community
вообще, про события ок. вон в ту сторону и читать
источник

AD

Anton Davydov in Saint P Ruby Community
Cucumba Morozov
вроде бы книга даже была по биллингу
Ага, есть такая
источник

AD

Anton Davydov in Saint P Ruby Community
Александр Крылов
Гайз что можно почитать по примерам организации биллинг систем?
Если вкратце то решаю задачу учета зачисления средств на ЮЛ клиентов, распределения средств по картам пользователей клиентов, и расходования средств.

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

AD

Anton Davydov in Saint P Ruby Community
А потом уже думал можно это асинхронно сделать или нет
источник

MS

Mikhail Sytchev in Saint P Ruby Community
Anton Davydov
Ага, есть такая
как гуглить, чтоб найтить?
источник

АД

Антон Дьячук... in Saint P Ruby Community
max
пример
есть страничка на которой 2 списка: ToDo и Done
и можно из одного в другой перетаскивать drag-n-drop Tasks
пользователь открыл 2 экземпляра страницы
и на одной перетащил таску в Done
теперь он на 2ой вкладке пытается сделать то же самое
серверное апи должно ответить ошибкой, что такое сделать нельзя, тк таска уже в Done
это должно попадать в логи nginx/итд как 4xx/5xx?
да
источник

m

max in Saint P Ruby Community
Антон Дьячук
нельзя возвращать 200 в случае ошибки
1) это плохая привычка, потому что она сработает на этом проекте, но не сработат на другом
2) почти все грамотные библиотеки умеют работать со статусами
3) тесты работают со статусами
4) люди читают одни и те же книги и в общем следуют рекомендациям, а тут тебе вдруг 200 но реквест не суккес
5) ожидать не 200 нормально
6) если все всегда 200 - подозрительно (все всегда работать не может)
7) что делать с 204, 201? оверрайдить ответ каждого экшена вручную?
да сколько ж можно =)

спроектируйте апи эндпоинт по делению чисел /div
и есть 2 формулировки:
1. "Необходимо возвращать результат деления"
2. "Необходимо возвращать результат деления. Но в случае неправильного кол-ва переданных аргументов показывать модалку с текстом "...". В случае деления на 0 показывать модалку с текстом "Деление на 0""

какие статусы и тела ответов будут для 1го и 2го случая, если выполнять запросы:
1. div 10 5
2. div  42
3. div 3 0
4. div 1 2 3 4 5
5. div "всем" "привет"
источник

АД

Антон Дьячук... in Saint P Ruby Community
даже не так: "снача да", но теперь давайте подумаем как мы это будем обрабатывать
но это не вопрос кода ошибок и ошибок
источник

AD

Anton Davydov in Saint P Ruby Community
Mikhail Sytchev
как гуглить, чтоб найтить?
Мне Никита ее кидал как раз
источник

АД

Антон Дьячук... in Saint P Ruby Community
max
да сколько ж можно =)

спроектируйте апи эндпоинт по делению чисел /div
и есть 2 формулировки:
1. "Необходимо возвращать результат деления"
2. "Необходимо возвращать результат деления. Но в случае неправильного кол-ва переданных аргументов показывать модалку с текстом "...". В случае деления на 0 показывать модалку с текстом "Деление на 0""

какие статусы и тела ответов будут для 1го и 2го случая, если выполнять запросы:
1. div 10 5
2. div  42
3. div 3 0
4. div 1 2 3 4 5
5. div "всем" "привет"
200/422{error:...}/422{error:...}/422{error:...}/422{error:...}/422{error:...}/422{error:...}/422{error:...}/422{error:...}
источник

MS

Mikhail Sytchev in Saint P Ruby Community
Anton Davydov
Мне Никита ее кидал как раз
Спасибо большое
источник

AD

Anton Davydov in Saint P Ruby Community
Mikhail Sytchev
Спасибо большое
источник

AD

Anton Davydov in Saint P Ruby Community
Я так и не осилил книгу, если что
источник

AD

Anton Davydov in Saint P Ruby Community
Так что хз хорошая или нет
источник

m

max in Saint P Ruby Community
Антон Дьячук
200/422{error:...}/422{error:...}/422{error:...}/422{error:...}/422{error:...}/422{error:...}/422{error:...}/422{error:...}
я не понял вашего ответа, видимо телеграм сломал форматирование
источник