Я к тому, что время сэкономленное на тестах часто уходит на унылый дебуггинг в поисках ошибок.
Это про первую версию софта.
Потом проходит время. Софт обрастает функционалом. И в какой то момент нужно вносить изменения в вещи сделанные в первой версии (без тестов) И тут мы понимаем, что мы уже забыли что там и как работает, и внося изменения без тестов вынуждены проверять все вручную или ловить баги или писать тесты на существующий функционал.
Конечно, это не относится к случаю, когда за 2 выходных нужно изготовить прототип системы (впрочем базовые тесты и тут помогут).
Я не знаю как в совсем тру TDD. Но если я начинаю писать какой то код, то последовательность такая:
1. Костяк системы — внешнее API, классы модели, классы представления, интерфейсы сервисов. Все это почти без внутренностей.
2. Тесты фиксирующие будущее поведение системы.
3. Наполняю вещи из пункта 1 кодом, пишу внутренние служебные классики и тесты для них.
Подход итеративный. Т.е. когда мы спускаемся вниз к внутренним классам, то для них эти 1 шага повторяются.
Меняется функциональность -> меняется тест -> код переписывается чтобы этот тест «прошел».
Частенько, из тестов проще понять что должен делать код, чем из самого кода.
Равно как, и сначала переписать тесты под новую спецификацию, бывает проще чем сразу править код.
Программист, обычно, существо с мозгом. И определить тривиален ли код он может хоть и не всегда, но часто. И этого вполне достаточно.
Ну а если уж одна функция из 100, якобы тривиальных и непокрытых, оказалась непростой и «стрельнула», то затраты на исправление частенько значительно меньшие, чем на написание тестов на все 100 функций.
ЗЫ
Особый случай написания софта для ракет запускающих в небо ГЛОНАСС не рассматриваю.
1. У Nook Color нет 3G и GPS (планшетов с 3G вообще не много и это задирает ценник).
2. В Москве за $250 Нук не купить (если можете продать новый за $250, свяжитесь со мной, пожалуйста, я тут же куплю 1 или 2).
3. Цены «у них» и «у нас» сравнивать вообще не корректно. Этот, пардон, хуавей там наверное тоже 250-300 стоит.
В отличии от iPad, этот девайс легко умещается во внутренний карман куртки.
Весит тоже тяжеловато, но в метро книжки/интернеты читать можно.
Это плюс. Но есть и минусы.
Так что с iPad они не конкуренты, немного разные устройства.
Это про первую версию софта.
Потом проходит время. Софт обрастает функционалом. И в какой то момент нужно вносить изменения в вещи сделанные в первой версии (без тестов) И тут мы понимаем, что мы уже забыли что там и как работает, и внося изменения без тестов вынуждены проверять все вручную или ловить баги или писать тесты на существующий функционал.
Конечно, это не относится к случаю, когда за 2 выходных нужно изготовить прототип системы (впрочем базовые тесты и тут помогут).
1. Костяк системы — внешнее API, классы модели, классы представления, интерфейсы сервисов. Все это почти без внутренностей.
2. Тесты фиксирующие будущее поведение системы.
3. Наполняю вещи из пункта 1 кодом, пишу внутренние служебные классики и тесты для них.
Подход итеративный. Т.е. когда мы спускаемся вниз к внутренним классам, то для них эти 1 шага повторяются.
Частенько, из тестов проще понять что должен делать код, чем из самого кода.
Равно как, и сначала переписать тесты под новую спецификацию, бывает проще чем сразу править код.
Программист, обычно, существо с мозгом. И определить тривиален ли код он может хоть и не всегда, но часто. И этого вполне достаточно.
Ну а если уж одна функция из 100, якобы тривиальных и непокрытых, оказалась непростой и «стрельнула», то затраты на исправление частенько значительно меньшие, чем на написание тестов на все 100 функций.
ЗЫ
Особый случай написания софта для ракет запускающих в небо ГЛОНАСС не рассматриваю.
Спасибо, Кэп.
Но вот что то в маркете он у меня не находится!
2. В Москве за $250 Нук не купить (если можете продать новый за $250, свяжитесь со мной, пожалуйста, я тут же куплю 1 или 2).
3. Цены «у них» и «у нас» сравнивать вообще не корректно. Этот, пардон, хуавей там наверное тоже 250-300 стоит.
4 часа навигации? С 3G или только GPS? Аккамулятор 2200?
Весит тоже тяжеловато, но в метро книжки/интернеты читать можно.
Это плюс. Но есть и минусы.
Так что с iPad они не конкуренты, немного разные устройства.
Отличаются типом экрана, наличием/отсутствием внутренней памяти у некоторых, вроде, еще GPS нет.
МТС из всех моделей выбрал с емкостным экраном, но без внутренней памяти.
В принципе, для набора типичных приложений и 200Мб хватает. Но, конечно, хотелось бы больше.
При торчании в интернете по WiFi, акк живет часа 4.
При работе в режиме навигатора (3G + GPS) — 2.5 часа.
Есть только 180Mb и внешняя флека на 4.
А так то да. В 92м году вообще всего 90 тысяч до миллиона не хватало.
Теперь, правда, уже 170 не хватает…