首页 / 知识
关于不可知的语言:代码生成器与ORM与存储过程
2023-04-16 04:16:00

Code generators vs. ORMs vs. Stored Procedures这些软件体系结构在哪些领域大放异彩? 哪些关键要求会提示您选择一个? 请假设您有可用的开发人员,他们可以执行良好的面向对象的代码以及良好的数据库开发。 另外,请避免进行圣战:)三种技术各有利弊,我对最适合使用哪种技术感兴趣。 这些工具中的每一个都提供不同的抽象层,以及不同的点以覆盖行为。这些是体系结构的选择,所有体系结构的选择都取决于技术,控制和组织之间的权衡,包括应用程序本身和将要部署该应用程序的环境。
我已经看到了使用生成的代码与存储过程进行接口的应用程序,因为可以对存储过程进行调整,以解决代码生成器中的限制。 最终,唯一正确的答案取决于您要解决的问题和解决方案需要执行的环境。其他任何东西都在争辩" potato"的正确发音。 我加两分钱: 储存程序
ORM
代码生成器
我同意所有内容都有优点和缺点,并且很大程度上取决于您的体系结构。话虽如此,我尝试在有意义的地方使用ORM。已经有很多功能,通常它们可以防止SQL注入(此外,它还有助于避免重新发明轮子)。
请参阅该主题的其他这两篇文章(动态SQL与
动态SQL与存储过程
ORM与存储过程 ORM和代码生成器在某种程度上是领域,而存储过程则在另一侧。通常,在未开发项目中使用ORM和代码生成器会更容易,因为您可以定制数据库架构以匹配您创建的域模型。在遗留项目中使用它们要困难得多,因为一旦软件以"数据优先"的思维方式编写,就很难将其与域模型包装在一起。 话虽如此,所有这三种方法都有其价值。存储过程可能更易于优化,但是很容易将业务逻辑放入其中,而这些逻辑可能会在应用程序本身中重复出现。如果您的模式与ORM的概念匹配,则ORM可以很好地工作,但是如果不匹配,则可能很难自定义。代码生成器可能是一个很好的中间立场,因为它们提供了ORM的一些好处,但允许自定义生成的代码-但是,如果您习惯于更改生成的代码,那么就会遇到两个问题,因为您每次您重新生成它时,都必须对其进行更改。 没有一个真正的答案,但是我倾向于ORM方面,因为我认为以对象为先的思维方式进行思考更有意义。 您忘记了一个重要的选项,该选项应单独使用:混合数据映射框架,例如iBatis。 我对iBatis感到很满意,因为它让您的OO代码本质上保持OO,数据库本质上保持关系,并通过添加负责的第三个抽象(对象与关系之间的映射层)解决了阻抗不匹配的问题。映射两者,而不是试图强迫一种范例适合另一种范例。 存储过程
ORM 至少某些ORM允许映射到存储过程
代码生成
|
最新内容
相关内容
linux命令行设置语言?
linux命令行设置语言?,系统,管理,环境,国家,工具,电脑,软件,文化,底部,语言,linux命令行下怎样改变语言1、将内容改为:LANG=zh_CN.UTF-8LANGUAGlinux使用命令改语言?
linux使用命令改语言?,系统,工作,管理,电脑,设备,字符集,中文,命令,语言,虚拟机,请问linux虚拟机装好以后怎么把英文改成中文?1、vmware设置中c语言写linux命令?
c语言写linux命令?,系统,工具,代码,智能,工作,环境,情况,位置,命令,文件,如何在C语言编程中调用linux系统终端下的命令1、C语言有一个system函linux汇编语言命令?
linux汇编语言命令?,系统,地址,代码,数据,网络,平台,平均,位置,灵活,工作,汇编语言指令的基本格式是什么1、有以下几种基本格式:标号,又称为指令linux汇编语言命令?
linux汇编语言命令?,系统,地址,代码,数据,网络,平台,平均,位置,灵活,工作,汇编语言指令的基本格式是什么1、有以下几种基本格式:标号,又称为指令linux命令是什么语言?
linux命令是什么语言?,系统,环境,代码,传播,管理,语言,操作系统,源码,自由,部分,dos和linux的命令行里面用的是什么语言?1、DOS/Windows/Linuxlinux改语言命令行?
linux改语言命令行?,系统,环境,工具,密码,概念,地方,软件,通信,管理,国际,linux命令行下怎样改变语言将内容改为:LANG=zh_CN.UTF-8LANGUAGE=zh_linux命令行c语言?
linux命令行c语言?,代码,系统,工具,环境,工作,保险,发行,命令,文件,终端,linux终端下如何进行C语言编译1、在Linux下面,如果要编译一个C语言源c语言在linux命令?
c语言在linux命令?,系统,工作,管理,命令,保险,基础,环境,信息,文件,语言,linux系统的命令是什么linux常用命令有pwd命令、cd命令、ls命令、catlinux编写c语言命令?
linux编写c语言命令?,系统,基础,环境,代码,盘面,保险,百度,情况,数据,工具,在Linux系统中,如何运行一个C语言程序?编译。由.c文件生成.o文件,写linux改变语言命令?
linux改变语言命令?,系统,管理,网上,官方网站,情况,服务,中文,语言,命令,终端,linux命令行下怎样改变语言将内容改为:LANG=zh_CN.UTF-8LANGUAGEc语言编译linux命令?
c语言编译linux命令?,代码,工具,环境,系统,基础,保险,百度,语言,源程序,文件,Linux中,运行一个C语言程序如何运行1、编译。由.c文件生成.o文件