Я не думаю, что есть один ответ.Лучше всего помнить об относительных достоинствах, а затем выбирать подход к этой ситуации.
1) functions. Преимущество неиспользования функций в том, что все ваши переменные остаются в рабочей области, и вы можете просмотреть их в конце.Это может помочь вам понять, что происходит, если у вас есть проблемы.
С другой стороны, преимущество хорошо разработанных функций заключается в том, что вы можете их тестировать по отдельности.То есть вы можете тестировать их отдельно от остального кода, что облегчает их тестирование.Также, когда вы используете функцию по модулю некоторых конструкций более низкого уровня, вы знаете, что результаты одной функции не будут влиять на другие, если они не будут переданы, и это может ограничить ущерб, который ошибочная обработка одной функции может нанести другой.Вы можете использовать средство debug
в R для отладки ваших функций, и преимущество в том, чтобы выполнять их пошаговое выполнение, является преимуществом.
2) LCFD. Относительно того, следует ли использовать разложениеload / clean / func / do независимо от того, выполняется ли это через source
или функции, это второй вопрос.Проблема с этой декомпозицией независимо от того, выполняется ли она с помощью source
или функций, заключается в том, что вам нужно запустить одну, чтобы иметь возможность проверить следующую, чтобы вы не могли проверить их независимо.С этой точки зрения это не идеальная структура.
С другой стороны, у него есть то преимущество, что вы можете заменить шаг загрузки независимо от других шагов, если вы хотите попробовать его на других данных, и можете заменить другие шаги независимо от загрузки.и очистите шаги, если хотите попробовать другую обработку.
3) Нет.of Files Может быть третий вопрос, подразумеваемый в том, что вы спрашиваете, должно ли все быть в одном или нескольких исходных файлах.Преимущество помещения вещей в разные исходные файлы состоит в том, что вам не нужно смотреть на ненужные элементы.В частности, если у вас есть подпрограммы, которые не используются или не имеют отношения к текущей функции, на которую вы смотрите, они не прервут поток, поскольку вы можете расположить их в других файлах.
С другой стороны, может быть преимущество в размещении всего в одном файле с точки зрения (а) развертывания, то есть вы можете просто отправить кому-то этот единственный файл и (б) удобство редактирования, как вы можетепоместите всю программу в один сеанс редактора, что, например, облегчает поиск, поскольку вы можете искать всю программу, используя функции редактора, так как вам не нужно определять, в каком файле находится подпрограмма. Также последующие команды отмены позволят вампереместитесь назад по всем элементам вашей программы, и одно сохранение сохранит текущее состояние всех модулей, так как есть только один.(в) скорость, т. е. если вы работаете в медленной сети, может быть быстрее сохранить один файл на локальном компьютере, а затем просто время от времени записывать его, а не возвращаться назад и вперед к медленному пульту.
Примечание: Еще одна вещь, о которой стоит подумать, это то, что использование пакетов может быть лучше для ваших потребностей, чем поиск файлов в первую очередь.