113 3 11 апреля, 2023 Опубликовано 11 апреля, 2023 · Жалоба 3 minutes ago, fpga_student said: Тестил его продажник клиента)) В этом и есть корень зла. Продажникам все равно, что продавать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 11 апреля, 2023 Опубликовано 11 апреля, 2023 · Жалоба On 4/11/2023 at 2:09 PM, 113 said: В этом и есть корень зла. Продажникам все равно, что продавать. ))))))))да вы че ?))))) Работали продажником ? Меня задрал претензиями этот молодой человек. И тестировал он очень тщательно. Даже программиста несколько раз достал, залез в такие дебри о которых просто забыли. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
113 3 11 апреля, 2023 Опубликовано 11 апреля, 2023 · Жалоба Нет, очень тесно с ними общался (общаюсь). Quote Меня задрал претензиями этот молодой человек. И тестировал он очень тщательно. Даже программиста несколько раз достал, залез в такие дебри о которых просто забыли. Ну значит старался) Вообще, продажник не должен заменять тестировщика. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 11 апреля, 2023 Опубликовано 11 апреля, 2023 · Жалоба Ладно, вундеркинд пропал с горизонта, а сказать я обещал. Была одна бага, что потекла память, и второе это автопроверка/установка фузов защиты, которую просто отключили. Больше ничего не нашлось пока. Память текла при анализе журнала записи системных событий, поэтому в реале это может происходить чрезвычайно долго или не происходить вообще Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
113 3 11 апреля, 2023 Опубликовано 11 апреля, 2023 · Жалоба Но это не объясняет, как разлочилась и стерлась память. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 11 апреля, 2023 Опубликовано 11 апреля, 2023 · Жалоба On 4/11/2023 at 2:17 PM, 113 said: Но это не объясняет, как разлочилась и стерлась память. Что лочилась обьясняет. Там вроде единый механизм доступа к фузам. Насчет стирания да интересно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
113 3 11 апреля, 2023 Опубликовано 11 апреля, 2023 · Жалоба РАЗлочилась - имелось в виду доступ на запись/стирание. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 11 апреля, 2023 Опубликовано 11 апреля, 2023 · Жалоба On 4/11/2023 at 2:20 PM, 113 said: РАЗлочилась - имелось в виду доступ на запись/стирание. проблема была в том что выставлялись фузы. Насчет стирания я написал, пока непонятно. Но уже несколько сотен циклов в разных сборках все идеально On 4/11/2023 at 2:12 PM, 113 said: Вообще, продажник не должен заменять тестировщика. А разработчик должен получать за работу деньги. Есть такой грустный современный анекдот: "здравствуйте бесплатный доктор - здравствуйте безнадежный пациент". Это не только о желаниях, но и о возможностях( Клиент приложил невероятные усилия чтобы получить дешево. У него получилось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 11 апреля, 2023 Опубликовано 11 апреля, 2023 · Жалоба Мдааа, дааа уж, дааа ужжж... Эхехех. Ну что ж, вы пошли простейшим путём - не стали исправлять косяк, а просто выбросили то, что не понятно как работает. Ну чтож, так тоже можно. "Самые лучшие программисты" так и поступают - не можешь решить проблему - просто убери её 🙂 А ведь я еще в середине темы озвучивал её. А вчера я её искусственно воспроизвел у себя. Потому и написал 🙂 Мысленно. Я и сейчас повторяю. Мысленно. Ничего не имею против вашего "самого лучшего", быть может он гениально жонглирует библиотеками, но... не заметить утечку памяти и косяк при обновлении прошивки. При том, что девайс нудно тестил какой-то там "спец-продаван". Но как это прошляпить обновление прошики, при котором всё рушится, это надо постараться еще. Вот вы (и ваш программист) знает, что такое МОДУЛЬНЫЕ ТЕСТЫ? А вот, я про них мысленно (и словами ранее) вам рассказывал. Просто вы не захотели слушать, веря в непогрешимость вашего "лучшего в мире, второго в команде" программиста. Оставим за кадром обсуждение того, что "лучший в мире" просто составляет куски библиотек (это делает любой средней руки ардуинщик!), но обратим внимание на ту малую часть, которую выполнял ваш программист самостоятельно. Так вот, простейший модульный тест обнаруживает указанный косяк за один проход. Если бы программист знал об этом, он бы его обнаружил. Не нужно ставить "10 штук на месяц тестов", нет. Если косяк есть, он вылезет сразу. Надо просто понимать, где и как щупать. Приведу простейший пример. Есть две кнопки: "Пуск" и "Стоп". Тестируем. Пуск - понятно. Стоп - понятно. А что будет при одновременном нажатии этих двух кнопок? Подаем одновременно сигналы на входы. Поведение кода должно быть определено однозначно. Конкретно в этом случае желательно, чтобы сработало состояние "Стоп". Второй пример. Есть программный модуль отрисовки геометрических фигур на дисплее. Как будет вести себя код, если одна или обе координаты X, Y любой точки фигуры выйдет за пределы отображения кадра? Третий пример. В графическом интерфейсе на дисплее есть экранная кнопка. С нажатием в область её координат всё понятно. А что произойдет, если было касание в области кнопки, затем палец, не отрывая от дисплея, сдвинули и ушли за границу этой кнопки, да еще и попали на соседнюю кнопку? Тестировать методом тыкания пальцем во всех возможных комбинациях - муторно. Но если написать тест, имитирующий входные сигналы с драйвера тач-панели, можно обнаружить возможные проблемы даже не подключая дисплея и не тыкая в него пальцем. В общем, без всяких там ля-ля, желаю вашему программисту самокритичности и саморазвития. Почивать на лаврах - хорошо, но когда есть факты, что "проморгал" такой косяк, это серьезный минус в карму программиста и сигнал к тому, что нужно критически пересмотреть подход к своей работе. Потому как в будущем почти наверняка он снова наступит на аналогичные грабли. Таков закон... В общем, удачи. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 11 апреля, 2023 Опубликовано 11 апреля, 2023 · Жалоба On 4/11/2023 at 4:41 PM, EdgeAligned said: Мдааа Можно было сказать 3 слова: tdd unit тесты. tdd уменьшает количество ошибок при РАЗРАБОТКЕ, но не сводит их к 0, и это не про тест готовой системы. Полчаса трепа - ни о чем. AlexandrY #2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 11 апреля, 2023 Опубликовано 11 апреля, 2023 (изменено) · Жалоба Ну чтож, god-mode включился 🙂 Плохо, что вы не учитесь на своих ошибках. Вера в непогрешимость - верный путь в могилу. Удачи в ковырянии спагетти-кода. Видел я немало таких "лучших в мире, вторых в команде". Вы еще не раз наступите на эти грабли, как уже наступали до этого. Так оно и будет. Я видел таких неудачников. Это не первая, и не последняя ваша проблема. По причине нежелания критически анализировать ошибки. Хотя это ведь так просто! Вы вначале "стопудово" обвиняли в багах сам микроконтроллер, а оказалось - косяк то не в нем вовсе. И это еще не конец... PSю Юнит-тесты - это лишь первый бастион в системе тестирования. Еще есть интеграционные тесты, а в самом конце - пользовательский тест готового устройства в ручном режиме. Но не наоборот! 🙂 Почему я говорил про модульный тест - так потому, что конкретно в вашем случае именно модульный тест должен был выявить косяк. А получилось, что косяк выявили пользователи много времени спустя и стали возвращать нерабочие "кирпичи" по рекламации. А это уже удар по репутации разработчика, как бы вот! Так же и с утечкой памяти, которую вы вроде как там обнаружили. Один из программных модулей при работе выделяет память, но не возвращает её обратно в кучу. Выявить эту проблему общими функциональными тестами можно только за большой промежуток времени, как раз за месяц, а то и более, тыкая наугад во всех комбинациях до тех пор, пока чисто случайно память не закончится. От ошибок никто не застрахован. Не ошибается тот, кто ничего не делает. Но! Умение критически относиться к своим ошибкам, умение отыскивать их и исправлять - вот обязательные черты "чрезвычайно хорошего программиста"! Пренебрежение этим - путь хронического неудачника. Изменено 12 апреля, 2023 пользователем EdgeAligned Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 12 апреля, 2023 Опубликовано 12 апреля, 2023 · Жалоба On 4/11/2023 at 5:13 PM, EdgeAligned said: Один из программных модулей при работе выделяет память, но не возвращает её обратно в кучу. Выявить эту проблему общими функциональными тестами можно только за большой промежуток времени, как раз за месяц, а то и более, тыкая наугад во всех комбинациях до тех пор, пока чисто случайно память не закончится. За 2 часа я сделал стенд где модуль перезапускается раз в 10 секунд. Этот стенд находит эту ошибку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 12 апреля, 2023 Опубликовано 12 апреля, 2023 · Жалоба Ну, значит, это довольно глупая ошибка программиста, лежащая на поверхности. Просто физически память быстро закончилась 🙂 А вот если бы микроконтроллер не просто перезапускался, а именно выключал питание, тогда вот и не факт. Кстати, составлять готовые куски кода (скетчи) умеет любой средней руки ардуинщик! И делает он это с такими же глупыми ошибками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVI-crak 0 12 апреля, 2023 Опубликовано 12 апреля, 2023 · Жалоба On 4/11/2023 at 7:41 PM, EdgeAligned said: Третий пример. В графическом интерфейсе на дисплее есть экранная кнопка. С нажатием в область её координат всё понятно. А что произойдет, если было касание в области кнопки, затем палец, не отрывая от дисплея, сдвинули и ушли за границу этой кнопки, да еще и попали на соседнюю кнопку? Вот так легко перечеркнул все наработки фирмы ST в графических библиотеках - оно там крашется на раз в подобных случаях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
turnon 1 18 апреля, 2023 Опубликовано 18 апреля, 2023 · Жалоба On 3/26/2023 at 10:04 PM, fpga_student said: Загрузчик угробить флешь не должен, тк обновление происходит с SD, и после обновления образы прошивок загрузчик с SD стирает, соответственно на следующем перезапуске ему просто нечего писать. SD, как менее надежное хранилище с большей вероятностью может дать ошибку при стирании и получится бесконечная перезапись флеша. Я бы это заменил на какой-то другой механизм. Сравнение что на флеш и на SD, флаг в BkpSram, etc. On 3/26/2023 at 10:56 PM, fpga_student said: Вы злы к моему программисту. Он чрезвычайно хорош. Единственный из 15 студентов, кто с первого дня меня консультировал) Драйверы ядра под линукс, техническое зрение, сейчас нейросети. Он великолепный, просто там действительно большая хрень, которой уделялось не так много времени как было нужно. Кода заимствованного действительно было много, тк сам с нуля он бы писал все в разы дольше. Вот встречал таких с математическим уклоном. Всякие замороченные штуки реализуют быстро, а логику приложения качественно декомпозировать/реализовать не в состоянии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться