代码生成器不好吗?

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(使用前将#替换为@)

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

随机推荐

  • 在 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 映射文件 我听到有些人说他们认为代码生成器不是一个好主意 目前最好的想法是什么 当代码生成生成数千行无法理解的代码时 是否只是代码生成不好