[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Программирование на функциональных языках - как научить?



Alexey Pechnikov -> debian-russian@lists.debian.org  @ Sat, 22 Aug 2009 05:23:58 +0400:

 >> Вот казалось бы - ну всего-то нужна пара проверок.  Что переданный
 >> параметр - валидное строковое представление IP-адреса или сети.
 >> Т.е. что строка имеет вид число.число.число.число[/число], каждое из
 >> первых четырех чисел - от 0 до 255, последнее - от 0 до 32, и у сети
 >> единицы могут быть только в маскированных разрядах.
 >> 
 >> Ну хорошо, можно поначалу эту проверку забыть.  Или забить на нее
 >> сознательно.  Но КАК можно ИСПРАВИТЬ несколько ошибок с
 >> некорректными входными данными и так и не вставить ЭТУ проверку
 >> (которая сделает невозможной следующую ошибку такого же типа)?  Это
 >> какой же фигурности должны быть заплатки!?

 AP> А это сначала еще надо предположить, что _все функции_ должны
 AP> проверять корректность вводимых данных... При написании модуля
 AP> исходил из того, что вызывающее приложение проверяет корректность
 AP> тех данных, которые пишет в БД. Делать проверку всех комбинаций
 AP> входных данных во всех функциях - лишний код.

А вот это более-менее простительно для того, кто программирует закрытый
код.  Который никогда не будет использоваться нигде, кроме как в данном
конкретном проекте, потому что никто его никому никогда не даст.

Для программиста, публикующего свой код, такой подход ко входным точкам
опубликованного софта непростителен.  Потому что предсказать, как он
будет использован, невозможно.

У тебя, извини, вообще-то интерфейсом твоего расширения может
воспользоваться _человек_.  В командной строке sqlite.  О каких
проверках в вызывающем приложении при этом вообще может идти речь!?

 AP> Раз об этом начали спрашивать - добавил, хотя имхо это излишне.

Вот пока ты считаешь, что это излишне - не надо пытаться учить других,
как им правильно писать программы...

-- 
Лень оправдывает средства


Reply to: