Валерий Лаптев писал(а):
А там главный принцип: сначала тесты, потом код.
Вообще-то, правильно сначала алгоритм, потом код, а потом уж тесты (если очень хочется).
Валерий Лаптев писал(а):
Таким образом, разработчик, которому нужно разработать некий модуль-класс сначала пишет, как нужно использовать новый модуль-класс. То есть вызовы методов модуля-класса. Приходится продумывать сначала интерфейс. Эти вызовы методов и являются тестовыми запусками в тестирующем классе. Вначале, естественно, тесты не проходят. По мере наполнения тестируемого класса-метода тесты из разряда непройденных переходят в разряд пройденных.
Эта классическая схема разработки ПО "сверху-вниз", и такие модули всегда носили название модулей-заглушек (аж с 70х годов прошлого века). Значит теперь заглушка гордо именуется тестом
Валерий Лаптев писал(а):
3. Принцип экстремального программирования - двигаться МАЛЕНЬКИМИ шагами. Так что ничего нового тут не открыто.
Вас не смущает слово ЭКСТРЕМАЛЬНОГО ? Меня лично смущает. Даже когда я им занимаюсь в виду необходимости
Валерий Лаптев писал(а):
Поэтому поступать по принципу "не читал, но все равно - фигня" - по меньшей мере глупо.
Если это в мой огород камень, то не по адресу. Ибо читал, учил студентов и сам применял на практике в составе небольших и больших команд, но всё равно считаю - фигня.
Валерий Лаптев писал(а):
5. Никакое доказательство не докажет правильность программы, если она решает не совсем ту задачу, которую требуется решить.
Это называется несоответствие ТЗ. И доказвать что-либо в данном случае глупо.
Валерий Лаптев писал(а):
Во-вторых, для доказательства достаточно сложной программы требуется времени не меньше, чем для написания и тестирования.
Вот это уже из разряда "не читал, но знаю...", потому что программа доказывается ДО реализации на языке, и к моменту набития кода уже доказана. в каждой своей части. не зависимо от сложности программы.
Валерий Лаптев писал(а):
Кроме того, насколько я знаю, не существует даже подходов к доказательству "правильного" поведения программы в "неправильных" ситуациях. Например, при возникновении исключений.
читайте классиков.
А ещё представте себе кошмар, существуют языки в которых нет поддержки исключений. И на них даже программы пишут, и сложные. И даже операционные системы