代码生成器不好吗?

2024-01-09

我使用 MyGeneration 和 nHibernate 来创建基本的 POCO 对象和 XML 映射文件。我听到有些人说他们认为代码生成器不是一个好主意。目前最好的想法是什么?当代码生成生成数千行无法理解的代码时,是否只是代码生成不好?


代码生成器生成的代码不应该(作为概括)用于随后由人工干预编辑的情况。有些系统(例如 Visual C++ 的各种版本上的向导)会生成代码,然后程序员需要手动编辑这些代码。这并不流行,因为它要求开发人员分解生成的代码,理解它并进行修改。这也意味着生成过程是一次性的。

生成的代码应该与系统中的其他代码存在于单独的文件中,并且只能从生成器生成。生成的代码应该明确标记,以表明人们不应修改它。我有机会做过很多这样或那样的代码生成系统,并且All如此生成的代码在序言中具有类似以下内容:

-- =============================================================
-- === Foobar Module ===========================================
-- =============================================================
--
--         === THIS IS GENERATED CODE.  DO NOT EDIT. ===
--
-- =============================================================

实际代码生成 https://rads.stackoverflow.com/amzn/click/com/1930110979是一本关于这个主题的好书。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

代码生成器不好吗? 的相关文章

  • NHibernate - 无法延迟初始化角色集合

    我有以下看似简单的场景 但我对 NHibernate 仍然很陌生 当尝试在我的控制器上加载以下模型以进行编辑操作时 控制器的编辑操作 public ActionResult Edit Guid id return View reposito
  • 如何在 NHibernate 查询中仅选择几列?

    我有一个一类到一表的映射 不幸的是 这个表有 110 多个列 查询需要很长时间 尤其是大多数时候我只想查看 我的问题是查询是根据用户想要查看的内容动态生成的 我无法真正使用不同的列创建不同的映射 因为会有大量的组合 我正在使用条件 API
  • 急于获取引用时重复(多对一)

    首先 是的 我正在使用 DistinctRootEntityResultTransformer 我有以下 Fluent NHibernate 映射 public FirstObjectMap Id x gt x Id HasMany
  • NHibernate:如何从会话缓存中获取实体实例?

    我在工作单元开始时开始会话 并在工作单元结束时关闭 工作单元分布在多种方法中 在一种方法中 我使用加载实体Get方法 所以它位于会话缓存中 实体实例对于方法来说是本地的 因此 当方法范围结束时 实体实例将无法访问 但实体仍在会话缓存中 现在
  • Java 语言有 Java 解析器吗?

    我正在寻找一个 java 库 它允许我解析 java 源文件 并为我提供代码的 AST 表示 实际上我只对类和方法定义及其注释感兴趣 我不需要方法代码的 AST 我正在使用这些信息来生成代码 这就是为什么我无法先编译源文件以从生成的类文件中
  • C# 实体框架我们应该使用 POCO.Id 还是仅使用 POCO 设置关系?

    我在服务方法中遇到一种情况 将 POCO 分配为另一个 POCO 的子对象无法按预期工作 我正在使用实体框架 4 public void ChangeOrderCurrency Currency currency order Currenc
  • nHibernate 使用 Log4Net 进行日志记录,线程会话问题

    大家好 这里有一个小问题 我正在努力解决这个问题 我目前正在开始使用 nHibernate 由于工作需要 我不得不这样做 并且我在 nHibernate 的会话和多线程方面遇到了一些困难 我想在这里完成的任务是让 Log4Net 将所有内容
  • 在 nhibernate 标准中使用内置的 sql“转换”函数

    我想利用 SQL Server 2008 中的 Convert 函数 以便可以在 DateTime 列上进行搜索 建议的 SQL 看起来像这样 SELECT list of fields FROM aTable WHERE CONVERT
  • 我可以将 NHibernate 的 AdoNetTransactionFactory 与分布式事务一起使用吗?

    我正在处理一个与 NHibernate 和 WCF 服务中的分布式事务相关的奇怪问题 看NHibernate 和分布式事务导致 服务器无法恢复事务 的死锁 https stackoverflow com questions 8581956
  • 最好的 NHibernate 二级缓存提供程序是什么?

    我见过有很多这样的 NCache Velocity 等等 但我还没有找到比较它们的表格 考虑以下标准什么是最好的 容易明白 最近正在维护中 是免费的或者有足够好的免费版本 Works 我无法说出什么是最好的或最差的 但我会分享我使用 NCa
  • 实体框架POCO与WCF软件设计问题

    我将在我的应用程序中使用实体框架和 WCF 正如我所看到的 建议的做法是将 POCO 与实体框架结合使用 并使用 POCO 类作为 DataContracts 如果我没记错的话 这实际上就是 POCO 和属性的用途 但是 我被要求对 Ent
  • 如何告诉 NHibernate 始终强制引用标识符?

    正如标题 我如何一劳永逸地告诉NHibernate 所有表名和列名都将在它生成的SQL 中引用 您还可以尝试 SchemaMetadataUpdater QuoteTableAndColumns configuration
  • NHibernate:CreateCriteria 和 Exists 子句

    如何使用 CreateCriteria 编写以下 SQL SELECT FROM FooBar fb WHERE EXISTS SELECT FooBarId FROM Baz b WHERE b FooBarId fb Id 您可以这样做
  • NHibernate:查找脏集合

    我知道怎么做查找脏属性 http nhforge org wikis howtonh finding dirty properties in nhibernate aspx使用NHibernate 但它似乎不适用于集合 即找出是否已在集合中
  • 升级到 NHibernate 3.1:LINQ、Any 和映射组件集合的错误

    我们目前正在从 NHibernate 2 升级到 3 1 以下场景适用于旧的 LINQ 提供程序 但不适用于 NHibernate 3 1 中的新提供程序 以下是该场景的映射 public class FooDbMap ClassMap
  • NHibernate:无状态会话错误消息无法获取代理

    我正在使用 nHibernate 无状态会话来获取对象 更新一个属性并将对象保存回数据库 我不断收到错误消息 无状态会话无法获取代理 我在其他地方有类似的代码 所以我不明白为什么这不起作用 有谁知道问题可能是什么 我正在尝试更新Screen
  • NHibernate Session.Evict()

    我无法访问我面前的代码 所以我只是想知道是否有人可以帮助我解决 Session Evict 问题 假设我有一个包含地址子集合的 Person 对象 我从会话中填充 Person 对象并延迟加载 Addresses 集合 然后 我调用 Ses
  • NHibernate、数据绑定到 DataGridView、延迟加载和会话管理 - 需要建议

    我的主应用程序窗体 WinForms 有一个 DataGridView 它使用 DataBinding 和 Fluent NHibernate 显示 SQLite 数据库中的数据 该表单在应用程序运行的整个过程中都是打开的 出于性能原因 我
  • CompileAssemblyFromDom 抛出访问被拒绝异常

    代码 using var codeProvider new CSharpCodeProvider var compilerParameter new CompilerParameters assemblies assemblyName fa
  • 流畅的 Nhibernate 枚举映射

    我有一些问题enum流畅的 NHibernate 中的映射 我知道这个问题已被问过很多次 但我找不到任何适合我的解决方案 我是 NHibernate 的新手 看起来我可能错过了一些简单而愚蠢的事情 这是我的代码 public class D

随机推荐

  • 在 C 中使用 popen() 失败?

    我可以运行以下命令 xwd root xwdtopnm pnmtojpeg gt screen jpg 在 Linux 下的终端中 它将生成我当前屏幕的屏幕截图 我尝试使用代码执行以下操作 include
  • 创建公共列并像数据一样转换时间序列

    我有一个 Excel 表格 其中包含 30 多张表格 用于不同的参数 如血压 心率等 其中一个数据框 df1 从一张 Excel 创建 如下所示 df1 pd DataFrame person id 1 1 1 1 2 2 2 2 3 3
  • 如何在 R 中添加不同的趋势线?

    我知道如何使用添加线性趋势线lm and abline函数 但如何添加其他趋势线 例如对数 指数和幂趋势线 这是我之前准备的 set the margins tmpmar lt par mar tmpmar 3 lt 0 5 par mar
  • 根据 WooCommerce 中选择的状态显示或隐藏结账邮政编码字段

    在 Woocommerce 中 如果选择了特定的州字段 我会尝试隐藏结账邮政编码字段 我正在遵循这段代码 根据 WooCommerce 中选择的城市显示或隐藏结账邮政编码字段 https stackoverflow com question
  • TRAMP 忽略 trap-remote-path

    我的 emacs 中有以下内容 require tramp add to list tramp remote path some path add to list tramp remote path tramp default remote
  • 如何使用 jQuery 获取垂直滚动站点中当前可见的幻灯片

    这个问题可能听起来很愚蠢 但它却让我伤透了脑筋 我想做一种垂直滚动演示 由不同的幻灯片组成 效果应该与该网站 类似 http www soleilnoir net believein start http www soleilnoir ne
  • 无法解析方法“getMapAsync”

    如有任何语法错误 请原谅 我按照教程在片段中查看谷歌地图 但出了问题 这是我的文件 java 它与片段挂钩 public class MapFragment extends Fragment implements OnMapReadyCal
  • 在 Java 中将字符串从蛇形命名法转换为驼峰式命名法

    如何在 Java 中将蛇形大小写转换为驼峰大小写 输入 input in snake case 输出 InputInSnakeCase Guava https github com google guava通过其支持这一点案例格式 http
  • Oracle 12:加入逗号分隔列表?

    假设我有一个名为 公司 的视图 我无法修改 company id company name ceo cfo legal contacts 1 johnson and son pid111 pid333 pid444 pid567 pid99
  • 如何对 NSString 进行 URL 编码

    我正在尝试对字符串进行 url 编码 但 NSURLConnection 由于 错误的 url 而失败 这是我的网址 NSString address mp streetAddress NSString encodedAddress add
  • 我应该调用 session.close() 和 cluster.close() 吗?每次 Web API 调用后 close()

    我有一个 Web 服务 API 允许客户端插入 Cassandra 我阅读了datastax页面上的文档 http www datastax com drivers java 2 0 com datastax driver core Ses
  • 使用 SDWebImage 处理非常大图像的下载

    I use SDWebImage将图像异步下载到我的UIImageViews 收到的大多数图像的大小都可以接受 并且可以轻松下载并设置为UIImageViews 然而 有时 URL 上的源图像具有非常高的分辨率 相对于我的大小 imageV
  • 仅当图像较大时才缩放到父 div,同时使用显式最大宽度

    我可以在较小的屏幕上根据父 div 进行图像缩放 但仍限制为明确的最大宽度 img max width 500px width 100 但是 如果图像小于父 div 它仍然会拉伸以填充 div 有没有办法让它仅在较大时缩放到 100 而在较
  • 将提供程序注入指令不起作用

    我正在尝试使用角度引导灯箱 https github com compact angular bootstrap lightbox basic example 我需要注入 Lightbox 像这样提供者进入指令 controller Lig
  • 无序执行会导致推测内存访问吗?

    当无序处理器遇到类似情况时 LOAD R1 0x1337 LOAD R2 R1 LOAD R3 0x42 假设所有访问都会导致缓存未命中 处理器是否可以在请求 R1 甚至 0x1337 的内容之前向内存控制器请求 0x42 的内容 如果是这
  • 读取 /dev/urandom 是线程安全的吗?

    这是代码 unsigned int number FILE urandom fopen dev urandom r if urandom size t bytes read fread number 1 sizeof number uran
  • JavaFX Beans 绑定突然停止工作

    我使用 JavaFX NumberBindings 来计算某些值 最初一切都按预期进行 然而 在相当短的时间之后 绑定就停止工作 我也没有收到异常 我尝试了几种绑定以及高级和低级方法 甚至计算本身 当被覆盖时 也会停止并且不再被调用 我还更
  • 如何在 C++ 中反向迭代映射?

    我在 GCC C 中的映射上反向迭代时遇到问题 当我使用反向迭代器时 似乎我无法为其分配任何内容 编译器抱怨 我正在使用前向迭代器使用一些尴尬的代码来解决它 但它不是很优雅 有什么想法吗 这是向后迭代的示例std map include
  • Plotly:如何显示白色背景的 x 轴和 y 轴线?

    我在隐藏背景时使用情节 paper bgcolor rgba 255 255 255 1 plot bgcolor rgba 255 255 255 1 不幸的是 阅读布局的参考指南 我无法添加轴 只有左侧和底部的 xy 线 完整代码 fi
  • 代码生成器不好吗?

    我使用 MyGeneration 和 nHibernate 来创建基本的 POCO 对象和 XML 映射文件 我听到有些人说他们认为代码生成器不是一个好主意 目前最好的想法是什么 当代码生成生成数千行无法理解的代码时 是否只是代码生成不好