Вниз
Скачать: 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.037 c
14-1124829067
Lomz
2005-08-24 00:31
2005.09.18
Как отправить вебформу насервер?


8-1115212285
Артём
2005-05-04 17:11
2005.09.18
Как в Listbox сделать нумерацб?


3-1123485949
Zaero
2005-08-08 11:25
2005.09.18
При изменении информации, размер *.mb файла не уменьшается!


5-1099127371
Arnold
2004-10-30 13:09
2005.09.18
Наследник от TStringGrid


1-1124700897
SpyBoy
2005-08-22 12:54
2005.09.18
размер каталога вместе с содержимым




   Наверх