Вниз
Скачать: CL | DM;

Прошу совета по удобочитаемости текста.   Найти похожие ветки 

← →
TUser ©   (2005-08-20 21:15) [0]

Пишу бибилиотеку на JavaScript. Есть 2 варианта того, как реализовать похожие функции.
Какой из них, по Вашему мнению, больше способствует удобочитаемости кода?

Вариант 1. Copy-paste. Преимущества - функции присутствуют в коде в виде собственно
функций. Недостаток - имея 10 похожих функций придется (при чтении кода) долго искать
различия. Объем текста растет, отладка усложняется (при обнаружении ошибки ее, может
быть, придется в 10 местах исправлять).

Вариант 2. Сейчас библиотека поддерживает шаблоны. Выглядет это примерно так

/* Создаем объект "Шаблон", который потом можно использовать
  для создания множества похожих функций
*/
var AnyVar = new Teamplate ()
with (AnyVar)
{
 AddLine ("function %0 (Param)") // AddLine - метод объекта "шаблон"
 AddLine ("{")
 AddLine ("  if (Param %1 0)")
 AddLine ("  {")
 AddLine ("    Param %2")
 AddLine ("    alert Param")
 AddLine ("  }")
 AddLine ("}")

 Realize ("ZeroFunc","==","++") // Realize - метод объекта "шаблон"
 Realize ("NonZeroFunc","!=","--")
}


После выполнения метода Realize() в html тексте появятся 2 функции

function ZeroFunc (Param)
{
 if (Param == 0)
 {
   Param ++
   alert Param
 }
}

function NonZeroFunc (Param)
{
 if (Param != 0)
 {
   Param --
   alert Param
 }
}


к кторым можно обращаться, как к любым другим ф-м. Но в написанном руками тексте эти
функции присутствуют сами видите в каком виде. С другой стороны - сразу можно
разобраться, чем они отличаются. Вот думаю, - какой путь все-таки лучше.


← →
Gero ©   (2005-08-21 08:11) [1]

2, конечно. В первом варианте происходит ненужное дублирование кода.


← →
delirium-system-2   (2005-08-21 10:42) [2]

Фактически, дублироване кода будет и в том и в другом случае. Шаблоны создавались для упрощения работы с различными типами данных. И если имеется "10 похожих функций", то скорее всего здесь что-то не то с самой идеей. ИМХО, в коде легче разобраться при явном описании всех функций.


← →
TUser ©   (2005-08-21 15:29) [3]

> Gero ©   (21.08.05 08:11) [1]

Я тоже склоняюсь к 2. Уже несколько раз обрадовался, когда пришлось внести одно изменение, а не править каждую функцию.


← →
TStas ©   (2005-08-21 20:03) [4]

Второй, конечно. Видно же сразу


← →
DiamondShark ©   (2005-08-21 20:09) [5]

Главное -- потом в этих "шаблонах" ногу не сломать...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: -0.978 c
3-1123051769
worldmen
2005-08-03 10:49
2005.09.18
Создание базы в FireBird.


5-1099377771
Kair
2004-11-02 09:42
2005.09.18
PropertyEditor, paSubProperties


5-1099403917
DmitryA
2004-11-02 16:58
2005.09.18
Блокировка автоматического скроллинга формы


3-1123060466
set666
2005-08-03 13:14
2005.09.18
Глюк с Rave Reports 5.0


14-1124614933
Olyanka
2005-08-21 13:02
2005.09.18
Ерунда с буфером обмена




   Наверх