Code Craft: The Practice of Writing Excellent Code
Many programmers know how to write correct code - code that works. But not all know how to craft great code - code that is well written and easy to understand. Code Craft teaches programmers how to move beyond writing correct code to writing great code. The book covers code writing concerns, including code presentation style, variable naming, error handling, and security; and the wider issues of programming in the real world, such as good teamwork, development processes, and documentation. Code Craft presents language-agnostic advice that is relevant to all developers, from an author with loads of practical experience. A Q&A section at the end of each chapter helps readers to review the material and makes the book suited for academic use as well.
Review By: Daniel Luciano
12/10/2007The book Code Craft: The Practice of Writing Excellent Code by Pete Goodliffe is an excellent book for novice programmers. This book describes the ins and outs of software development beyond the information that most would-be programmers receive either in college or in a technical program. The book offers many excellent ideas and suggestions that go beyond just writing code. The book give practical advice on topics ranging from when and how to write comments, naming variables in a sensible manner, to writing bug free code at the beginning of the coding process. The book also gives a good overview of how to write code with other programmer in a typical work environment.
The book is divided in six parts, each containing several chapters about a particular topic. Each chapter contains key concepts based on the topic the author is currently discussing. You will not find many code examples in this book; instead you will find useful information and advice. There are code examples when needed, for example in the chapters on coding layout and self-documenting code.
I believe a part of the book that’s the most useful is titled “Part of the Process,” which contains chapters dedicated to the software development process. This section discusses topics that are very difficult for the beginner to understand. The section gives good coverage on writing software specification, performing the dreaded code review, and the mysterious art of make estimation on completion of work.
I would highly recommend this book for the novice software developer. The book offers timeless information to those individuals. This book would also be very useful to someone in a mentoring position, while instructing the novice about the day-to-day issues facing new programmers. Mentors can make use of the book to help them with the raining of junior programmers that may be joining their development staffs.