Author: Jiangnan Baiyi
Collation
Ruby on Rails, powered by ruby, was born and refreshed people's understanding of the framework: closures, MAXIN, continuations, metaprogramming, and reflection.
Although Java is not as violent as a dynamic language, it is still a matter of days. Many framework technologies such as reflection, generics, and annotation are produced by water connection ), proxies (proxy/cglib ),CodeDynamic generation (ASM), AOP (aspectj), and dynamic language embedding (groovy/JavaScript/beanshell ). In the face of these problems, we are a bit helpless like a rich agricultural company overnight.
First, there should be a new design pattern book.
Many years ago, a classic written based on pure C ++ syntax, many models can be implemented more elegantly, and more new models will emerge with the popularization of these technologies.
Second, I feel that the new framework model has emerged.
Constantly upgrade your own spring, and comprehensively use most of the technologies except generic, taking the imagination of the programming field into consideration the idea of the traditional template mode/hook function such as MFC/ejb2.0 container, transition to a standard with no intrusion.
When you think about performance, the pity in C ++ is getting farther and farther away.
Third, you should recharge yourself.
From the experience of compiling a framework in C ++ to the use of "Reflection, generics, metadata, proxy, dynamic code generation, AOP, dynamic language embedding" is an obvious demarcation line, you should schedule enough spare time to learn it carefully.
This series begins to introduce the above blocks one by one.
SeriesArticle:
Series of articles:
Framework programming in Java (1) -- order
Java framework programming (2)-boring usage of generics and platforms for wiping Methods
Java framework programming (3) -- fragment about reflection
Java framework programming (4) -- Annotation vs XML vs interface the latest round
Java framework programming (5) -- cglib Application
Framework programming in Java (6) -- ASM (to be written)