За последние 24 часа нас посетили 17032 программиста и 1652 робота. Сейчас ищут 949 программистов ...

Почему мы делаем ошибки?

Тема в разделе "Прочее", создана пользователем Hight, 23 ноя 2008.

  1. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Почему мы делаем ошибки в наших программах?
     
  2. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    Слишком много нюансов; за всем уследить не реально.
    По-этому, языки программирования эвалюционировали в сторону мимизации ответственности конкретного куска кода.
     
  3. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    потому что мы - люди.
     
  4. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    "Человеку свойственно ошибаться".
     
  5. Потму что вы неправильно ставите вопрос, как всегда.
    Правильный вопрос — как избежать ошибок в наших программах?
    Один из правильных ответов — TDD.
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Чаще всего мы делаем ошибки в логических конструкциях (алгоритмах) потому что логикой в совершенстве мы не владеем. Я читал в какой-то книге по НЛП что сознание может хранить (!) семь (+/- 2) переменных. Поэтому можно "зафлудить" внимание человека и снять незаметно часы. И не пропустить какой-то нюанс в алгоритме, обдумывая другие.
     
  7. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    У меня больше всего ошибок получается при копипасте.
     
  8. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    флоппик
    Я не верю в TDD. Я верю в тесты как средство контроля, но не как средство разработки.
     
  9. Amian

    Amian Активный пользователь

    С нами с:
    15 мар 2007
    Сообщения:
    189
    Симпатии:
    0
    Dagdamor
    Не важно верит кто-то или нет, но TDD себя прекрасно зарекомендовало при разработке корпоративных приложений :p Я противник использования везде всего , но для повышения качества продукта в некоторых случаях это просто необходимо.

    флоппик
    Я и не думал что кто-то использует unit tests в php, какие из них наиболее популярны и что можешь посоветовать ?
     
  10. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    PHPUnit
    SimpleTest
     
  11. Amian

    Amian Активный пользователь

    С нами с:
    15 мар 2007
    Сообщения:
    189
    Симпатии:
    0
    Какие-либо рекомендации прилогаются по поводу предпочтения 1-го или 2-го ? :p Что сами используете ?
     
  12. sylex

    sylex Активный пользователь

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    для среднего приложения нужен 1 кодер и тестер...
    для большого приложения нужен 1 кодер и 2-3 тестера...
    для огромного приложения, нужен 1-3 кодера и море тестеров :)

    p.s. все очень условно, не цепляться к словам ;)
     
  13. phpUnit... SimpleTest Не пробовал
     
  14. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Amian
    Что-то мне подсказывает, что ты говоришь про наборы тестов для автоматической проверки работоспособности приложения.
    Так вот, это - не TDD. TDD - это _разработка_ приложения через написание тестов, а не контролирование.
     
  15. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Человеческий фактор самая большая проблема программирования...

    Я неоднократно уже высказывал свою теорию о том что ошибки будут всегда, потому что их пишут люди, и даже когда код будут писать роботы всё равно будут ошибки потому что программы для роботов тоже будут писать люди...
     
  16.  
  17. Amian

    Amian Активный пользователь

    С нами с:
    15 мар 2007
    Сообщения:
    189
    Симпатии:
    0
    Это http://en.wikipedia.org/wiki/Test-driven_development ?

     
  18. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Amian
    Это не совсем то. Я говорю о ситуации, когда быдлокодеру дают набор тестов и он мучает код, пока тесты не начнут проходить ;) вот это и есть настоящий TDD, по крайней мере в моем понимании, ибо driven = управляемый. Нормальную же, грамотную разработку следует назвать TSD (test-supported development), ибо в ней тесты лишь грубое, и вовсе не окончательное средство контроля результата. Окончательный контроль - за самим разработчиком. При грамотной разработке, например, возможна ситуация, когда код верен, а тесты не проходят (из-за кривизны проектирования интерфейсов или ошибок в самих тестах), при TDD это невозможно.
     
  19. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Если тест прошёл первый раз, то и после изменения кода он снова должен пройти.
     
  20. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Sergey89
    Возможно, но прохождение тестов не означает работоспособность системы. Когда эти понятия начинают путать, и начинается TDD.
     
  21. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Прохождение тестов, как минимум означает то, что система продолжает работать как и прежде.
     
  22. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Sergey89
    Бррр... давайте так: прохождение тестов означает только то, что система проходит тесты. Ничего более. Делать какие-либо предположения о стратегии работы системы по тестам - очень опасно.
    Грубая аналогия - делать вывод, что человек по-прежнему здоров, если на него налезает все та же майка.
     
  23. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Если градусник показывает 36.6 (будем считать ожидаемым результатом), то пока человек здоров, он будет показывать всё те же 36.6.
     
  24. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    Угу... но температура 36.6 не обязательно значит что человек здоров.
     
  25. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    А кто мешает написать другие тесты на то здоров человек или нет?