Saturday, January 31, 2009

Essential Java Resources(必備 Java 資源)

最近看到一篇文章,裡面提到重要的 Java 必備資源,所以就把這些資源 blog 下來,日後在做 research 時可以參考

Web sites and developer Web portals
Weblogs
Packages and/or libraries
Books

  • Effective Java (2nd Ed) by Joshua Bloch

  • Java Concurrency in Practice by Brian Goetz

  • Better, Faster, Lighter Java by Justin Gehtland and Bruce Tate

  • Effective Enterprise Java by Ted Neward (me)

  • Release It! by Michael Nygard

  • Either Inside the Java 2 Virtual Machine by Bill Venners or Component Development for the Java Platform by Stuart Halloway

  • Patterns of Enterprise Application Architecture by Martin Fowler and Enterprise Integration Patterns by Gregor Hohpe and Bobby Woolf

  • Java Power Tools by John Smart

  • The Pragmatic Programmer by Andy Hunt and Dave Thomas

  • The Productive Programmer by Neal Ford

  • The Pragmatic Starter Kit

  • Ant in Action (2nd Ed) by Erik Hatcher and Steve Loughran
Tools
  • The IDE
    Of course, the tools discussion begins with the IDE. In an effort to steer clear of commercial endorsements, both Eclipse and NetBeans are open source and free and thus offer an attractive "first steps" option.

  • Unit testing
    The perennial favorite here is the original that started the unit testing revolution, JUnit, but a few others have crept into popular usage, including TestNG, and not surprisingly JUnitPerf, among others.

  • Continuous Integration
    A Continuous Integration server constantly checks the code out of source control, builds it, runs the unit tests against it, and reports any build failures to the developers, usually via e-mail. Several open-source versions are available, but one that has gathered a lot of attention is Hudson, a Continuous Integration server with a lot of plug-ins and high extensibility. The original is CruiseControl and for that reason alone commands respect.

  • Static analysis
    FindBugs is an open-source static analysis tool that runs over Java code, performs deep n-way analysis to figure out all the possible code paths, and reports all sorts of errors and warnings it finds, based on a set of extensible rules. Developed by William Pugh (the same William Pugh who discovered a bug in the Java memory model), FindBugs' biggest claim to fame is its ability to analyze Java code for concurrency bugs, something that every programmer can appreciate.

  • Network packet tracing
    WireShark (which formerly used to be called Ethereal) gives programmers a view of what's traveling across the network, giving them an opportunity to verify that what's moving across the wire is what's supposed to be moving across the wire, and that what's not supposed to be there (such as sensitive information or passwords in clear text), isn't.

  • Virtualization
    A virtualization tool (or perhaps it is more accurate to call it a platform) like VMWare, Xen, VirtualBox, or VirtualPC offers programmers the ability to create an environment identical to the one the production machine will be running without losing the productivity of the environment of the host PC. It also provides a convenient way to have a home for trying "experimental" software without risking the machine that has to stay productive. Most of these have some kind of free option if they're not outright open-source projects.

以上都是在使用 Java 寫系統時最好先須具備的 Resource ,這樣才能隨時參考到資料並做最有效的運用

No comments: