Protocol Buffers生成Java代码太大问题
一个比较长的proto文件,生成的Java代码有2.6M之多。。。而且是单文件,用IDEA打开,整个IDE都不好了。。。提示
1 | File size exceeds configured limit (2560000). Code insight features not available |
一个比较长的proto文件,生成的Java代码有2.6M之多。。。而且是单文件,用IDEA打开,整个IDE都不好了。。。提示
1 | File size exceeds configured limit (2560000). Code insight features not available |
公司使用Protocol Buffers(下文简称PB)作为RPC架构的基础,所以我一直认为PB是一个RPC框架。今天面试官的反问才让我意识到,PB不是一个RPC框架,而是一种数据格式。PB官网对于PB是什么的描述:
Protocol buffers are Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages.
最近在读《How Tomcat Works》,其中讲到了,直接将内部的Request类传给Servlet是不好的。因为知道内部实现的人,会在Servlet中吧ServletRequest向下转型为具体的实现类,然后调用实现类的具体方法。
这样是不好的,因为如果用户可以直接操作实现类,那么就不是面向对象编程了,而且实现类的升级会受到很大限制。
Tomcat是最流行的Java Web应用服务器,其源码值得研究。
研究源码的第一步是把它跑起来。Tomcat是一个老项目,其使用的构建工具是Ant,想要构建Tomcat,运行ant命令就可以了。但是阅读源码最后是在IDE中进行,因为可以调试,所以还的花点功夫把代码导入到IDE中。这里我使用eclispe。