Practical C++ Design_ from programming to architecture-Apress (2018)
Throughout my career, I have mentored both students and fellow employees in programming, and many of them have suggested that I write my thoughts down in book form. However, I have typically responded with the rebuttal that I felt I had nothing novel to present. Being a largely self-taught programmer, I have always been able to rattle off a long list of books from which I have derived most of my knowledge. Therefore, what could I write about that has not already been said? I came to realize, however, that the majority of books t hat I encounter tend to focus only on pieces of design or implementation rather than taking a holistic approach. For example, if one wants to learn the C++ language, Stroustrup [24] or Lippman and Lajoie [15] are excellent references. For learning C++ best practices, one need only read the books by Sutter [25, 26, 27], Sutter and Alexandrescu [28], or Meyers [18, 17, 19]. Of course, learning to program extends well beyond C++. For data structures and algorithms, there are always the classics by Knuth [11, 12, 13] or the more accessible and concise book by Cormen et al [6]. To learn object-oriented analysis and design, the book by Booch et al [4] is an excellent reference. Of course, design patterns can be learned from Gamma et al [7], and general programming practices can be learned from many books such as those by McConnell [16], Spinellis [23], or Kernighan and Pike [10]. Certainly, the deeper the specialty one seeks, the more esoteric the book one can find (and should eventually read). This book is not such a book. Rather, I have striven to write a book that operates from the premise that the reader already possesses a working knowledge of the information encased in works such as the aforementioned titles. In this book, I instead attempt to ground the reader’s theoretical knowledge of design through practice using a single case study. hat I encounter tend to focus only on pieces of design or implementation rather than taking a holistic approach. For example, if one wants to learn the C++ language, Stroustrup [24] or Lippman and Lajoie [15] are excellent references. For learning C++ best practices, one need only read the books by Sutter [25, 26, 27], Sutter and Alexandrescu [28], or Meyers [18, 17, 19]. Of course, learning to program extends well beyond C++. For data structures and algorithms, there are always the classics by Knuth [11, 12, 13] or the more accessible and concise book by Cormen et al [6]. To learn object-oriented analysis and design, the book by Booch et al [4] is an excellent reference. Of course, design patterns can be learned from Gamma et al [7], and general programming practices can be learned from many books such as those by McConnell [16], Spinellis [23], or Kernighan and Pike [10]. Certainly, the deeper the specialty one seeks, the more esoteric the book one can find (and should eventually read). This book is not such a book. Rather, I have striven to write a book that operates from the premise that the reader already possesses a working knowledge of the information encased in works such as the aforementioned titles. In this book, I instead attempt to ground the reader’s theoretical knowledge of design through practice using a single case study.
暂无评论