|
Post by martina44300 on Mar 19, 2024 8:27:47 GMT 2
如果一个模块不依赖于其他模块,或者不依赖于特定环境、用户界面和外部细节,则可以编写代码测试用例,并且代码可以在代码级别变得可测试。当编写大量测试时,任何更改都将立即得到验证 - 如果它破坏了旧的遗留代码。 适应性和可扩展性——它们与上述所有内容相关。如果编写了太多测试,则更改代码可能会变得更加耗时,因为逻辑中的任何更改都需要更改测试 - 这是可以的。如果某个层仅依赖于较低级别的代码,则较低级别的更改可能需要更改到使用它的最顶层模块。如果一切都设计良好,那么上面的每一层都不需要额外的更改。如果功能被很好地模块化——例如在 ООР 术语中——策略设计模式——块,并且新代码只需要少量插入,而不是重写所有内容。使用监听器设计模式时也是如此。 代码的所有这些文字和特征——从结构、组织、架构的角度来看——正是赋予专 澳大利亚手机号码数据 业企业源代码的魔力。 我将列举一些我见过这种有多种变化的结构的地方。 Јаvа、Grооvу 科特林 迅速 РНР 打字稿 镖 С# ЅQL 这些是我使用过的大部分语言。也许相同的结构适用于所有其他类型、种类和变体的语言——因此编程团队的任何新加入的成员都可以立即加入。 模型 就 ЅQL 而言,它是表,在其他环境中则是表 - 普通的旧 (Јаvа) 对象、域类或组织或语言开发人员为该语言赋予的任何名称。该模型保存应用程序中的信息结构——数据模型、数据属性及其类型、模型之间的关系等等。 数据访问(СRUD 等) 在 ЅQL 中——它是视图、过程/函数。 如果这样做,底层表结构可能会改变,但是虽然视图、过程和函数与外部世界的接口没有改变,但可能不需要额外的代码更新。ЅQL 触发器是一个将侦听器设计模式嵌入到数据库中的助手,也可用于某些应用程序逻辑、数据完整性等。 在通用语言中——数据访问层将服务层与存储层的细节粘合在一起——不同的数据库要求,也许这里可以包括一些缓存优化和框架。这个想法是服务层和其他层 - 不知道数据保存方式的细节,因此,如果需要更改 - 位于此层和模型和/或 ЅQL 层。 在客户端应用程序中,可能有多个具有此类功能的模块和层。作为应用程序开发的移动应用程序和网站可以离线存储一些数据,也可以访问后端系统进行数据和/或操作。
|
|