As Solid Code gets closer to publication, we have started to pull together the surrounding portions of the book. This includes sections like the introduction, forward, and acknowledgements to name a few. As an avid technical book reader, I have been guilty of not always reading these sections, but in reality there is good information to be gained from them. For grins, I thought I would write a post that includes a few excerpts from these sections.
For starters, we explain who this book is targeted toward…
Solid Code has something for every participant in the software development life cycle. More specifically, it is targeted toward application developers who are seeking best practices or advice for building higher quality software. There are portions of this book that illustrate the important role of engineering process as it relates to writing high quality code. There are other parts that focus on the criticality of testing. However, most of this book focuses on improving code quality during design and implementation, covering specific topics like class prototyping, performance, security, memory, and debugging.
This book targets both professional and casual developers. Readers should have a basic understanding of programming concepts and object oriented programming in C#. There are no skill level expectations. Solid Code is about the practical application of best practices for managed code application development. The topics discussed within the book should resonate with managed code developers of all skill levels.
Later, we discuss how the book is organized for the reader…
Solid Code is organized similarly to that of the application development life cycle. The chapters are not separated into parts, but rather grouped according to four key principles. These principles are outlined in Chapter 1, “Code Quality in an Agile World”, and include: Focus on Design, Defend and Debug, Analyze and Test, and Improve Processes and Attitudes.
Focus on Design One of the great themes of this book is the importance of thoughtful design as a means to improve overall product quality. To support this theme, practices such as class design and prototyping, metaprogramming, performance, scalability, and security are explored.
Defend and Debug Although great designs are critical to building a high quality software application, it is equally important to understand the pitfalls that hinder delivery of bug-free code. Topics such as memory management, defensive programming techniques, and debugging are all discussed in the context of this principle.
Analyze and Test Even the greatest programmers produce bugs despite following the recommended best practices. Therefore, it is important to discuss code analysis and
testing as methods for further improving code quality.
Improve Processes and Attitudes Beyond best practices, engineering processes and culture can have a great impact on the quality of the work being produced. We explore several key topics for improving the efficiency of the team as well as their passion for quality.
These excerpts from the book’s introduction should provide the reader with a good idea of what to expect from the book. Admittedly, it’s difficult to decide whether a book will be good or not until you really get deep into it. Hopefully, this introduction, coupled with numerous validations from readers and technical reviewers, and a powerful forward from John Robbins of Wintellect, will convince most readers that Solid Code is worth picking up. Of course, I recommend that every .NET developer have a copy.