C + + Programming Classics [Turn from 2004 Programmer magazine]--Next

Source: Internet
Author: User

The classics of C + + programming (Next article)

Glory

In my previous article I "Counted" tcpl and D&e, as well as introductory tutorials, efficient and robust programming, templates, and generic programming for a total of more than 10 C + + good books. Spring, let's continue the wonderful tour of C + + books.

Standard library

When I was working in the Institute, I worked with two other institutes in the same hospital to develop a large-scale hydro-project of dispatching integration. We have to communicate with each other in our three software systems. In debugging the communication module, the attentive customer (a studious system administrator) found that the interpretation code for the same communication protocol, I do not exceed 30 lines, and the other side of more than 150 lines and difficult to read. The system administrator was puzzled, I said that everyone's programming style and habits are different, I used the standard library, and he used the traditional C programming style and other techniques he used to.

don't get me wrong! I have no intention of belittling this partner. In fact, I often admire the programmers who really have a deep C programming skill. After all, C + + can have today's success largely because it is deeply rooted in C. As a C + + programmer, if you are unfamiliar with C + +, I tend to think that his basic skills are not solid, his technical clout is insufficient. But then again, C + + is a multi-paradigm (paradigm) programming language, specific to which programming style, professional programmers should know that depending on the situation. As a project leader who often needs to do impromptu development on site, I am accustomed to using existing libraries (and components) to fast track approach to address the priorities. Efficiency (and robustness) The well-proven C + + standard library is already there, so what's the fun without it?

Nicolai M. Josuttis, the C + + standard library:a Tutorial and Reference
C + + Standard Program library: Self-study tutorial and reference Manual, Huazhong University of Science and Technology press

This is an encyclopedia of the C + + standard library works, is a need to review the reference encyclopedia. It is unmatched in completeness, detail and accuracy. This book details the specifications and usage of each standard library component, covering the entire standard library, including flow and localization, and not just the STL. As the subtitle of this book shows, it is first suitable as a tutorial to read, and thereafter it can be used as a reference manual.

The easy-to-understand writing style makes the book very readable. If you want to learn the usage of the standard library and maximize its potential, you must have the book. As the web says, this book should not only be placed in your bookcase, but also on your computer desk. I highly recommend it to every professional C + + programmer.

Angelika Langer, Klaus Kreft, standard C + + iostreams and locales:advanced Programmer ' s Guide and Reference
"Standard C + + input and output stream and localization", people's post and telecommunications press

The C + + standard library consists of three parts: STL, Flow, and localization. There are a lot of books on STL, but rare flows and localization monographs. This book is one of the best in these two fields, and so far no book has discussed flow and localization more comprehensively than this one. If you are not content to stay in the "will use" stream library level, do not miss it.

In the summer of 2001, I skimmed through the Chinese version of the book, from the content to the packaging I left a more profound impression-but the majority of negative. In the fall of 2003, inadvertently learned that a network bookstore is at an ultra-low price sale of the book's Chinese version, can't help, a sigh of regret.

Scott Meyers, effective stl:50 specific Ways to Improve Your use of the standard Template Library
"Effective STL (photocopy)", China Power Press

After reading Scott's "effective C + +" and "more effective C + +", I have been looking forward to the Chinese version of the book. I learned from Mr. Pan's personal homepage that he and his partners seem to have completed the translation of the book, but it is still not available on the market so far. Fortunately, we can see the original version of it.

This book is a must-read for programmers using STL. In this book, Scott tells us about the working mechanisms of STL containers and algorithms and how to use them optimally. Like Scott's other works, the book's writing style is clear, precise, and highly readable. After reading this book, I think you might have the same idea as me and other C + + programmers: When will Scott write a "more effective STL"?

Regarding STL, I also remind you to pay attention to Matthew H. Austern's "Generic programming and the stl:using and extending the C + + standard Template Library" (" Generic programming and STL, China Power Press). The book exudes a strong academic atmosphere. Andrew Koenig and Barbara Moo at the end of the book "Accelerated C + +: Practical programming by Example" solemnly recommend the other two advanced books (in addition to their own "ruminations on c+ + "outside), one of which is tcpl, the other one is the book!

Network programming

In the age of network programming, C + + should play a role, let Ace (Adaptive Communications Environment) to tell you.

Douglas c. Schmidt, Stephen D. Huston, C + + Network programming, Volume 1:mastering complexity with ACE and Patterns
Douglas c. Schmidt, Stephen D. Huston, C + + Network programming, Volume 2:systematic reuse with ACE and frameworks
"C + + Network programming, Volume 1: Using Aces and patterns to eliminate complexity", Huazhong University of Science and Technology press
"C + + Network Programming, Volume 2: Systematic reuse based on ACE and framework", Electronic industry publishing house

Using C + + for Enterprise-Class networking programming, ACE (and these two books) is an option to consider today. ACE is an object-oriented, cross-platform, open source network programming framework with the goal of building high-performance network applications and middleware. Douglas is the founder of ACE, Stephen has provided several years of technical support and advisory services to ACE, and two are experts in the ACE community (yes, the impact of Ace and the extent to which it has been applied to a community).

ACE is not only sought after by universities and research institutes, it has been successfully used in thousands of business applications around the world. Ace has been and continues to play an important role in network systems in the fields of telecommunications, aerospace, medicine and finance. If you are ready to develop a high-performance communications system, you should consider the results of this collection of the world's top experts ' wisdom.

In addition to high-level language features such as C + + object-oriented design techniques and templates, Ace uses a number of patterns. The C + + network programming Volume 1 and Volume 2 not only teaches you all about Ace, it also teaches you advanced techniques such as patterns and universal framework design. So, as a middle and senior C + + programmer, even if you rarely do serious C + + network programming, reading these two books can also benefit from this.

Yes, not all network applications use Web servers (and other application servers) and heavyweight component models, and in other ways, they may also benefit from lightweight ACE components.

Miscellaneous

The following books are listed in the "Miscellaneous" unit only because I did not consider a more appropriate classification method, which, like the books above, is worth reading.

Bruce Eckel, thinking in C + +, Volume 1:introduction to standard C + + (2nd Edition)
Bruce Eckel, thinking in C + +, Volume 2:practical programming (Second Edition)
C + + Programming Ideas (2nd edition) Volume 1th: Standard C + + guidance, mechanical industry press
C + + Programming Thought (English version 2nd edition), Mechanical industry Press

The 1th edition of Thinking in C + + was awarded the book Shock Award by the magazine "Software Research and Development" in 1996. The latest version of the 2nd edition has been significantly rewritten and adapted to reflect the impact of C + + standardization and the latest research and practice in the object-oriented field in recent years. Advanced topics such as input input stream, multiple inheritance, exception handling, and run-time type recognition, along with the addition of C + + normalization, are placed in the second volume. Bruce is an experienced C + + lecturer and consultant whose training and writing experience is world-class, and his work is more appealing to readers than what "ensemble" technicians write. In fact, in similar books, for most readers, the book is more readable than tcpl and C + + Primer. Incidentally, visit the author's site, you can first see the second volume of demeanor.

Andrew Koenig, Barbara E. Moo, ruminations on C + +: A decade of programming Insight and Experience
"Meditation on C + +", people's post and telecommunications press

Andrew is one of the world's top C + + experts. This is a book on C + + programming ideas and program design techniques rather than language details. If you already have a foundation, this book will teach you how to think about C + + programming and how to express the solution. The whole book is technically expressive, and the text is understandable. Bjarne This book: The book covers "what C + + is, what C + + can do" insight.

Stanley B. Lippman, Inside the C + + Object Model
"Deep Exploration of C + + object Model", Huazhong University Press
"Deep Exploration of C + + object Model (photocopy)", China Power Press

Looking at C + + from the compiler's perspective can make you aware of it and know why. This book explores the underlying operational mechanisms of a large number of C + + object-oriented programming, including constructors, functions, temporary objects, inheritance, virtualization, instantiation of templates, exception handling, runtime type recognition, and other tradeoffs that are made in implementing the C + + object model process. C + + programmers who like to be inquisitive don't miss this book.

Erich Gamma, Richard Helm, Ralph Johnson, John vlissides, Design patterns:elements of reusable object-oriented software
"Design pattern: The basis of reusable object-oriented software", Mechanical industry Press
Design mode: The basis of reusable object-oriented software (English version), Mechanical industry Press

To design reusable object-oriented software, you need to master design patterns. This book is not written specifically for C + + programmers, but it uses C + + (and Smalltalk) as the primary example language, and C + + programmers are particularly easy to benefit from. The four authors are internationally recognized experts in the field of object-oriented software, and they document the design experience of object-oriented software in detail as design patterns. The influence of this book is so profound that four authors and the book are nicknamed Gof (Gang of four). The book is a rich, concise style of writing, although it is not as easy to read as some of the model books, but the real need to accurately understand the design patterns, this book is the ultimate authority. Learning Design Patterns, this book needs to be chewed again and again. Incidentally: Please set the design as a key to pioneering thinking, not to become the shackles of closed thinking.

There are also some C + + good books worth reading, which cannot be listed here. For example, John Lakos's book "large-scale C + + software Design" ("large-scale C + + programming", China Power Press) and Mr. Houtie's "STL Source Analysis"(Huazhong University of Science and Technology Press).

"STL Source Analysis" is a very unique book, but I think it can be better. I personally expect Mr. Houtie to write a "second Edition" that is more thorough, thorough and comprehensive, after settling and rethinking the template technology since the release of the first edition. Unfortunately, Mr. Houtie seems to have decided to say goodbye to templates, generics programming, and the STL field after completing the translation of the C + + templates:the Complete guide.

March 31, 2004 add: My current most frequently consulted reference books are "C + + Standard program Library" and "STL Source code Anatomy". Of course, this has a great relationship with my writing plan for the year.

Successful development of large-scale software systems using C + + requires not only a good understanding of the logical design issues described in most C + + books, but also the physical design techniques described in large-scale C + + programming. Of course, this book is a bit out of date, but if your energy and money are more roomy, buying a look is no harm.

At this point, I think it is necessary to state that some (good) books have not been recommended, the main reasons are as follows:

* The above books are enough and good enough.
* I will not recommend books that are hard to buy through normal channels-whether in Chinese or English.
* The size of the fame does not affect my recommendation. We are reading, not looking at people.
* I will not recommend books that I have never read. I have to at least read one of these versions (including electronic files). This "look", generally refers to "serious reading", but some can only be regarded as "browsing".

Conclusion

As a general technical translator, I am well aware of the hardships (and pleasures) of technical creation and translation, and have some knowledge of the details behind the creation, translation, production, publication and marketing of technical books. Today, I'm not going to tell a book that seems to be passable. The purpose of listing the various versions of the same book is simply to provide you with more information to give you a choice.

Later in this paper, I wrote a letter to Bjarne, asking if he would write this article. He gave me a concise suggestion. While affirming that most of the books listed above are the world's top-level C + + writings, Bjarne reminds me to recommend to expert programmers the C + + standard:incorporating Technical Corrigendum No. 1. This book is the "book edition" of the C + + standard specification, which Bjarne himself to order.

Bjarne also kindly reminded me that none of my referral lists helped C + + programmers do Windows programming-that's exactly what I meant. In this article, I only recommend and review platform-neutral C + + writings (except network programming)-independent of the operating system, independent of the integrated development environment, and I even fantasize that they have nothing to do with compilers. Depending on your business development needs, you can take a reading of your favorite areas related to C + + books.

Speaking of "system-independent, platform-neutral", I can't help but think of the concept of "abstraction layer". Developing a real-world C + + programmer that typically works in a specific operating system, a specific development environment, and a specific business domain, and a solid and deep grasp of the standard C + + and C + + standard libraries, is undoubtedly the "abstraction" cost that you can dash between different operating systems, different development environments, and different business domains.

C + + Programming Classics [Turn from 2004 Programmer magazine]--Next

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.