Journal Articles

CVu Journal Vol 14, #4 - Aug 2002
Browse in : All > Journals > CVu > 144 (17)

Note: when you create a new publication type, the articles module will automatically use the templates user-display-[publicationtype].xt and user-summary-[publicationtype].xt. 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/yourtheme/modules/articles . The templates will get the extension .xt there.

Title: My Recommended Books Part 2

Author: Administrator

Date: 03 August 2002 13:15:54 +01:00 or Sat, 03 August 2002 13:15:54 +01:00

Summary: 

Body: 

Before we continue, here is the bit that got squeezed out last issue.

C++ Books continued

C++ FAQs (Second Edition) Marshall Cline, Greg Lomow, Mike Girou
Paperback - 602 pages 2nd Ed (23 February, 1999)
Addison Wesley; ISBN: 0201309831 Price: £30.99

From the back cover...

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 comp.lang.c++, Marshall Cline, Greg Lomow, and Mike Girou are familiar with C++ programmers most pressing concerns.

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 "mutable"; more significant changes, such as RTTI and namespaces; and such major innovations as the C++ Standard Library, including the STL.

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.

Why this book made it into the list...

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, accu-general

Windows/COM/ATL Books

Programming Applications for Microsoft Windows Jeffrey Richter
Hardcover - 1056 pages Bk&Cd Rom (September 1999)
Microsoft Press; ISBN: 1572319968 Price: £56.49

From the back cover...

Build Powerful Win32-based applications and prepare for you 64-bit future.

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.

Coverage Includes:

  • Understanding Windows 2000 features - such as jobs, thread-pooling PIs, Addressing Windowing extensions, Toolhelp functions and sparse files.

  • Mastering DLL basics and applying advanced techniques - including API hooking, DLL injection, function forwarders, delay loading, redirection, rebasing and binding.

  • Solving common thread-synchronisation problems with a toolkit of package reusable code.

  • Building high performance scaleable applications by understanding data alignment, cahce-line boundaries, cross-process critical sections, NUMA architectures and processor infinity.

  • Using structured exception handling to create memory efficient applications.

  • Transitioning to 64-bit development - see what's ahead by studying a full cache of code built and tested on Windows 2000.

Why this book made it into the list...

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, accu-general

Inside COM Dale Rogerson
Paperback - 350 pages (1996)
Microsoft Press International; ISBN: 1572313498 Price: £25.99

From the back cover...

COM without the complexity.

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:

  • A clear and simple, practical guide to building elegant COM components.

  • An eye-opening presentation of how accessible COM can be - especially for those who have already mastered C++.

  • An insightful, progressive view of COM design

  • Plenty of examples in the form of code samples

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.

Why this book made it into the list...

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

Essential COM Don Box
Paperback - 256 pages (2 February, 1998)
Addison Wesley; ISBN: 0201634465 Price: £30.99

From the back cover...

"Don Box makes it possible for mere mortals to join the COM cognoscenti. If you're a C++ COM programmer, buy this book." -David Chappell, Principal, Chappell & Associates and author of Understanding ActiveX and OLE.

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.

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.

Why this book made it into the list...

The reason this book made it into the list is very, very simple. Every time I posted a COM question to accu-general (which was quite frequently) the author of the reply would refer to Essential COM, by Don Box. - Paul Grenyer

Effective COM Don Box, Keith Brown, Tim Ewald, Chris Sells
Paperback - 224 pages Reissue (30 June, 1999)
Addison Wesley; ISBN: 0201379686 Price: £34.99

From the back cover...

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.

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.

Throughout this book, the issues unique to the MTS programming model are addressed in detail. Developers will benefit from such insight and wisdom as:

  • Define your interfaces before you define your classes (and do it in IDL).

  • Design with distribution in mind Dual interfaces are a hack.

  • Don't require people to implement them.

  • Don't access raw interface pointers across apartment boundaries.

  • Avoid creating threads from an in-process server.

  • Smart Interface Pointers add at least as much complexity as they remove.

  • CoInitializeSecurity is your friend. Learn it, love it, call it .

  • Use fine-grained authentication .

  • Beware exposing object references from the middle of a transaction hierarchy.

  • Don't rely on JIT activation for scalability.

...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.

Why this book made it into the list...

...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, accu-general

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, accu-general

Learning DCOM Thuan L. Thai
Paperback - 504 pages (April 1999)
O'Reilly UK; ISBN: 1565925815 Price: £23.50

From the back cover...

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.

Why this book made it into the list...

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

ATL Internals Brent E. Rector
Paperback - 544 pages Reissue (21 April, 1999)
Addison Wesley; ISBN: 0201695898 Price: £41.99

From the back cover...

"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!"-Christian Beaumont, ATL Development Lead, Microsoft Corporation.

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.

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:-

  • ATL Smart Types, such as CComPtr, CComVariant, and CComBSTR Objects in ATL, covering COM object responsibilities and ATL threading model support .

  • Servers in ATL, including ATLs class object implementations, managing server lifetime, self-registration, and server build optimisations.

  • Interface maps, focusing on the techniques C++ programmers can use to implement COM interfaces and how ATL supports these techniques.

  • Persistence and connection points Enumeration, covering both precalculated and dynamic data sets, and enumerating over an STL container ATL windowing classes.

  • Controls and Control Containment.

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.

Why this book made it into the list...

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

COM IDL and Interface Design Al Major
437 pages (February, 1999 )
Wrox Press; ISBN: 1861002254 Price: £45.99

From the back cover...

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.

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.

Why this book made it into the list...

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) & 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, accu-general

Programming/Patterns/UML Books

Design Patterns
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
(Also known as Gang of Four or GOF)
Hardcover - 224 pages Reissue (14 December, 1994)
Addison Wesley; ISBN: 0201633612 Price: £37.99

From the back cover...

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.

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.

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.

Why this book made it into the list...

Everyone I spoke to on ACCU General recommended having at least one patterns book and that this was the one to have. - Paul Grenyer

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 "lightbulb effect" as patterns start to suggest themselves when you're designing systems later on. - Sean Corfield, ACCU Book Reviews

The Practice of Programming Brian W. Kernighan, Rob Pike
Paperback - 256 pages (23 February, 1999)
Addison Wesley; ISBN: 020161586X Price: £22.99

From the back cover...

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.

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.

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:

  • Debugging- finding bugs quickly and methodically testingguaranteeing that software works correctly and reliably performance- making programs faster and more compact portability.

  • Ensuring that programs run everywhere without change design.

  • 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.

  • Using abstraction and information hiding to control the interactions between components style.

  • Writing code that works well and is a pleasure to read notation.

  • Choosing languages and tools that let the machine do more of the work.

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.

Why this book made it into the list...

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

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

The Pragmatic Programmer Andrew Hunt, Davis Thomas
Paperback - 300 pages (30 November, 1999)
Addison Wesley; ISBN: 020161622X Price: £26.99

From the back cover...

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.

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:

  • Fight software rot.

  • Avoid the trap of duplicating knowledge.

  • Write flexible, dynamic, and adaptable code.

  • Avoid programming by coincidence.

  • Bullet-proof your code with contracts, assertions, and exceptions.

  • Capture real requirements.

  • Test ruthlessly and effectively.

  • Delight your users

  • Build teams of pragmatic programmers

  • Make your developments more precise with automation.

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.

Why this book made it into the list...

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

Refactoring Martin Fowler
Paperback - 320 pages Reissue (31 July, 1999)
Addison Wesley; ISBN: 0201485672 Price: £30.99

From the back cover...

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, "nonoptimal" applications.

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 "refactoring," 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.

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.

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.

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.

Why this book made it into the list...

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, accu-general

It's a relatively easy read too, as it has points similar to the "Effective C++" books. - Terje Slettebø, accu-general

UML Distilled Martin Fowler, Kendall Scott
Paperback - 224 pages 2nd Ed (30 September, 1999)
Addison Wesley; ISBN: 020165783X Price: £22.99

From the back cover...

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.

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.

Why this book made it into the list...

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

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

How To Find These Books.

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 (http://www.wrox.com/).

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.

Notes: 

More fields may be available via dynamicdata ..