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