Ale*_*lex 8 project-structure project-organization
将开发项目(例如ASP.NET MVC应用程序)拆分为多个项目的常见原因是什么?代码组织也可以通过文件夹完成.多个项目往往会产生循环引用冲突,并且必须通过管理/解决这些冲突来增加复杂性.
所以为什么?
一些原因是
封装 - 通过将一组例程打包到另一个库中,无论是作为静态库还是一组dll,它都变成了一个黑盒子.为了成为一个好的黑匣子,你需要做的就是确保你提供正确的输入并获得正确的输出.当您重新使用该库时,它会有所帮助.它还强制执行某些规则并防止黑客编程('嗯...我现在只是将该成员函数公开')
减少编译时间 - 库已经被编译; 您不必在编译时重建它,只需链接到它(假设您正在使用C++).
解耦 - 通过将类封装到独立库中,可以减少耦合并允许您将库重用于其他目的.同样,只要库的界面没有改变,您就可以随意更改库,而其他链接到它或引用它的人根本不需要更改它们的代码.DLL在这方面很有用,不需要重新编译,但如果许多应用程序安装相同DLL的不同版本,则可能很难处理.您可以在不影响客户端代码的情况下更新库.虽然您可以只使用文件夹执行相同操作,但没有明确的机制来强制执行此操作.
此外,通过实践这个具有不同库的规则,您还可以确保您编写的内容是通用的并与实现分离.
许可/商业化 - 嗯,我认为这很明显.
一种可能性是拥有一个特定组(或单个开发人员)可以独立于其余代码而工作的系统。另一个方法是提取系统其余部分所需的通用实用程序代码——例如错误处理、日志记录和通用实用程序。
当然,当考虑特定函数/类/文件中的内容时,边界在哪里是艺术问题,而不是科学问题。