metaclass: (Default)
[personal profile] metaclass
http://vit-r.livejournal.com/679524.html?thread=3691364#t3691364
решили на прошлой работе трое таки попробовать Хаскель, для неспешной задачи. генерация DDL, DML c скриптами SQL. Бились, бились, - но сделали, и был восторг! Потом, затянула обычная работа, через месяцок нужно было добавить кое-чего... и никто из троих не смог понять как оно работает, и как же добавить.

Звучит похоже на правду. Хотя у меня и F# и Clojure в подобных задачах живут и развиваются без проблем.

Date: 2013-09-14 08:37 pm (UTC)
From: [identity profile] vit-r.livejournal.com
В том же, в чём разница между надёжностью .99 и .999 - в сложности достижения.

Date: 2013-09-14 08:46 pm (UTC)
From: [identity profile] antilamer.livejournal.com
Я не понимаю. Для хаскеля есть инструмент, позволяющий измерять покрытие. Хотим .999 - покрываем тестами, пока он не покажет .999. Где тут разница между хаскелем и си?

Date: 2013-09-14 09:02 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Измерять - это не проблема. Проблема - сделать. На си и си с крестами я 100% видел.

Date: 2013-09-14 09:10 pm (UTC)
From: [identity profile] antilamer.livejournal.com
То есть вопрос не в языке и инструментарии, а в том, какие проекты на этом языке лично Вы видели?

Date: 2013-09-14 09:38 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Вопрос в том, что я не предстваляю, как то же самое сделать на Хаскеле. Вопросы к гурам дают ответы как по ссылке в другой ветке.

Date: 2013-09-16 10:19 am (UTC)
From: [identity profile] geniepro.livejournal.com
библиотека SQLite, написанная на сях, имеет покрытие в 1084 строк тестов на каждую строку кода, но и это не спасает её от того, что время от времени в ней таки находятся баги...

Date: 2013-09-16 11:06 am (UTC)
From: [identity profile] vit-r.livejournal.com
Тестами нелзя доказать отсутствие багов. По-моему, это азбука.

Date: 2013-09-16 11:08 am (UTC)
From: [identity profile] vit-r.livejournal.com
Да, и "покрытие 100%" - это не соотношение строк тестов к строкам кода, а доказательство, что в тестах проверятся каждая строка кода.

Date: 2013-09-16 03:56 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
Вот только это довольно бессмысленное занятие.
void f(bool x, bool y)
{
  Obj obj;
  if (x==y) obj = new Obj(); 
  else obj = null;
  if (y) obj.doSomthing();
}
//test:
f(true, true);
f(true, false);

100% покрытие тестами и явный баг с NPE при вызове f(false, true).

Date: 2013-09-16 04:25 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
Почему?
Первый тест заходит в строчки 1,2,4.
Второй - в 1,3.
Вместе покрывают все 1-4.
Edited Date: 2013-09-16 04:27 pm (UTC)

Date: 2013-09-16 09:20 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Вот только это довольно бессмысленное занятие.

Для теоретика - да.

Для практика полное покрытие unit tests показывает, что в каждой строчке кода написали на самом деле то, что хотели написать.

Date: 2013-09-16 06:07 pm (UTC)
ext_646638: (Default)
From: [identity profile] rdia.livejournal.com
> а доказательство, что в тестах проверятся каждая строка кода.

Т.е., действительно, как пишет тов. ниже, корреляции позволяется упустить?

Date: 2013-09-16 09:31 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Не надо писать "выше-ниже" для дерева из сотни комментариев. При чём тут корреляции, я не понял. Это практическая методика, а не попытка доказать что-то статистикой.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 31st, 2025 12:12 pm
Powered by Dreamwidth Studios