Этот вопрос в первую очередь сосредоточен на том, как управлять кодом во время разработки, сделать его очень адаптируемым и т.д. Позвольте мне объяснить в этом примере, и это будет иметь больше смысла. "Я добавлю щедрость, если мне нужно".
Наш сервер привязан к памяти, и мы прилагаем много усилий для сортировки на стороне клиента с помощью Javascript/Jquery, чтобы облегчить эти проблемы. Вот скрипка, если вы хотите следовать за ней. https://jsfiddle.net/ydc6ywuz/23/
Проблема связана с этим кодом.
var sortSubSite = $('.AccessSitesLinks.False');
var subArr = sortSubSite.map(function(_, o){
return {
t: $(o).text(),
h: $(o).attr('href'),
c: $(o).attr('class')
};
}).get();
sortSubSite.each(function(i, o) {
var classList = $(o).attr('class').split(/\s+/);
$('.ContainingBox.AccessSitesLinks.True.'+ classList[2]).append($(o));
$(o).wrap("<div class='ContainingBox2'></div>");
$(o).text(subArr[i].t);
$(o).attr('href', subArr[i].h);
$(o).attr('class', subArr[i].c + classList[2]);
});
Каждый Home
сайт будет иметь класс AccessSitesLinks True [Num]
. Таким образом, все его подсайты имели бы AccessSitesLinks False [Num]
. Я понимаю, что sortSubSite и SubSite похожи и могут быть объединены, чтобы быть более расширяемыми, и эта часть вопроса.
Новое деловое требование состоит в том, чтобы сортировать SubSites
в алфавитном порядке. И здесь возникает вопрос. Как мне взять этот существующий код и реорганизовать его, чтобы он постоянно отвечал требованиям бизнеса? Я могу сделать код очень похожим на Home Sites
, но это не кажется расширяемым, просто создавая еще одну функцию, которую нужно вызвать сразу после. У меня есть MOST переменные, массивы и функции для сортировки по алфавиту уже. Есть ли что-то, чего я не вижу с точки зрения дизайна? Это просто неопытность, которая делает это, поэтому я не могу понять, как правильно это сделать?
ИЗМЕНИТЬ
Я хочу уточнить этот вопрос. Да, я получаю объект $(o)
несколько раз, и это может быть неэффективным. Этот вопрос больше связан с тем, как перепроектировать в то время, когда кодирование продолжается, так как он не является постоянно компрометирующим кодом.