Home> Products> IntelliJ IDEA> Community> JetBrains Recommends

JetBrains Recommends

Software Applications

JniWrapper

JNIWrapper by MIIK

We use this small but very useful Java library to easily integrate our Java programs with native Windows code.

Jive Forums

Jive Forums

Really good library for creating web discussion forums. We use it in our IntelliJ Technology Network site (www.intellij.net).

Perforce

Perforce

After evaluating different version control systems we finally have decided that Perforce is the best one to date.

SVNKit

SVNKit

SVNKit is a pure Java Subversion client library. You would like to use SVNKit when you need to access or modify Subversion repository from your Java application, be it a standalone program, plugin or web application.

to the top

Books

cover

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.

cover

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.

cover

Erich Gamma, et al Design Patterns

The core book about design patterns. Must be read by every programmer and software architect.

cover

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.

to the top


Web Resources

www.javalobby.org

www.javalobby.org

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.

www.theserverside.com

www.theserverside.com

The community site for server-side Java developers. Contains a lot interesting articles and discussions.

www.refactoring.com

www.refactoring.com

This site by Martin Fowler contains online refactoring catalog and links to other online refactoring resources.

to the top