Generally using Java best practices are what you should do with GWT. Don't try to prematurely optimize you code, but rather leave that to the GWT compiler. As to the size of classes, I think following common best practices for Java of separation of concerns and abstraction should dictate how large your classes are, not concern of the size of the JS files created. Generally speaking you'll get 1 boostrap file, plus 1 no cache JS file (for each browser/language permutation). If you want to have more smaller JS files, then us Code Splitting. You can also set gzip headers on your requests and serve up pregzipped (there's a GWT flag for that) JS files to make your project load even faster.