zHz00 Untitled

суббота, 08 апреля 2023
03:35 Спящий баг
У нас железка в трёх версиях, 1, 2 и 3. Каждой версии существует разное число экземпляров.

На все версии у меня один проект прошивки. При помощи условной компилации в нём написано:

#ifdef VERSION_1
//низкоуровневые настройки для 1-й версии
#endif

И так далее. Различий между версиями немного, но они очень важны. Прошивка, скомпилированная для одной версии, не будет работать на другой. Даже не запустится.

Естественно, у меня всё автоматизировано. В компиляторе есть нужное число конфигураций, есть кнопка batch build. Когда я готовлю "релиз", я собираю все версии прошивки одним махом и кладу в целевую папку.

И вот мы стали обновлять ПО у пользователя с самой старой версией железки. А оно не запускается. Не перепрошивали ему железку давно, прошло уже много релизов. Мне пришлось перебрать несколько версий прошивок, прежде чем я нашёл ту, на которой всё перестало работать. Причина была тупая. Я случайно внёс изменения в раздел, который не компилируется, когда идёт сборка для самой новой железки. А тестировали мы всё именно на ней. Когда же идёт компиляция под старую версию, ошибка попадает в прошивку. Ошибку я исправил. (теперь иди, под новой версией железки проверь!)

Это что за кринж такой? Почему мы не тестируем на старой железке перед релизом? Да потому что нет у нас её. Все экземпляры находятся у пользователей. Единственное нормальное решение -- иметь у себя по одному экземпляру каждой версии. И так можно было бы сделать, если бы железки стоили по сто баксов. Но они стоят гораздо дороже. Получается, что выгоднее ловить баги у пользователей, чем держать у себя три (а в перспективе ещё больше) тестовых стенда.

@темы: Программирование, Фейлы, Говнокод, Борьба с техникой

URL
Начнем, благословясь. Впереди ждет долгая работа.
www.pickupcenter.ru www.lover.ru
Нет, не злобные бородатые байкеры и не бритые владельцы д...
:fingal: не плачь девчонка, фингал пройдет... ...
---------------- /userdir/0/0/6/5/0065/60496.jpg
Вот ведь не везет, так одно за другим, переставил 2000-ый...

08.04.2023 в 09:17

08.04.2023 в 09:17
Единственное нормальное решение -- иметь у себя по одному экземпляру каждой версии.

ох уж эти любители решать софтовые проблемы железячным способом ))))
мы не смогли грамотно спроектировать проект, поэтому нам потребуется иметь дополнительное железо для тестирования )))
URL

08.04.2023 в 11:03

08.04.2023 в 11:03
CD_Eater, по мне так гораздо хуже решать железнячные проблемы софтовым способом)))
URL

08.04.2023 в 11:57

08.04.2023 в 11:57
А сколько всего экземпляров этого железа?
URL

08.04.2023 в 19:10

08.04.2023 в 19:10
по мне так гораздо хуже решать железнячные проблемы софтовым способом)))

ну, вообще-то микроконтроллеры именно для этого и придуманы - чтобы решать железячные проблемы софтовым способом
URL

08.04.2023 в 22:10

08.04.2023 в 22:10
Xersareeth, в ЛС расскажу.
CD_Eater, юморист.
URL

09.04.2023 в 08:08

09.04.2023 в 08:08
ни разу не юмор
URL
Добавить комментарий

Расширенная форма

Подписаться на новые комментарии