Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: 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 вся ветка

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
3-1123079751
Гость22
2005-08-03 18:35
2005.09.18
Как в Database Desktop убрать ненужное поле таблицы Paradox?


14-1124536153
ArtemESC
2005-08-20 15:09
2005.09.18
Assembler - работа с файлами.


3-1123565477
Shopot
2005-08-09 09:31
2005.09.18
ADO Query и SQL Server. Проблемы с памятью.


1-1124994267
TStas
2005-08-25 22:24
2005.09.18
Как подключить файл помощи?


3-1123133145
Nata2
2005-08-04 09:25
2005.09.18
ADOStorecProd