Size: a a a

Software Design/Architecture/Zen

2021 February 13

MG

Max Grom in Software Design/Architecture/Zen
Sergey Protko
Раскрой мысль с чем конкретно ты смотришь. Зачем незаконченные фичи вливать в мастер?
Это не нужно делать. Походу мы запутались. Я выше скинул вопрос
источник

MG

Max Grom in Software Design/Architecture/Zen
Sergey Protko
Тем что это одна из характеристик ci
То есть подразумевается, что любой коммит это production-ready коммит?
источник

m

militska in Software Design/Architecture/Zen
Sergey Protko
Раскрой мысль с чем конкретно ты смотришь. Зачем незаконченные фичи вливать в мастер?
мб что бы заказчики  уже начали с чем то работать?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Max Grom
То есть подразумевается, что любой коммит это production-ready коммит?
Именно
источник

MG

Max Grom in Software Design/Architecture/Zen
Sergey Protko
Именно
Но зачем?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Max Grom
Но зачем?
Что бы ускорить процесс и улучшить фокус разработчиков на решении проблемы.
источник

AM

Aleksander Mironov in Software Design/Architecture/Zen
Anton Lakotka
тут 99% населения чата только и способны, что отвечать на нубские вопросы.
в том числе и я. так что не стесняйся.
но и никаких качественных ответов можешь не ждать. всякую херню мейнстримовую скорее всего посоветуют.
Ну ок ща попробую =\
источник

MG

Max Grom in Software Design/Architecture/Zen
А тестирование не входит в правильный CI? Staging не предусмотрен?
источник

AM

Aleksander Mironov in Software Design/Architecture/Zen
Переслано от Aleksander Mironov
Короче я уже с полгода вяло валяю драйвер дисплея. (Железная реализация и сам протокол не  важны) - дисплей отдельное устройство, мк отправляет только состояние полей.
Да да это китайская HMI панель.
Я вот пытаюсь как то это все дело увязать в некий класс, но выходят переусложненные макароны.
К слову не очень важно, чем является это само устройство, т.к. я скорее хочу найти некий общий подход к подобным проблемам.

Я хочу, что бы
1) Было высокоуровневое АПИ для управления.
2) Данные принимались на вход в виде некие стандартизированные ( в устройстве ) сообщений.
3) Все это дело было слабо связано. Как с приложением, так и с железом.
4) Это скорее некий общий принцип, нежели частное решение.
источник

AM

Aleksander Mironov in Software Design/Architecture/Zen
Переслано от Aleksander Mironov
У меня получились следующие абстракции.

1)  "Описание опции" - которая описывает некое нераздельное значение, которое должно отображаться\сохраняться.
В описании указаны IDшники, устройства\опции, глобальный и частные(соответствующие значениям на внешних устройствах) и информация о типе и размере значения.

2) Таблица описаний опций. Сидит в ПЗУ.

3) "Сообщение" - используется внутри устройства, несет в себе глобальный ID и некое значение опции.

4) "Устройства" - некие конечные точки, которые принимают и отдают сообщения.

5) "База данных" - строится на основе таблицы опций и содержит список опция-значение.
Принимает в себя сообщения с новыми значениями опции, сохраняет в себе и пересылает подписанным на изменения.
По факту является эдаким обсервер паттерном.

Тут явно ограничение - за изменение опции может отвечать лишь одно устройство. Слушать изменения сколько угодно. В принципе это не проблема.

Отдельным костылем идут "команды" это сообщения устройство-устройство, в обход базы. Как их правильно всобачить пока не знаю. Разве некий "Роутер команд" делать.
источник

AM

Aleksander Mironov in Software Design/Architecture/Zen
Это немного к эмбедеду относится, но я постарался тут это максимально вырезать.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Max Grom
А тестирование не входит в правильный CI? Staging не предусмотрен?
Входит. Но есть проблема семантических конфликтов которая решается тем что все как можно чаще и быстрее вливают все в мастер что бы код меньше расходился.
источник

Р

Руслан in Software Design/Architecture/Zen
Sergey Protko
Именно
А на каком этапе от ревью до доставки на прод за день тестирование?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Max Grom
А тестирование не входит в правильный CI? Staging не предусмотрен?
Staging не предусмотрен
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Руслан
А на каком этапе от ревью до доставки на прод за день тестирование?
На этапе автотестов.
источник

MG

Max Grom in Software Design/Architecture/Zen
Sergey Protko
Входит. Но есть проблема семантических конфликтов которая решается тем что все как можно чаще и быстрее вливают все в мастер что бы код меньше расходился.
А с джунами в команде такое будет работать?
источник

Р

Руслан in Software Design/Architecture/Zen
Sergey Protko
На этапе автотестов.
Новая фича, ее должны покрыть автотестами ещё до ревью?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Max Grom
А с джунами в команде такое будет работать?
А у тебя есть ресурсы заниматься обучением джунов? Зачем их нанимать с такими вопросами
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Руслан
Новая фича, ее должны покрыть автотестами ещё до ревью?
Да. В идеале не должно быть ревью как блокера к мерджу* но тут спорный момент
источник

MG

Max Grom in Software Design/Architecture/Zen
Sergey Protko
А у тебя есть ресурсы заниматься обучением джунов? Зачем их нанимать с такими вопросами
А какое это отношение имеет к проблеме? То есть надо начинать с того, что хороший CI - это команда без джунов?
источник