При написании программы, мое понимание, как любитель программист, есть три способа выполнить большинство вещей:Правильный выбор петель по сравнению с функцией против объекта/класса
- создают петли
- создавать и использовать функцию
- создания и использования объекта
Я использую JavaScript здесь, чтобы задать свой вопрос, так как я взял обучение на нем около 2-3 недель назад. Это несколько странно по сравнению с тем, что я использовал в python или MatLab в университете, но это не главное. Я часто думаю, что должен быть хорошим выбором среди трех в конкретном приложении, поэтому я хотел знать ваше предложение.
Я хотел создать список массива для последующего использования для построения графика. Предполагается, что программа принимает коэффициенты уравнения, инкрементный шаг и границу для значений х. Ниже приведен код (Извините, если я что-то пропустил ниже при изменении, чтобы соответствовать SO, но она работает несколько секунд, прежде чем!):
function array_creator(input_coeff,inc, boundary){
var bound=boundary||[0,1];
var eqn_deg=input_coeff.length-1;
var increment=inc;
var x_init=bound[0];
var y_val=0;
var graph_array=[];
while (x_init<=bound[1]){
for(var i=0;i<input_coeff.length;i++){
y_val=y_val+input_coeff[i]*Math.pow(x_init,eqn_deg);
eqn_deg--;
}
new_arr=[x_init,y_val];
eqn_deg=input_coeff.length-1;
y_val=0;
graph_array.push(new_arr);
x_init=x_init+increment;
}
return graph_array;
}
В коде выше, у меня есть один вложенный цикл, который идет внутри время, но я Я использую для написания кодов, которые занимают более 3-4 глубины гнездования, и я не могу выкапывать свою собственную программу через неделю после. Поэтому мой вопрос заключается в том, когда я должен знать, что пришло время реализовать отдельную функцию, а не вложенность или знать время для создания объекта. Каковы выгоды и потери от разбиения одной большой замкнутой функции на несколько функций с точки зрения ясности и эффективности? В какой момент создание объекта становится существенным, или это просто, когда мне нужно снова использовать тот же код.
Когда единственный инструмент у вас есть молот, все выглядит как гвоздь. Когда я начал изучать python после MatLab, меня настолько впечатлил подход OO, который я использовал для создания классов в любой ситуации независимо от того, нужны они или нет. Я думаю, что многие новички SO будут рады найти системный подход к этим основам программирования.
Итак, этот вопрос должен быть закрыт с аргументом о том, что он основан на мнениях .. hummm ... из когда знание хороших методов программирования стало основано на мнениях? –
Модераторы, вероятно, считают ваш вопрос слишком широким для StackOverflow. Ожидается, что люди зададут практические вопросы, которые уже включают попытку решить проблему. Может быть, вы можете рассмотреть вопрос о пересмотре своего вопроса? – Nobilis
@Jack_of_All_Trades «Хорошие практики программирования» - это мнения, а некоторые люди не согласны с ними. StackOverflow обычно предназначен для вопросов, где ответ не является мнением; это то, что либо работает, либо отвечает требованиям апеллянта, либо не работает и отвечает требованиям апеллянта. Что-то вроде «Какая версия этого кода выглядит лучше?» или «Должен ли я делать ** x **, чтобы сделать это более читаемым?» просят мнения. Это, однако, не означает, что ваш вопрос не является чем-то полезным, просто StackOverflow может оказаться не подходящим для него. –