
Maksim
23.10.2018
10:49:50

Artur
23.10.2018
10:50:02

Sergey
23.10.2018
10:50:32
так и я про то
нет, ты про версии. У меня нет версий. У меня есть совместимость старого и нового кода

Maksim
23.10.2018
10:50:40
ты всегда между деплоями сохраняешь обратную совместимость (это значит, что все контракты и схема у тебя поддерживается)

Google

Artur
23.10.2018
10:50:53

Sergey
23.10.2018
10:50:54
а если у тебя задачи в очереди месяцами могут висеть - ну твои проблемы.

Artur
23.10.2018
10:51:05
а я говорю что можно придумать задачу когда это дорого

Sergey
23.10.2018
10:51:17
можно, вот когда ты придумаешь такую задачу - тогда поговорим)
только не про абстрактный коней а конкретные условия
сильвер булетов нету.

Artur
23.10.2018
10:51:48
ну скажем подготовка данных для мобильного приложения
а у мобильных рахные версии

Юрий
23.10.2018
10:52:06
Все у кого есть затяжной проект на PHP!
Ищу одиночек таких же как я, или мини тимы
Хочу работать командой, что бы закрыть все затяжные проекты у каждого.
Те у кого все хорошо, но есть желание поработать в новой команде и потренировать лидерство, присоединяйтесь. Будете учавствовать в качестве ведущих разрабов!
Как вам такая акция?

Artur
23.10.2018
10:52:06
причем возможно у 1 юзера разные версии на разных устройствах

Sergey
23.10.2018
10:52:11
ну придется обратную совместимость для мобильников суппортитть столько сколько нужно
сколько нужно -> сколько посчитает бизнес. У меня например это пол года

Artur
23.10.2018
10:52:54

Google

Sergey
23.10.2018
10:53:06

Artur
23.10.2018
10:53:17
и приходится физически менять старый код под новые миграции
тадааам

Sergey
23.10.2018
10:53:29
у тебя ж мобильники - ты НЕ можешь там ничего менять сам
нет контроля

Artur
23.10.2018
10:53:43
именно
и в сухом остатке у тебя очереди старых и новых версий с новой базой

Sergey
23.10.2018
10:54:15
что именно? посто через пол года гарантии исчещают. Мы на совсем стремные случаи еще форс апдейт делаем который через 4 месяца например придупреждает юзера что "чел, обновись"

Artur
23.10.2018
10:54:20
причем накатывающиеся все новым и новым слоем

Sergey
23.10.2018
10:54:33

Artur
23.10.2018
10:54:33
сам же попросил :)

Sergey
23.10.2018
10:58:16
воркеры же
воркеры как к этому относятся? ты ж их контролируешь. А стало быть и проблемы нет
еще раз - ситуации когда ты НЕ контролируешь код - это классика. Помимо мобильных приложений есть еще SDK, десктопный софт.

Artur
23.10.2018
10:59:28
ну смотри
- версии мобильных на вход
- неважнокакойответ + воркеры которые должны что-то вернуть
- воркеры работают всегда с новой базой
- возврат в разных версиях черезщ пуш

Sergey
23.10.2018
10:59:48
обычно там больше проблема не структуры данных (можно отдельный гейтвей для совместимости запилить) а с совместимостью бизнес логики

Maksim
23.10.2018
10:59:52
я вообще нить потерял)
короче вопросы выписал, постараюсь раскрыть.
вопрос с утечками самый сложный, тут хз как проговорить даже.

Artur
23.10.2018
10:59:52
из этого не слежует что нельзя поддерживать принцип совместимость в обе стороны

Google

Artur
23.10.2018
11:00:05

Sergey
23.10.2018
11:00:31

Artur
23.10.2018
11:00:43
...
ок

Sergey
23.10.2018
11:01:02
инкапсуляция и все такое, если я колонку в базе переименовал - то скорее всего я поправлю код в одном месте а весь остальной код останется не изменным
это никак не повлияет на структуры данных которые ходят между сервисами или там между клиентом и сервером
(обычно я не колонки переименовываю, а таблицы разделяю. Типа колонка была в таблице А а я ее в отдельную таблицу вынес что бы можно было в отдельный сервис потом вынести)

Artur
23.10.2018
11:02:26
ты куда-то не туда уехал
вопрос кто ставит очереди

Sergey
23.10.2018
11:02:36
какие к черту очереди?)

Artur
23.10.2018
11:02:37
легаси код или как и база всегда только новый
и ты не можешь сказать - ну окей, очереди ставят новый код
у тебя уже 100500 очередей разных версий возможно даже не двух

Sergey
23.10.2018
11:03:26
еще раз

Artur
23.10.2018
11:03:33
не явных
а по структуре
не в ерсия 123

Maksim
23.10.2018
11:03:44
О каких очередях-то речь?

Artur
23.10.2018
11:03:49
просто старые и новые

Google

Sergey
23.10.2018
11:03:55
я тож хз...

Artur
23.10.2018
11:04:20

Sergey
23.10.2018
11:04:26
не явных
ты о формате сообщений? а очереди - это типа брокер сообщений для общения между клиентом и сервером?

Artur
23.10.2018
11:04:44
задачи в очередях
с каким-то набором вводных данных

Sergey
23.10.2018
11:05:04
речь был о демонах, а не воркерах и очередях
это вопервых

Artur
23.10.2018
11:05:25
fpm?

Sergey
23.10.2018
11:05:28
во вторых нет абсолютно никакой разницы в том как это хэндлить, очереди у тебя или http
fpm?
демоны, представь что у тебя пых не умирает и у тебя там вообще модель экторов

Artur
23.10.2018
11:05:50

Maksim
23.10.2018
11:06:00
Ну есть в брокере 100500 сообщений, что дальше? Где разница между полученным хттп запросом и сообщением из очереди?

Artur
23.10.2018
11:06:05

Sergey
23.10.2018
11:06:09
^
окей, "новые задачи" замени на "новые запросы"

Artur
23.10.2018
11:06:17
вобщем, не важно :)
я лишь сказал о том что не все так просто и есть куда оверинженерить

Sergey
23.10.2018
11:08:36
^
короч.... поправь меня если я неправильно понимаю о чем ты:
- у нас есть клиент и сервер которые общаются как-то (очереди, http - не важно).
- у нас есть код, который обрабатывает задачи
- у нас есть код который паблишит задачи
И вопрос в том что:
- как хэндлить изменения кода который обрабатывает запросы, в ситуациях когда у тебя есть контроль за кодом и клиентов и серверов и рассинхрон по обновлениям всегда небольшой (до недели)
- как хэндлить изменения кода который обрабатывает запросы, в ситуациях когда у тебя нет контроля за кодом который паблишит задачи и он может обновиться только через год

Google

Sergey
23.10.2018
11:08:44
так?
в целом - все это про обратную совместимость, а не про миграции и уж тем более не про демоны.

Sergey
23.10.2018
11:10:03
иногда проще зашедулить релиз на определенный день, и тогда на какое-то время чтобы был доступен даунт тайм, чтобы потушить все зависимые сервисы от схемы, сделать миграцию и потом дальше пустить
и так выйдет дешевле чем делать совместимость
в общем по ситуации надо смотреть

Artur
23.10.2018
11:11:06
так?
есть еще возврат асинхронный клиенту

Sergey
23.10.2018
11:11:20

Artur
23.10.2018
11:11:28
там тоже версии

Sergey
23.10.2018
11:11:34
бля откуда ты версии родил?

Artur
23.10.2018
11:11:45
то что ты описал по сути щина api call

Sergey
23.10.2018
11:11:49
просто совместимость на уровне структур данных и бизнес процессов

Artur
23.10.2018
11:12:28
разница большая
шина она горячая в 1 очередь
а в брокере очередей могут быть условные рассылки которые неделю работают

Sergey
23.10.2018
11:13:20
но структуры данных же совместимы

q3ta
23.10.2018
11:13:23
какая функция добавит в конец массива элементы другого массива?

Sergey
23.10.2018
11:13:25
в чем проблема?

Artur
23.10.2018
11:14:02
в чем проблема?
в брокере очередей накапливаются задачи созданные разными версиями и несущие разные данные на одну и ту же задачу, например

Sergey
23.10.2018
11:14:14
нет проблемы