⑴ 怎么理解元编程
1.一种语言本来做不到的事情,通过你编程来修改它,使得它可以做到了,这就是元编程。
2.就是用代码生成(操纵)代码。
3.常见的开发语言均能做到元编程,Lisp这货就不用多说了,C的Marco,C++的Template,Java的Annotation,C#的Attribute、Reflection、CodeDom和IL Emitter,各种脚本语言(如js、python)的eval,甚至连Unix/Linux的shell脚本也能。
4.元编程常见的应用场景很多,扩展(重构)语法、开发DSL、生成代码、根据特定场景自动选择代码优化、解决一些正交的架构设计问题、AOP等等。
5.所以元编程存在的目的,就是多提供了一个抽象层次。
6.至于元编程有什么优缺点,争议还是比较大的。比如以重构语法的应用为例,很多元编程的反对者就认为这样会导致代码的可读性、可维护性降低,分化社区,影响交流,因为每个开发人员都能搞一个自己的方言。
总的来说,元编程玩得转的话会让你日子好过一些,玩不转会让你日子不好过一些。