As you may have heard, Solid Code went to manufacturing a couple of weeks ago! As the authors of this book, Donis Marshall and I are really excited for its broad availability and hope that people will enjoy reading it as much as we enjoyed writing it. If you haven’t pre-ordered your copy yet, perhaps a quick overview of the book’s content will incent you to order one today! Let’s take a closer look at the scope of this title.
At its core, the book explores best practices for achieving greater code quality from nearly every facet of software development. Beginning with Chapter 1, “Code Quality in an Agile World,” we discuss how higher quality can be achieved in fast-paced, agile software development teams. The book then moves on to discuss topics like Class Design and Prototyping, Metaprogramming, Web Performance, Designing for Scale, Memory management, and Debugging, to name a few. The material in several chapters is further complemented by real-world case studies from various engineering teams within Microsoft, such as the Windows Live Hotmail and Live Search teams.
Here is an excerpt from the book’s Introduction:
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.
Also from the Introduction, here’s an overview of how the book is organized:
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.
Hopefully, these excerpts provide a good overview of what you can expect to learn by reading this book. The scope of the book is broad, but the content, advice, and examples are very practical. We were fortunate to have many great contributors and reviewers from both Microsoft and the industry, and we believe that readers will gain valuable insights from each chapter. So get out there and pick up a copy, and let us know what you think! We hope you enjoy it.
|Share this post :|