我在Hadley Wickham关于R包的书中找到了以下内容:
虽然您可以根据需要自由地将函数排列到文件中,但是两个极端是坏的:不要将所有函数放在一个文件中,也不要将每个函数放入它自己的单独文件中(参见here })。
但为什么呢?这似乎是对我来说最有意义的两个选项。特别是保留一个文件似乎对我很有吸引力。
当我想知道包中的某些东西是如何工作的时候,我经常会去相应的GitHub页面查看代码。将功能组织在不同的文件中会使这更加困难,我经常最终克隆存储库,以便我可以搜索所有文件的内容(例如,通过grep -rnw '/path/to/somewhere/' -e 'function <-'
)。
我也没有真正看到开发包的好处。如果您在R Studio中使用大纲窗口,浏览大文件似乎并不比浏览小文件困难得多。我知道Ctrl +。快捷方式,但它仍然意味着我必须在Ctrl +时处理不同的功能时打开一个新文件。如果我只保留一个文件,基本上可以做同样的工作。
将所有功能保存在一个文件中会不会更有意义?我知道不同的人喜欢以不同的方式组织他们的项目,这很好。我不是在这里征求意见。相反,我想知道将所有内容保存在一个文件中是否存在任何真正的缺点。
答案 0 :(得分:1)
显然没有一个单一的答案。一个显而易见的问题是你的包的大小:如果它只包含那两个简洁的函数和一个绘图命令,为什么还要以任何困难的方式组织它:只需将它破解成一个文件就可以了。 如果您的项目很大,请说你试图抛出R图形系统并编写大量的功能(geoms和stats和......),很多小文件可能是个更好的主意。但是,拥有更多文件而不是RStudio中的标签空间可能也不是一个好主意。 另一个重要问题是,您是打算单独开发还是与数百人一起开发GitHub。您可能更愿意接受小文件中的更改,而不是单独搜索的“一个大文件”,当您独自一人时,可以回复。
发明Java的人最初有一个“每个类一个文件”,C#似乎有类似的东西。这并不意味着那些人不如哈德利那么聪明。这只是意味着,您的里程可能会有所不同,您有权反对Hadleys的意见。
答案 1 :(得分:1)
为什么不将计算机上的所有文件放在根目录中?
最终,如果您使用文件树,则可以将所有内容都用作单个实体。
将概念上属于同一文件的东西放在同一个文件中是将内容放入目录/库的逻辑延续 如果你编写一个库并定义一个函数以及它们周围的一些便利包装器,那么将它们放在一个文件中是有意义的 由于文件较少,导航文件树变得更加容易,并且导航文件更容易,因为您没有在同一文件中拥有所有功能。