    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
     <channel>
        <title>ACCU  :: My Recommended Books Part 2</title>
        <link>https://members.accu.org/index.php/articles/1190</link>
        <description>Professionalism in Programming</description>
        <dc:language>en-us</dc:language> 
        <dc:creator>Administrator</dc:creator> 
        <admin:generatorAgent rdf:resource="http://www.xaraya.org" /> 
        <admin:errorReportsTo rdf:resource="mailto:webeditor@accu.org" />
       <sy:updatePeriod>hourly</sy:updatePeriod>
       <sy:updateFrequency>1</sy:updateFrequency>
       <docs>http://backend.userland.com/rss</docs>




<div class="xar-mod-head"><span class="xar-mod-title">CVu Journal Vol 14, #4 - Aug 2002</span></div>

<table border="0" cellpadding="1" cellspacing="0">
    <tbody>
    <tr>
        <td valign="top">
            Browse in :
       </td>
       <td valign="top">

                                            <a href="https://members.accu.org/index.php/articles/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c76/">Journals</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c77/">CVu</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c113/">144</a>
<br />
</td>
   </tr>
   </tbody>
</table>




<div class="xar-error">
   <p>
 <strong>Note:</strong> when you create a new publication type,
the articles module will automatically use the templates
<em>user-display-[publicationtype].xt</em>
and <em>user-summary-[publicationtype].xt</em>.
If those templates do not exist when you try to preview or display a new article,
you'll get this warning :-)  Please place your own templates in themes/<em>yourtheme</em>/modules/articles . The templates will get the extension .xt there. </p>
</div>
<div class="xar-norm xar-standard-box-padding">
   <h1><strong>Title:</strong>&nbsp;My Recommended Books Part 2</h1>
<p><strong>Author:</strong>&nbsp;</p>
<p>
<strong>Date:</strong> 03 August 2002 13:15:54 +01:00 or Sat, 03 August 2002 13:15:54 +01:00</p>
<p><strong>Summary:</strong>&nbsp;</p>
<p><strong>Body:</strong>&nbsp;<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e20" id="d0e20"></a></h2>
</div>
<p class="c2"><span class="remark">Before we continue, here is the
bit that got squeezed out last issue.</span></p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e25" id="d0e25"></a>C++ Books
continued</h2>
</div>
<div class="literallayout">
<p><span class="bold"><b>C++ FAQs (Second Edition) Marshall Cline,
Greg Lomow, Mike Girou<br>
Paperback - 602 pages 2nd Ed (23 February, 1999)<br>
Addison Wesley; ISBN: 0201309831 Price: &pound;30.99</b></span></p>
</div>
<p><span class="bold"><b>From the back cover...</b></span></p>
<p>In a concise and direct question-and-answer format, C++ FAQs,
Second Edition brings you the most efficient solutions to more than
four hundred of the practical programming challenges you face every
day. Moderators of the on-line C++ FAQ at <tt class=
"literal">comp.lang.c++</tt>, Marshall Cline, Greg Lomow, and Mike
Girou are familiar with C++ programmers most pressing concerns.</p>
<p>In this book, the authors concentrate on those issues most
critical to the professional programmer's work, and they present
more explanatory material and examples than is possible on-line.
This book focuses on the effective use of C++, helping programmers
avoid combining seemingly legal C++ constructs in incompatible
ways. This second edition is completely up-to-date with the final
ANSI/ISO C++ Standard. It covers some of the smaller syntax
changes, such as &quot;mutable&quot;; more significant changes, such as RTTI
and namespaces; and such major innovations as the C++ Standard
Library, including the STL.</p>
<p>In addition, this book discusses technologies such as Java,
CORBA, COM/COM+, and ActiveX - and the relationship all of these
have with C++. These new features and technologies are iconed to
help you quickly find what is new and different in this edition.
Each question-and-answer section contains an overview of the
problem and solution, fuller explanations of concepts, directions
for proper use of language features, guidelines for best practices
and practices to avoid, and plenty of working, stand-alone
examples. This edition is thoroughly cross-referenced and indexed
for quick access.</p>
<p><span class="bold"><b>Why this book made it into the
list...</b></span></p>
<div class="blockquote">
<blockquote class="blockquote">
<p>It's so useful for intermediate level programmers that in my
last job I persuaded the company to buy copies for each of their
20-odd developers. Again, it's broken into many small chunks, which
means that people can dip into it during their working day without
having to keep track of the big picture. - James Dennett,
<tt class="literal">accu-general</tt></p>
</blockquote>
</div>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e51" id="d0e51"></a>Windows/COM/ATL
Books</h2>
</div>
<div class="literallayout">
<p><span class="bold"><b>Programming Applications for Microsoft
Windows Jeffrey Richter<br>
Hardcover - 1056 pages Bk&amp;Cd Rom (September 1999)<br>
Microsoft Press; ISBN: 1572319968 Price:
&pound;56.49</b></span></p>
</div>
<p><span class="bold"><b>From the back cover...</b></span></p>
<p>Build Powerful Win32-based applications and prepare for you
64-bit future.</p>
<p>Here's the definitive instruction for advancing the next
generation of windows based applications - faster, sleeker and more
potent than ever. This fully updated version of the best selling
Advanced Windows digs even deeper into the advanced features and
state of the art techniques you can exploit for more robust Windows
development - inlcuind authoritative insights on the Windows 2000
operating system.</p>
<p>Coverage Includes:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>Understanding Windows 2000 features - such as jobs,
thread-pooling PIs, Addressing Windowing extensions, Toolhelp
functions and sparse files.</p>
</li>
<li>
<p>Mastering DLL basics and applying advanced techniques -
including API hooking, DLL injection, function forwarders, delay
loading, redirection, rebasing and binding.</p>
</li>
<li>
<p>Solving common thread-synchronisation problems with a toolkit of
package reusable code.</p>
</li>
<li>
<p>Building high performance scaleable applications by
understanding data alignment, cahce-line boundaries, cross-process
critical sections, NUMA architectures and processor infinity.</p>
</li>
<li>
<p>Using structured exception handling to create memory efficient
applications.</p>
</li>
<li>
<p>Transitioning to 64-bit development - see what's ahead by
studying a full cache of code built and tested on Windows 2000.</p>
</li>
</ul>
</div>
<p><span class="bold"><b>Why this book made it into the
list...</b></span></p>
<div class="blockquote">
<blockquote class="blockquote">
<p>Extensive, yet engaging, no holds barred coverage of the lower
level Windows API services that go much beyond the SDK
specifications. Essential reading and reference for the Windows
system programmer. - Phil Nash, <tt class=
"literal">accu-general</tt></p>
</blockquote>
</div>
<div class="literallayout">
<p><span class="bold"><b>Inside COM Dale Rogerson<br>
Paperback - 350 pages (1996)<br>
Microsoft Press International; ISBN: 1572313498 Price:
&pound;25.99</b></span></p>
</div>
<p><span class="bold"><b>From the back cover...</b></span></p>
<p>COM without the complexity.</p>
<p>Microsoft's Component Object Model (COM) has emerged as a vital
tool. It's the basis of Microsoft's Approach to distributed
computing. It's a powerful method of customizing applications,
present and future. And it's the foundation of OLE and ActiveX. In
short COM helps unlock the future or development. And the is the
book that unlocks COM. In it, you'll discover:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>A clear and simple, practical guide to building elegant COM
components.</p>
</li>
<li>
<p>An eye-opening presentation of how accessible COM can be -
especially for those who have already mastered C++.</p>
</li>
<li>
<p>An insightful, progressive view of COM design</p>
</li>
<li>
<p>Plenty of examples in the form of code samples</p>
</li>
</ul>
</div>
<p>Inside COM is for intermediate to advanced C++ programmers; COM;
ActiveX and OLE programmers; academics with an interest in computer
design; and programmers who want to use COM when it is ported to
UNIX, MVS and other environments. To put it simple, COM-based
interfaces are spreading fast - and if you work with any of them,
inside COM is written for you.</p>
<p><span class="bold"><b>Why this book made it into the
list...</b></span></p>
<div class="blockquote">
<blockquote class="blockquote">
<p>I was presented with this book in my first week of my first job,
when I had never even heard of COM and told it would tell me
everything I needed to know. How right they were. I find this book
very easy to read and understand. It doesn't deal with any sort of
boiler plate 'wizard' and teaches the reader exactly what is
happening within COM and how to derive and implement COM objects
from the very basics. - Paul Grenyer</p>
</blockquote>
</div>
<div class="literallayout">
<p><span class="bold"><b>Essential COM Don Box<br>
Paperback - 256 pages (2 February, 1998)<br>
Addison Wesley; ISBN: 0201634465 Price: &pound;30.99</b></span></p>
</div>
<p><span class="bold"><b>From the back cover...</b></span></p>
<p>&quot;Don Box makes it possible for mere mortals to join the COM
cognoscenti. If you're a C++ COM programmer, buy this book.&quot; -David
Chappell, Principal, Chappell &amp; Associates and author of
Understanding ActiveX and OLE.</p>
<p>Written by a leading COM authority, this unique book reveals the
essence of COM, helping developers to truly understand the why, not
just the how, of COM. Understanding the motivation for the design
of COM and its distributed aspects is critical for developers who
wish to go beyond simplistic applications of COM and become truly
effective COM programmers. As the COM programming model continues
to evolve, such insight also becomes essential to remaining current
with extensions, such as Microsoft Transaction Server and COM+. By
showing you why Distributed COM works as it does, Don Box enables
you to apply the model creatively and effectively to everyday
programming problems.</p>
<p>This book examines COM from the perspective of a C++ developer,
offering a familiar frame of reference to ease you into the topic.
You will also find comprehensive coverage of the core concepts of
Distributed COM (interfaces, classes, apartments, and
applications), including detailed descriptions of COM theory, the
C++ language mapping, COM IDL (Interface Definition Language), the
remoting architecture, IUnknown, monikers, threads, marshalers,
security, and more. In addition, the book offers a thorough
explanation of COM is basic vocabulary, provides a complete
Distributed COM application to illustrate programming techniques,
and includes the authors tested library of COM utility code.</p>
<p><span class="bold"><b>Why this book made it into the
list...</b></span></p>
<p>The reason this book made it into the list is very, very simple.
Every time I posted a COM question to <tt class=
"literal">accu-general</tt> (which was quite frequently) the author
of the reply would refer to Essential COM, by Don Box. - Paul
Grenyer</p>
<div class="literallayout">
<p><span class="bold"><b>Effective COM Don Box, Keith Brown, Tim
Ewald, Chris Sells<br>
Paperback - 224 pages Reissue (30 June, 1999)<br>
Addison Wesley; ISBN: 0201379686 Price: &pound;34.99</b></span></p>
</div>
<p><span class="bold"><b>From the back cover...</b></span></p>
<p>In Effective COM, the authors, Don Box, Keith Brown, Tim Ewald,
and Chris Sells, offer 50 concrete guidelines for creating COM
based applications that are more efficient, robust, and
maintainable.</p>
<p>Drawn from the authors extensive practical experience working
with and teaching COM, these rules of thumb, pitfalls to avoid, and
experiencebased pointers will enable you to become a more
productive and successful COM programmer. These guidelines appear
under six major headings- the transition from C++ to COM;
interfaces, the fundamental element of COM development;
implementation issues; the unique concept of apartments; security;
and transactions.</p>
<p>Throughout this book, the issues unique to the MTS programming
model are addressed in detail. Developers will benefit from such
insight and wisdom as:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>Define your interfaces before you define your classes (and do it
in IDL).</p>
</li>
<li>
<p>Design with distribution in mind Dual interfaces are a hack.</p>
</li>
<li>
<p>Don't require people to implement them.</p>
</li>
<li>
<p>Don't access raw interface pointers across apartment
boundaries.</p>
</li>
<li>
<p>Avoid creating threads from an in-process server.</p>
</li>
<li>
<p>Smart Interface Pointers add at least as much complexity as they
remove.</p>
</li>
<li>
<p>CoInitializeSecurity is your friend. Learn it, love it, call it
.</p>
</li>
<li>
<p>Use fine-grained authentication .</p>
</li>
<li>
<p>Beware exposing object references from the middle of a
transaction hierarchy.</p>
</li>
<li>
<p>Don't rely on JIT activation for scalability.</p>
</li>
</ul>
</div>
<p>...and much more invaluable advice. For each guideline, the
authors present a succinct summary of the challenge at hand,
extensive discussion of their rationale for the advice, and many
compilable code examples. Readers will gain a deeper understanding
of COM concepts, capabilities, and drawbacks, and the know-how to
employ COM effectively for high quality distributed application
development.</p>
<p><span class="bold"><b>Why this book made it into the
list...</b></span></p>
<div class="blockquote">
<blockquote class="blockquote">
<p>...Written in the point by point short advice then explanation
style of Scott Meyers' books. A slim volume but packed with useful
information about more than just DCOM. - Garry Lancaster,
<tt class="literal">accu-general</tt></p>
</blockquote>
</div>
<div class="blockquote">
<blockquote class="blockquote">
<p>If you are looking at doing a lot more with COM/ATL then I would
suggest two books for you. 1. Effective COM, Don Box et al. 2. ATL
Internals, Rector, Sells. - David Williams, <tt class=
"literal">accu-general</tt></p>
</blockquote>
</div>
<div class="literallayout">
<p><span class="bold"><b>Learning DCOM Thuan L. Thai<br>
Paperback - 504 pages (April 1999)<br>
O'Reilly UK; ISBN: 1565925815 Price: &pound;23.50</b></span></p>
</div>
<p><span class="bold"><b>From the back cover...</b></span></p>
<p>This book introduces C++ programmers to DCOM and gives them the
basic tools they need to write secure, maintainable programs. It
clearly describes the C++ code needed to create distributed
components and the communications exchanged between systems and
objects, providing background, a guide to Visual C++ development
tools and wizards, and insight for performance tuning, debugging,
and understanding what the system is doing with your code.</p>
<p><span class="bold"><b>Why this book made it into the
list...</b></span></p>
<div class="blockquote">
<blockquote class="blockquote">
<p>There are a lot of good COM and ATL books out there, but all of
the ones I've read so far only really scratch the surface of DCOM.
This is another COM book like any other in as much as it discusses
the fundamentals of COM and how to use boiler plate tools such as
the ATL. Where it really scores above the other books is its
section on client techniques. - Paul Grenyer</p>
</blockquote>
</div>
<div class="literallayout">
<p><span class="bold"><b>ATL Internals Brent E. Rector<br>
Paperback - 544 pages Reissue (21 April, 1999)<br>
Addison Wesley; ISBN: 0201695898 Price: &pound;41.99</b></span></p>
</div>
<p><span class="bold"><b>From the back cover...</b></span></p>
<p>&quot;Brent and Chris are always technically accurate and present the
information in a well written, easy to understand manner... I
bought it and I'm the ATL Development Lead!&quot;-Christian Beaumont,
ATL Development Lead, Microsoft Corporation.</p>
<p>The Active Template Library (ATL) is a set of small, efficient,
and flexible classes that facilitate the creation of interoperable
COM components. Written for experienced COM and Visual C++
programmers, this book provides in-depth coverage of ATLs inner
workings. It offers insight into the rationale behind ATL design,
explains its architectural underpinnings, shows how ATL maps to
COM, and describes important implementation details.</p>
<p>With coverage current through ATL version 3.0, ATL Internals
includes an overview of the Wizards but then goes well beyond the
basics. The authors provide the detailed information needed to
utilize ATL to its greatest advantage and work around its
shortcomings. You will find detailed coverage of such topics
as:-</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>ATL Smart Types, such as CComPtr, CComVariant, and CComBSTR
Objects in ATL, covering COM object responsibilities and ATL
threading model support .</p>
</li>
<li>
<p>Servers in ATL, including ATLs class object implementations,
managing server lifetime, self-registration, and server build
optimisations.</p>
</li>
<li>
<p>Interface maps, focusing on the techniques C++ programmers can
use to implement COM interfaces and how ATL supports these
techniques.</p>
</li>
<li>
<p>Persistence and connection points Enumeration, covering both
precalculated and dynamic data sets, and enumerating over an STL
container ATL windowing classes.</p>
</li>
<li>
<p>Controls and Control Containment.</p>
</li>
</ul>
</div>
<p>If you want to optimise ATL by learning effective techniques
that reduce the time you spend writing boilerplate COM code, there
is no better resource than this book.</p>
<p><span class="bold"><b>Why this book made it into the
list...</b></span></p>
<div class="blockquote">
<blockquote class="blockquote">
<p>is written by the inventor of ATL, while the sales blurb on the
back reads like a 'who is who' of ATL and COM. I was not surprised
to find that it lived up to my expectations. The book is very much
in depth, in places I have often wondered if one really needs to
know ALL the detail. I have never yet needed to know some of the
things that this book covers and I do not expect I will, however if
you often have to work with multibyte character sets you will
appreciate the in-depth discussion of the appropriate types. For
technical in depth detail of ATL this may be your book, but it is
certainly not ideal for learning ATL. - John Crickett, ACCU Book
Reviews</p>
</blockquote>
</div>
<div class="literallayout">
<p><span class="bold"><b>COM IDL and Interface Design Al Major<br>
437 pages (February, 1999 )<br>
Wrox Press; ISBN: 1861002254 Price: &pound;45.99</b></span></p>
</div>
<p><span class="bold"><b>From the back cover...</b></span></p>
<p>This book clearly explains the syntax and usage of IDL, but
that's only the beginning of the story. You'll also learn how to
write efficient interfaces in a way that facilitates their use from
languages other than C++. You'll get a comprehensive (over 40) list
of interface and object design techniques and guidelines that
shorten your design learning curve and pay for the price of the
book.</p>
<p>The book places all of this in context by demonstrating C++/ATL
code that implements an On-Line Auction. You'll see sophisticated
COM techniques, such as Alternate Identity, Delayed Initialisation,
Split Identity, multiple scriptable IDispatch interfaces,
persistence delegation, marshalling structures with embedded
pointers, using IMallocSpy, etc.</p>
<p><span class="bold"><b>Why this book made it into the
list...</b></span></p>
<div class="blockquote">
<blockquote class="blockquote">
<p>The contents of the book cover COM and IDL basics, Remote Method
Calls, Automation and Tool Support, a particularly good section on
Application Design - covering both client and server issues in
multiple languages (after all COM components are supposed to be
language agnostic) &amp; common COM patterns and protocols, and a
case study (in this case an online auction system) tying this all
together. Understanding IDL and the benefits of writing it
yourself, rather than leaving it to the wizards, is a skill I think
all serious (by that I mean day-in day-out users of, like me) COM
developers should acquire. This book should be a hyperlink from
point 1 in Effective COM. 'Define your interfaces before your
classes (and do it in IDL)'. - David Williams, <tt class=
"literal">accu-general</tt></p>
</blockquote>
</div>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e271" id=
"d0e271"></a>Programming/Patterns/UML Books</h2>
</div>
<div class="literallayout">
<p><span class="bold"><b>Design Patterns<br>
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides<br>
(Also known as Gang of Four or GOF)<br>
Hardcover - 224 pages Reissue (14 December, 1994)<br>
Addison Wesley; ISBN: 0201633612 Price: &pound;37.99</b></span></p>
</div>
<p><span class="bold"><b>From the back cover...</b></span></p>
<p>The authors begin by describing what patterns are and how they
can help you design object-oriented software. They then go on to
systematically name, explain, evaluate, and catalogue recurring
designs in objectoriented systems. With Design Patterns as your
guide, you will learn how these important patterns fit into the
software development process, and how you can leverage them to
solve your own design problems most efficiently.</p>
<p>Each pattern describes the circumstances in which it is
applicable, when it can be applied in view of other design
constraints, and the consequences and trade-offs of using the
pattern within a larger design.</p>
<p>All patterns are compiled from real systems and are based on
real-world examples. Each pattern also includes code that
demonstrates how it may be implemented in object-oriented
programming languages like C++ or Smalltalk.</p>
<p><span class="bold"><b>Why this book made it into the
list...</b></span></p>
<div class="blockquote">
<blockquote class="blockquote">
<p>Everyone I spoke to on ACCU General recommended having at least
one patterns book and that this was the one to have. - Paul
Grenyer</p>
</blockquote>
</div>
<div class="blockquote">
<blockquote class="blockquote">
<p>You probably don't need me to tell you, but this is a very
rewarding book. Buy it and dip into it a few times and you'll find
yourself coming back to it time and time again. The reward comes
from the &quot;lightbulb effect&quot; as patterns start to suggest themselves
when you're designing systems later on. - Sean Corfield, ACCU Book
Reviews</p>
</blockquote>
</div>
<div class="literallayout">
<p>The Practice of Programming Brian W. Kernighan, Rob Pike<br>
Paperback - 256 pages (23 February, 1999)<br>
Addison Wesley; ISBN: 020161586X Price: &pound;22.99</p>
</div>
<p><span class="bold"><b>From the back cover...</b></span></p>
<p>With the same insight and authority that made their book The
Unix Programming Environment a classic, Brian Kernighan and Rob
Pike have written The Practice of Programming to help make
individual programmers more effective and productive.</p>
<p>The practice of programming is more than just writing code.
Programmers must also assess tradeoffs, choose among design
alternatives, debug and test, improve performance, and maintain
software written by themselves and others. At the same time, they
must be concerned with issues like compatibility, robustness, and
reliability, while meeting specifications.</p>
<p>The Practice of Programming covers all these topics, and more.
This book is full of practical advice and real-world examples in C,
C++, Java, and a variety of special-purpose languages. It includes
chapters on:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>Debugging- finding bugs quickly and methodically
testingguaranteeing that software works correctly and reliably
performance- making programs faster and more compact
portability.</p>
</li>
<li>
<p>Ensuring that programs run everywhere without change design.</p>
</li>
<li>
<p>Balancing goalsChoosing languages and tools that let the machine
do more of the work. and constraints to decide which algorithms and
data structures are best interfaces.</p>
</li>
<li>
<p>Using abstraction and information hiding to control the
interactions between components style.</p>
</li>
<li>
<p>Writing code that works well and is a pleasure to read
notation.</p>
</li>
<li>
<p>Choosing languages and tools that let the machine do more of the
work.</p>
</li>
</ul>
</div>
<p>Kernighan and Pike have distilled years of experience writing
programs, teaching, and working with other programmers to create
this book. Anyone who writes software will profit from the
principles and guidance in The Practice of Programming.</p>
<p><span class="bold"><b>Why this book made it into the
list...</b></span></p>
<div class="blockquote">
<blockquote class="blockquote">
<p>Pick up a copy, choose any chapter and start reading. I think
you will then feel motivated to buy yourself a copy, though you
might pretend that it was to give to some pestilential colleague
whose code was always unreadable, bug-ridden and untested. Whatever
language you program in I think you will benefit from reading this
book (even if for some rare readers it is just a warm feeling of
having been doing the right things all along). - Francis
Glassborow, ACCU Book Reviews</p>
</blockquote>
</div>
<div class="blockquote">
<blockquote class="blockquote">
<p>Whilst it is not written for students it should be one of the
first books students buy and by inference lecturers should get it
before the students do! It will stop students (I hope) gaining some
of the 'interesting' processes they seem to collect. It will also
speed things up as learning from some one else's mistakes leaves
you more time to do what you should be doing. If you are not doing
embedded C programming (where you should be using the MISRA-C
guide) this will be an invaluable book. It is small and the actual
text being clear and concise, easy enough to read. At the back is a
very useful list of one line 'rules' sub-divided into categories
such as style, interfaces testing, etc. It is the sort of book you
can dip into time and time again, as the chapters are
self-contained. - Chris Hills, ACCU Book Reviews</p>
</blockquote>
</div>
<div class="literallayout">
<p>The Pragmatic Programmer Andrew Hunt, Davis Thomas<br>
Paperback - 300 pages (30 November, 1999)<br>
Addison Wesley; ISBN: 020161622X Price: &pound;26.99</p>
</div>
<p><span class="bold"><b>From the back cover...</b></span></p>
<p>Ward Cunningham come straight from the programming trenches, The
Pragmatic Programmer cuts through the increasing specialization and
technicalities of modern software development to examine the core
process - taking a requirement and producing working, maintainable
code that delights its users.</p>
<p>It covers topics ranging from personal responsibility and career
development to architectural techniques for keeping your code
flexible and easy to adapt and reuse. Read this book, and you'll
learn how to:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>Fight software rot.</p>
</li>
<li>
<p>Avoid the trap of duplicating knowledge.</p>
</li>
<li>
<p>Write flexible, dynamic, and adaptable code.</p>
</li>
<li>
<p>Avoid programming by coincidence.</p>
</li>
<li>
<p>Bullet-proof your code with contracts, assertions, and
exceptions.</p>
</li>
<li>
<p>Capture real requirements.</p>
</li>
<li>
<p>Test ruthlessly and effectively.</p>
</li>
<li>
<p>Delight your users</p>
</li>
<li>
<p>Build teams of pragmatic programmers</p>
</li>
<li>
<p>Make your developments more precise with automation.</p>
</li>
</ul>
</div>
<p>Written as a series of self-contained sections and filled with
entertaining anecdotes, thoughtful examples, and interesting
analogies, The Pragmatic Programmer illustrates the best practices
and major pitfalls of many different aspects of software
development. Whether you're a new coder, an experienced programmer,
or a manager responsible for software projects, use these lessons
daily, and you'll quickly see improvements in personal
productivity, accuracy, and job satisfaction. You'll learn skills
and develop habits and attitudes that form the foundation for
long-term success in your career. You'll become a Pragmatic
Programmer.</p>
<p><span class="bold"><b>Why this book made it into the
list...</b></span></p>
<div class="blockquote">
<blockquote class="blockquote">
<p>For me this is one of those 'must read' books. Even though much
of the content will be obvious to experienced programmers it is
always pleasant to have your opinions confirmed by others and when
they are as well articulated as you will find them in this book you
really should not begrudge the authors their royalties. Overall
this book is well written in highly readable English and is full of
common sense coupled with insights that maybe new to many readers.
For me this is a great book to start the new century, I think you
will agree. - Francis Glassborow, ACCU Book Reviews</p>
</blockquote>
</div>
<div class="literallayout">
<p><span class="bold"><b>Refactoring Martin Fowler<br>
Paperback - 320 pages Reissue (31 July, 1999)<br>
Addison Wesley; ISBN: 0201485672 Price: &pound;30.99</b></span></p>
</div>
<p><span class="bold"><b>From the back cover...</b></span></p>
<p>As the application of object technology-particularly the Java
programming language-has become commonplace, a new problem has
emerged to confront the software development community. Significant
numbers of poorly designed programs have been created by
less-experienced developers, resulting in applications that are
inefficient and hard to maintain and extend. Increasingly, software
system professionals are discovering just how difficult it is to
work with these inherited, &quot;nonoptimal&quot; applications.</p>
<p>For several years, expert-level object programmers have employed
a growing collection of techniques to improve the structural
integrity and performance of such existing software programs.
Referred to as &quot;refactoring,&quot; these practices have remained in the
domain of experts because no attempt has been made to transcribe
the lore into a form that all developers could use. . .until
now.</p>
<p>In Refactoring - Improving the Design of Existing Code, renowned
object technology mentor Martin Fowler breaks new ground,
demystifying these master practices and demonstrating how software
practitioners can realize the significant benefits of this new
process. With proper training a skilled system designer can take a
bad design and rework it into welldesigned, robust code.</p>
<p>In this book, Martin Fowler shows you where opportunities for
refactoring typically can be found, and how to go about reworking a
bad design into a good one. Each refactoring step is simple -
seemingly too simple to be worth doing. Refactoring may involve
moving a field from one class to another, or pulling some code out
of a method to turn it into its own method, or even pushing some
code up or down a hierarchy. While these individual steps may seem
elementary, the cumulative effect of such small changes can
radically improve the design.</p>
<p>Refactoring is a proven way to prevent software decay. In
addition to discussing the various techniques of refactoring, the
author provides a detailed catalogue of more than seventy proven
refactorings with helpful pointers that teach you when to apply
them; step-by-step instructions for applying each refactoring; and
an example illustrating how the refactoring works. The illustrative
examples are written in Java, but the ideas are applicable to any
object-oriented programming language.</p>
<p><span class="bold"><b>Why this book made it into the
list...</b></span></p>
<div class="blockquote">
<blockquote class="blockquote">
<p>It's the last book I read that changed my view of how I work
with code, both improving existing code and working on new code. -
James Dennett, <tt class="literal">accu-general</tt></p>
</blockquote>
</div>
<div class="blockquote">
<blockquote class="blockquote">
<p>It's a relatively easy read too, as it has points similar to the
&quot;Effective C++&quot; books. - Terje Sletteb&oslash;, <tt class=
"literal">accu-general</tt></p>
</blockquote>
</div>
<div class="literallayout">
<p><span class="bold"><b>UML Distilled Martin Fowler, Kendall
Scott<br>
Paperback - 224 pages 2nd Ed (30 September, 1999)<br>
Addison Wesley; ISBN: 020165783X Price: &pound;22.99</b></span></p>
</div>
<p><span class="bold"><b>From the back cover...</b></span></p>
<p>Now widely adopted as the de facto industry standard and
sanctioned by the Object Management Group, the Unified Modelling
Language (UML) is a notation all software developers need to know
and understand. However, the UML is a big language, and not all of
it is equally important. The award-winning first edition of UML
Distilled was widely praised for being a concise guide to the core
parts of the UML and has proved extremely successful in helping
developers get up and running quickly. UML Distilled, Second
Edition, maintains the concise format with significantly updated
coverage of use cases and activity diagrams, and expanded coverage
of collaborations. It also includes a new appendix detailing the
changes between UML versions.</p>
<p>Written for those with a basic understanding of object-oriented
analysis and design, this book begins with a summary of UMLs
history, development, and rationale and then moves into a
discussion of how the UML can be integrated into the
object-oriented development process. The primary author profiles
the various modeling techniques in the UML- such as use cases,
class diagrams, and interaction diagrams-and describes the notation
and semantics clearly and succinctly. He also outlines useful
non-UML techniques such as CRC cards and patterns. These
descriptions are made even more relevant with a collection of best
practices based on the primary authors experience and a brief Java
programming example demonstrating the implementation of a UML-based
design. With this tour of the key parts of the UML, readers will be
left with a firm foundation upon which to build models and develop
further knowledge of the Unified Modelling Language.</p>
<p><span class="bold"><b>Why this book made it into the
list...</b></span></p>
<div class="blockquote">
<blockquote class="blockquote">
<p>Some time ago I was enquiring on ACCU General about leaning UML
and which books were the best. Nearly everyone recommended this
book and I am now about halfway through reading it and find it very
easy to read and understand. - Paul Grenyer</p>
</blockquote>
</div>
<div class="blockquote">
<blockquote class="blockquote">
<p>If Object-Oriented Analysis and Design methodology is important
to you (and anyone involved in writing anything beyond simple
applications should consider a degree of formal analysis and design
important) you will need to get to grips with UML. So all I can say
is, start here. At least you can be certain that the skills you
develop will be portable. - Francis Glassborow, ACCU Book
Reviews</p>
</blockquote>
</div>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e432" id="d0e432"></a>How To Find
These Books.</h2>
</div>
<p>All of these books are available from Amazon in the UK with the
exception of COM IDL and Interface Design by Al Major which is
available direct from Wrox Press (<a href="???" target=
"_top">http://www.wrox.com/</a>).</p>
<p>I personally buy all my books from one supplier who offers at
least a 10% discount on every book and often a much greater one. So
as not to turn this article into (more of) an advert I won't
mention their name. However, I would be pleased to pass the details
onto anyone who cares to email me.</p>
</div>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
