Alexey Pechnikov -> debian-russian@lists.debian.org  @ Wed, 19 Aug 2009 
22:58:58 +0400:

 >> Надо показать на хорошем примере, какие преимущества это даст, тогда
 >> понемногу человек научится применять новый подход. Но ждать от человека,
 >> у которого нет опыта в программировании (т.е. набитых шишек и набранных
 >> километров кода) сразу писать "красиво" не выйдет.

 AP> А примеры подскажете? В данный момент человек не видит, почему
 AP> нужно использовать функции вместо кусков кода с глобальными
 AP> переменными, т.к.  ему кажется, что чем меньше кода - тем проще и
 AP> удобнее, а опыта в поддержке у него нет. Я думал, что ему подскажет
 AP> правильное направление мой фрэймворк, на котором он и работает, но
 AP> он полагает, что у меня использование функций оправдано, а у него -
 AP> нет. Как бы объяснить и показать... Когда говорю, что у меня можно
 AP> переписать реализацию целого модуля, не затрагия весь остальной код
 AP> (скажем, некие часто изменяющиеся данные из in-memory массива с
 AP> мьютексом перенести в сетевую in-memory БД), ответ просто убивает -
 AP> он, мол, не собирается переписывать код, а если придется, все равно
 AP> все придется переделывать...  Пытался делать примеры - он их берет
 AP> и "обвешивает" глобальными переменными...

Ты будешь смеяться.  Он может быть прав.

Принцип KISS (Keep It Simple, Stupid!).  Зачастую действительно дешевле
первую версию сделать как попало - потому что заранее предусмотреть,
куда она будет потом развиваться, чаще не получается, чем получается.
И чтобы успешно предсказывать это самостоятельно, нужно иметь
_собственный_ опыт развития.  Чужой не помогает.  Свой из соседней
предметной области - тоже.

Работа в функциональном стиле в языке без встроенной хвостовой рекурсии
оправдана очень и очень не всегда - очень красиво работающий код может
очень неизящно навернуться по причине stack overflow при удлинении в
несколько раз обрабатываемой последовательности данных, например.  А
если в нем еще и нельзя array нормально передать или вернуть (пара из
array get/array set - это НЕ нормально)...

В результате у меня на tcl работа с array чаще сделана через upvar, а
если в деле замешаны еще и асинхронные обработчики (fileevent или какой
tk'шный биндинг), то через global.  Потому что в них, блин, куда сложнее
запутаться, чем в суперпозициях eval, concat и list.

-- 
Чайник - это человек, который, наткнувшись на проблему, начинает громко
свистеть
        (c)vitus


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Ответить