|  
                  
                   
                    
                                    
                   Bitter Java 
                      by Bruce A. Tate (Paperback, 339 pages); 
                      ISBN 1-930110-43-X  
                       
                                    
                   
                    
                      Reviewed
                                by: Songmuh
                                Jong, send
                                e-mail  
                     Published
                    by:  Manning
                    Publications, go
                    to the web site 
                    Author's
                    web site: go
                    to the site  
                    Requires: Web
                    Server and Servlet Container  
                    MSRP: USD$44.95/CAD$67.95  
                             
                            This
                            book discusses some design patterns and their issues
                            and solutions for Java programming. The author uses
                            VisualAge for Java, Websphere and DB2 as his tools,
                            but the principles can be applied to any Java project.
                            The codes are developed with JDK 1.2.2. Some, but
                            not all, of them have been compiled, but not tested,
                            in JDK 1.3.1. The author uses the term "antipattern" for
                            a flaw in design. In addition, he attempts to have
                            a unique descriptive term for each antipattern. If
                            you jump from one chapter to another without specific
                            order, you might be puzzled by all the new terms.
                            Fortunately, the book has a good index on the keywords
                            and the pages they are described. 
                       | 
                      
                                        
          |   
                  Before 
                    reading this book, one must understand that the author is 
                    a consultant. The writing style reflects his professional 
                    way of presenting idea and solutions. Instead of clear-cut 
                    sectioning as in other technical books, the author chooses 
                    a verbal style with small talks aiming to entertain his clients. 
                    Readers must read the book word by word to find out the hidden 
                    idea and hints. Although it adds burden to readers, keep in 
                    mind that Corporate America pays big bucks for this type of 
                    consulting. Reading this book is like having a consultant 
                    guiding you on various aspects of project design for server-side 
                    Java coding. You could save big bucks by reading this book 
                    instead of hiring a consultant. If you don't have the patience 
                    to read this book, then you have to prepare to hire a consultant 
                  with high hourly fee. 
                  Because 
                    of the writing style, the author suggests that you glance 
                    over the entire book to get the outlines. Then go back to 
                    specific chapters as you need it. This is exactly what the 
                    readers must do. Unlike the foreword to this book says, this 
                    is not a book that you can read from cover to cover unless 
                    you are a very experienced project managers who have gone 
                    through all the server-side Java projects. Because this book 
                    discusses "antipatterns," at least half of the examples 
                    are examples of how not to code in your application. Do not 
                    blindly copy and paste the codes from this book to your projects. 
                  The 
                    best idea begins at the chapter (3) that discusses servlets. 
                    The author points out that model-view-controller is not necessarily 
                    separated by the client/server boundary. Even the server-side 
                    codes can have view components. The same discussion extends 
                    into the next chapter (4) when it discusses JSP and coupling 
                    JSP with servlets. 
                  Everyone 
                    knows that resource pooling is a good technique for application 
                    design. The author expands on this idea in chapter 5 and discusses 
                    cache management. Notice that cache management is usually 
                    the domain of JVM or container supplier. Even the books specialized 
                    on Servlet Programming do not say much about this aspect. 
                    This chapter is a welcome discussion for this area. 
                  Memory 
                    Leakage is an important consideration when it comes to programming. 
                    The author pounds on this topic in chapter 6. Although JVM 
                    comes with Garbage Collection, there are still some instances 
                    where memory leaks can occur. it's nice to see a summary on 
                    a list of possibilities that will cause memory leaks. 
                  Network 
                    connections are very expensive. The author tackles this subject 
                    and discusses connection pooling and other connection cleanup 
                    techniques in chapter 7. This chapter also includes the discussion 
                    of XML misuse and solution. XML is not discussed in a standalone 
                    chapter because the author calls it mini-antipatterns. It 
                    is not clear why XML is included in this but not another chapter. 
                  Enterprise 
                    Java Beans represents the most complex server-side Java design. 
                    The authors discusses it in chapter 8. This is the only chapter 
                    that comes with a complete application called BBS. This is 
                    also the only chapter that the codes are not developed by 
                    the author, but provided by someone else. 
                  The 
                    author concludes the book by looking at two aspects of general 
                    programming issues and solutions and how antipatterns can 
                    help project designs. Chapter 9 discusses programming hygiene. 
                    This chapter is not limited to Java programming, it is about 
                    bad programming practices in general, although some of the 
                    discussion is still Java-specific. Next (chapter 10) he looks 
                    at the topic of scalability and performance. Scalability is 
                    probably the most commonly mentioned and the most abused word 
                    in enterprise computing. It is not simply an issue of software 
                    design, it is also a matter of hardware distribution. The 
                    last chapter talks briefly about sweet parting thoughts and 
                    gives this book a sound conclusion. 
                  This 
                    book should not be treated as a regular computer science book. 
                    It is a recollection of a consultant's professional career 
                    on Java programming. All the new Java programmers should read 
                    this book by finding the specific chapter that is related 
                    to the current project. It might save the projects many design 
                    flaws down the road. Experienced Java programmers and project 
                    leaders will benefit from this book by comparing notes out 
                    of experience. It might even save the need for a consultant. 
                    If you are a consultant for Java programming, this book is 
                    your baby. 
                  Letters 
                    to the Editor are welcome and occasionally abused in public. 
                    Send e-mail to: whine@kickstartnews.com 
                  
                    
                    
                   
                  
                                        
                    
                   |