知识卡片
生成代码不应手工修改
内容
凡是由工具从某个源头(映射文件、IDL、schema等)自动生成的代码,都不应该被直接手工编 辑,因为下一次重新生成时,所有手改内容会被无声覆盖,而这种丢失往往要等到功能”离奇消 失”时才被发现。正确做法是把生成的类当作只读产物,将业务逻辑放进一个继承或包装它的独立 类里,让生成目标和手写目标物理隔离在不同的包或目录中。发散:这条原则不只适用于O/R映 射工具,Protobuf、OpenAPI客户端生成、GraphQL codegen等所有代码生成场景都遵循同样的 逻辑——生成产物和手写代码的边界必须显式且物理隔离,而不是靠约定”记得别改这个文件”。
参考来源
《精通Hibernate》第2章《生成Java类》