JetBrains Recommends
Software Applications
JNIWrapper by MIIK
We use this small but very useful Java library to easily integrate our Java programs with native Windows code.
Really good library for creating web discussion forums. We use it in our IntelliJ Technology Network site (www.intellij.net).
After evaluating different version control systems we finally have decided that Perforce is the best one to date.
Books
Martin Fowler, et al Patterns of Enterprise Application Architecture
This book summarises a good collection of developer experiences (as a list of patterns) in designing and implementing server-side multi-tiered applications. This book has been very useful for designing our new product JetBrains Fabrique.
A large number of these patterns will be implemented in applications that Fabrique generates.
Martin Fowler. Refactoring: Improving the Design of Existing Code
A classic and corner stone introduction to refactoring. The first time through, one might argue and have doubts but the more you read, the more you understand that there’s nothing to argue about - the difference between good and bad code becomes clear as never before. We have read it, we like it, and we use it. Essential reading and highly recommended.
Erich Gamma, et al Design Patterns
The core book about design patterns. Must be read by every programmer and software architect.
Krzysztof Czarnecky, et al Generative Programming: Methods, Tools, and Applications
This book explains the generative approach to writing software. It has a lot of material about different kinds of such approaches: template metaprogramming, intentional programming, aspect-oriented programming, domain-oriented languages, etc.
We consider generative programming a methodology that will enable programmers to write certain classes of applications much easier, than by using the standard OOP paradigm. Particularly, we have implemented some variant of this method in our new JetBrains product Fabrique, in addition to using this method currently for implementing some parts of IntelliJ IDEA.
Web Resources
The resource dedicated to Java as a language, platform and philosophy. Various tips, tricks and discussions for Java developers who share their knowledge with each other.
The community site for server-side Java developers. Contains a lot interesting articles and discussions.
