![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
![]()
Добрый день, уважаемые. Нахожусь в процессе работы над довольно сложным программным проектом, который должен работать вместе с весьма специфичным оборудованием (тут создавал тему по одному из представителей этого оборудования, но так ответа и не дождался).
Как Вы понимаете, я не имею физической возможности подключать указанное оборудование к своей машине для отладки и поэтому приходится пользоваться некоторыми методами Экстремального программирования, что вызывает небольшие проблемы, в частности, помимо написания кода, необходимо одновременно делать его рефакторинг (в процессе разработки в силу невнимательности отдельные методы разрастаются до нескольких сотен строчек кода). Рефакторинг предполагает широкое использование unit-тестов, но как применить unit-тестирование для кода, который должен работать с оборудованием? Например, сегодня весь день сидел и занимался указанным процессом, теперь код читается очень-очень легко, но оттестировать его еще не успел и это вызывает некоторый страх. Есть неплохой материал по рефакторингу кода в языке C#, расположенный ЗДЕСЬ. Понятно как проверить работоспособность вычислительного кода после рефакторинга, как проверить работу с устройством, если есть его эмуляторы, но как провести unit-тест, если эмуляторов просто нет? В указанном видео как раз и представлены примеры рефакторинга такого вида, но что Вы применяете в аналогичных моему случаях?
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
|
![]() |
![]() |
![]() |
#2 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
![]()
Ничего не сделаешь, это сугубо мое мнение. Сам работаю со сторонними SDK и разным оборудованием. Нет возможности программно воспроизвести все ситуации, которые возникнут с реальным прибором ( потеря соединения, ошибки прошивки, разные SDK, разное железо и т.д.), никакие тесты это не компенсирую. Нельзя произвести глубокий рефакторинг кода, с переделкой архитектуры, и быть уверенным, что ошибок в новом коде нет, не протестировав код в условиях, близких к боевым. Тестами можно сравнивать результат работы программы и с ее версией до рефакторинга на некотором множестве входных значений.
Не давай организму поблажки, каждый день тренируй его в шашки..
![]() |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
RAD Studio XE2, глючат переходы и рефакторинг | Hottabych | Общие вопросы Delphi | 7 | 03.02.2013 16:34 |
Пояснение кода | aspen | Общие вопросы C/C++ | 0 | 22.10.2012 13:24 |
Распознавание Аски кода и скан кода | MyLastHit | Общие вопросы Delphi | 8 | 06.12.2010 18:34 |
Разборка кода | Safary | Помощь студентам | 8 | 28.11.2008 09:18 |
Выдернуть куски кода из html-кода | trafbite | Помощь студентам | 7 | 18.08.2007 13:51 |