这个问题来自一个 Web 应用程序,尽管它也应该适用于其他类型的应用程序。我正在使用 MVC。
我既有应用程序代码(模型、视图、控制器、表单、助手等)和库代码(外部库和带有自写数据库映射器、json 转换器等的内部库)。
我想知道您通常在哪里划定应用程序和库代码之间的界限(当两者都是内部编写时)?
一些库代码变得相当特定于项目,但仍然有点抽象。
这个问题来自一个 Web 应用程序,尽管它也应该适用于其他类型的应用程序。我正在使用 MVC。
我既有应用程序代码(模型、视图、控制器、表单、助手等)和库代码(外部库和带有自写数据库映射器、json 转换器等的内部库)。
我想知道您通常在哪里划定应用程序和库代码之间的界限(当两者都是内部编写时)?
一些库代码变得相当特定于项目,但仍然有点抽象。
库的代码旨在可重用,应用程序的代码通常不是。当代码没有专门绑定到应用程序时,将代码保存在库中。
如有疑问,请尝试回答此问题:
如果我写另一个应用程序,这个代码会保留吗?
我的一般经验法则是:任何可能在另一个项目中使用的东西,并且可以很容易地不依赖于任何特定于应用程序的代码(并且有各种技术可以做到这一点),都应该放入库中。因此,如果它可能是可重用的,它就会进入一个库。
当面对这些分类问题时,我想知道一件事:错误分类的后果。
该代码是“库”,该代码是“应用程序”……这种区分是为了谁的利益?如果我们将某些代码放在错误的类别中会发生什么?
一个可能的答案:
它会影响代码的重用。让我们假设我们有一个策略:库代码在带有所需标头等的 DLL 中可用。应用程序代码只是部署在 .EXE 中。
将一个很好的例程放在 App 中而不是库中进行困难的计算,那么它就不容易被重用。
也许从这种思路可以得出更多的东西……版本控制的问题适用。我们需要制作更好的文档吗?[即使只有一个开发人员,我们也可能会更加小心?] 我们是否需要将配置信息外部化,确保不要硬编码任何东西?