24.

Books

The Definition of Standard ML—Revised (MIT Press, May 1997), provides a formal definition of Standard ML, a general-purpose programming language designed for large projects.

The Structure and Interpretation of Computer Programs, by Abelson and Sussman (MIT Press, 1985), is an old but extraordinary book. After all of these years, it's still the single best computer science text I know of. If one were to read only one book on computer science, it should be this book.

Security Engineering: A Guide to Building Dependable Distributed Systems, by Anderson (John Wiley & Sons, 2001), presents a comprehensive design tutorial to designing secure systems that illustrates basic concepts through real-world system design successes and failures.

Object-Oriented Analysis and Design, by Booch (Addison-Wesley, 1994), was a pivotal book in the OO-design movement, and is still quite relevant today.

The Mythical Man-Month, by Brooks (Addison-Wesley, 1975), was the seminal text on software engineering. It's interesting to read this text and consider how extreme programming addresses many of the problems arising from software construction discussed in that book.

Analysis Patterns, by Fowler (Addison-Wesley, 1997), is a great source of ideas on how to think about a problem domain before you even start coding for it.

Design Patterns: Elements of Reusable Object-Oriented Software, by Gamma (Addison-Wesley, 1995), is the canonical source for design patterns. The 1998 update includes a CD with sample code and 23 cut-and-paste patterns.

Extreme Programming Installed, by Jeffries, Anderson, and Hendrickson (Addison-Wesley, 2001), is a great introduction to extreme programming, with a heavy emphasis on specific practices and techniques. This book is required reading for all developers on the JavaPLT development team.

The Pragmatic Programmer, by Hunt and Thomas (Addison-Wesley, 2000), provides a wealth of specific programming advice and tips.

Types and Programming Languages, by Pierce (MIT Press, 2002), is an advanced text on the semantics of programming languages and type systems. It's not light reading, but it is extremely well written, and it includes a chapter on Featherweight Java, a simple formalized sublanguage of Java.

Toward Zero-Defect Programming, by Stavely (Addison-Wesley, 1999), is a bold attempt to outline a programming approach that tries to minimize programming bugs. Although this book neglects unit tests and focuses on formalisms, assertions, and proofs, there's no reason why the techniques discussed can't be used as an augmentation to an extreme programming approach. When trying to minimize bugs, we should bring all arms to bear on the problem.

Component Software: Beyond Object-Oriented Programming, by Szyperski (Addison-Wesley, 1998), discusses the distinction between interface and implementation inheritance in this excellent book.

User-Interface Design for Programmers, by Spolsky (Apress, 2001), provides great advice on how to set up GUIs that users will enjoy using (and will be productive with).

Extreme Programming Explained, by Succi and Marchesi (Addison-Wesley, 2001), contains many great articles on various aspects of extreme programming, applied in various settings (including academic ones).

Bitter Java, by Tate (Manning Publications, 2002), is an excellent and wellwritten introduction to the world of antipatterns.

John Zukowski's Guide to Swing, by Zukowski (Apress, 2000), is an indispensable guide for working with the subtleties of the Java Swing libraries.



Bug Patterns in Java
Bug Patterns In Java
ISBN: 1590590619
EAN: 2147483647
Year: N/A
Pages: 95
Authors: Eric Allen

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net