↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
Ластро
26 октября 2015
Aa Aa
#Цитаты #Айтишное
Динамическая типизация просто делает проверку на наличие ошибок более захватывающим.

Мисьё знает толк...
26 октября 2015
8 комментариев из 21
StragaSevera Онлайн
> У твоего подъезда в пяти метрах стоит ларек(дорогу переходить не надо, если это важно), в котором ты можешь купить хлеб. Сейчас зима, минус десять. Тебе понадобилось купить хлеб, ты не одеваясь(поленился) спустился, купил - юркнул обратно в подъезд. Твоё время пребывания на улице не превысило тридцати секунд.
Можно не одеваться тепло, если ситуация такая. Если тебе нужно совершить более длительную прогулку, скажем через дорогу, в ближайший супермаркет, то тебе лучше одеться потеплее.

Есличо, ты сделал прекрасный пример моей позиции.
Да, МОЖНО не одеваться, если ты будешь тридцать секунд на улице. И шанс того, что ты от этого простынешь, будет мизерным. Но он будет, и ты мог его устранить, одевшись.
Да, МОЖНО не оглядываться по сторонам, если ты переходишь тысячу раз перейденную улицу, на которой дай бог раз в полчаса появится машина. Но ты можешь устранить мизерный шанс быть сбитым, оглянувшись.
Да, МОЖНО не пристегиваться, если ты едешь через три квартала. Но ты можешь уменьшить среднюю ожидаемую травму от аварии, пристегнувшись.
Главное при всем при этом - отдавать себе отчет. "Да, я понимаю, что могу простыть, и принимаю этот риск. Да, я понимаю, что могу быть сбитым, и принимаю этот риск. Да, я понимаю, что могу получить сервер в ботнете, и принимаю этот риск."
А не прятаться за мысли вроде: "Ой, да кому этот сайт нужен? Ой, да в кого я врежусь здесь?".
Показать полностью
StragaSevera Онлайн
> Ты не идешь на него. В это суть моей аналогии. Риска НЕТ. Вероятность заболеть от этого настолько мала, что в любом практическом применении её следует класть равной нулю.
Ложь, ибо опровергается одним примером, который у меня был.
Следовательно, ты передергиваешь.
StragaSevera Онлайн
> Во-первых, ты абсолютно точно не знаешь, заболел бы ли ты, если бы не оказался на тридцать секунд на улице в минус десять.
Прекрасно, прекрасно.
А если я переходил дорогу, по которой в средем едет одна машина в полчаса, не оглянулся и оказался сбит - я не могу быть уверен, что, если бы я оглянулся, то не оказался бы сбит тоже. Ачо, может, там пьяный водитель на тротуар бы выехал! И вообще, невозможно установить вероятности ничего, и вообще, мы живем в матрице!
tl;dr
но нафига тестить простые вещи?
StragaSevera Онлайн
Mikie
Мне кажется, что вопрос про "унылейший троллинг" нужно задавать мне, а не тебе.
Да, я действительно не различаю эти ситуации. Видимо, потому, что стою на устаревших позициях вроде "где-то там существует реальность, и мы можем прикидывать вероятности в ней".
Итак, если предположить, что ты не троллишь, а действительно не понимаешь моей позиции, попробую переформулировать ее еще раз:

"Существует опасность Х.
Существует способ уменьшить ее опасность Y, имеющий некоторые накладные расходы.
Существуют ситуации, когда опасность Х так мала, что ее риск перевешивается в глазах выбирающего агента нежеланием платить накладные расходы Y.
В любой ситуации, когда накладные расходы имеют хоть немного меньший субъективный вес, чем риск от опасности, нужно применять способ Y, а не пытаться убедить себя в чем-то, рационализируя словами вроде: "Ой, да кто мой сайт будет взламывать? Ой, да не простыну я от тридцати секунд на морозе!".
В случае, если после анализа ситуации ты понимаешь, что накладные расходы Y имеют больший вес, чем риск Х, следует честно себе признаться в этом: "Да, я понимаю, что сайт могут взломать, если я его не протестирую, но принимаю этот риск", не стараясь рационализировать для себя свое решение, убеждая себя в том, что накладные расходы больше, чем тебе кажется, или риск меньше, чем тебе кажется.
Рационализация - неправильный подход.
Рационализация через позицию "мы не можем ничего измерить или узнать точно, следовательно, можно делать что угодно" - неправильный подход.

Накладные расходы на простое тестирование очень малы.
Существует очень мало ситуаций, в которых они будут иметь бОльший вес, чем риск непротестированного приложения.
Одна из таких ситуаций - написание программы на языке программирования, в котором нет удобных библиотек для автоматического тестирования.
Сайты пишутся на языках, для которых есть удобные библиотеки для автоматического тестирования.
Тестирование имеет бонусы и помимо уменьшения угрозы Х.
Следовательно, я не представляю, в какой ситуации при написании кода сайта с нуля на языке программирования (а не на языке разметки) накладные расходы от тестирования перевесят помощь от тестирования плюс уменьшение угрозы."
Показать полностью
StragaSevera Онлайн
Sore wa himitsu desu
Потому что тестить простые вещи просто и быстро, и это помогает быстрее написать простые вещи.
Ластро
O_o ну и наворотили вы.

StragaSevera моя позиция такая. Покрывать тестами ВСЁ излишне. Тестировать каждую мелочь? Боже упаси, с проверкой всёких мелочей и тривиальностей вполне справится система типов. Отказываться от них совсем, я что дурной? Раньше я часто запускал функции в интерпретаторе и смотрел результат, так как всё чистое то я их отлаживал и шёл дальше, мир, дружба, пони. Потом мне с одной стороны стало влом делать это ручками, а с друго в интерпретаторе несколько потоков руками не сильно и позапускаешь(хотя можно, и он даже выдюжит, но напряжно), так в мой код проникли тесты, но их немного и назвать их модульными у меня лично рука не подымается, они скорее интеграционные.

Позиции "я всё равно тестирую, зачем мне статика?" и "у меня крутая система типов, зачем мне тесты?" мне кажутся одинаково глупыми. Это два РАЗНЫХ метода поиска ошибок и они находят РАЗНЫЕ КЛАССЫ ошибок, предпочитаю их совмещать, не переходя крайности, язык программирования это не теоремпрувер(например идрис, агда), а тотальное тестирование напрягает необходимостью поддерживать не только код, но и тесты(и в особо задротских случаях тесты тестов(переходить в крайности так уж до конца)).
Показать полностью
StragaSevera Онлайн
Al Lastor
Ответил в параллельном треде.
ПОИСК
ФАНФИКОВ











Закрыть
Закрыть
Закрыть