

File Size: 4250 KB
Print Length: 960 pages
Simultaneous Device Usage: Up to 5 simultaneous devices, per publisher limits
Publisher: Microsoft Press; 2 edition (June 9, 2004)
Publication Date: June 9, 2004
Sold by: Digital Services LLC
Language: English
ASIN: B00JDMPOSY
Text-to-Speech: Enabled
X-Ray: Enabled
Word Wise: Enabled
Lending: Not Enabled
Enhanced Typesetting: Not Enabled
Best Sellers Rank: #56,596 Paid in Kindle Store (See Top 100 Paid in Kindle Store) #3 in Kindle Store > Kindle eBooks > Computers & Technology > Networking > Client-Server Systems #11 in Kindle Store > Kindle eBooks > Computers & Technology > Software > Business #12 in Books > Computers & Technology > Networking & Cloud Computing > Data in the Enterprise > Client-Server Systems

The tragedy for books that become classics is that there are many more people who have heard of them (or perhaps also bought them) than people who have read them. In this case, the fact that Steve McConnell's "Code Complete" is approximately 900 pages long doesn't help, either. Even so, this is a book that not only deserves to be read, but also rewards multiple readings.The Good: McConnell deserves credit for writing the first (and only?) readable encyclopedia of best practices on software quality, covering topics such as how to build classes, use data and control structures, debug, refactor, and code-tune. Yes, it would be nice if the book was updated to include substantive material on languages like Ruby or Python (cf. p. 65, Python "also contains some support for creating larger programs") but, in the words of Gertrude Stein, "Not everything can be about everything" -- though Code Complete does come pretty close. This book contains an astonishing number of practical points on a variety of topics. Here is a quasi-random selection: a) don't use booleans as status variables (chs. 5, 12), b) when you feel the need to override a function and have it do nothing, don't; refactor instead (ch. 6), c) when choosing variable names, avoid homonyms (ch. 11), d) if you decide to use a goto, indenting your code properly will be difficult or impossible (ch. 17), e) trying to improve software quality by increasing the amount of testing is like trying to lose weight by weighing yourself more often (ch. 22), f) make your code so good that you don't need comments, and then comment it to make it even better (ch. 32), and finally the oft-repeated g) you should try to program into your language, not in it (ch. 34). McConnell also sprinkles the text with classic words of wisdom, e.g.
I don't know how much more I can say about this book that hasn't been said already but I will do my best to describe my experience with this book.Have you ever looked at a class, or a method that seems to work fine but it just doesn't "feel" right? For some reason it seems as if that method or class may be hard to debug in the future or that the code is hard to understand. Or have you gone back to a class file you wrote months ago and you spend an awful lot of time trying to figure out what the heck is going on with that class file? Maybe the methods in the class are spaghetti like in nature, or maybe the names of your methods don't have a very good description so it's hard to figure out how everything ties together. I have had this problem. This book will teach you how to get out of those habits. You will learn what a solid class or method looks like. You will learn how properly naming your classes and methods can greatly reduce complexity in the long run. Everything is backed by hard evidence. I should also mention that this is just one chapter in this wonderful book.This book really drills down proper programming practices. A lot of times you may read a passage and think to yourself "well, of course!"... but then you realize you don't practice what's contained in the passage you just read. This book is great for both new programmers and experienced programmers alike. New programmers benefit greatly because they will learn how to construct software properly without having to go through all of the hoops. Experienced programmers will also learn a great deal, as well as be reminded that some of their habits that they've developed over the years can hinder production and cause software development to become more complex then it really is.
Code Complete (Developer Best Practices) I.M. Wright's Hard Code: A Decade of Hard-Won Lessons from Microsoft (Developer Best Practices) Code: The Hidden Language of Computer Hardware and Software (Developer Best Practices) 2012 International Plumbing Code (Includes International Private Sewage Disposal Code) (International Code Council Series) Code Check Complete 2nd Edition: An Illustrated Guide to the Building, Plumbing, Mechanical, and Electrical Codes (Code Check Complete: An Illustrated Guide to Building,) The Practical Guide to Defect Prevention (Developer Best Practices) Software Requirements (3rd Edition) (Developer Best Practices) Agile Project Management with Scrum (Developer Best Practices) Software Project Survival Guide (Developer Best Practices) Agile Project Management with Kanban (Developer Best Practices) Agile Portfolio Management (Developer Best Practices) Delphi 6 Developer's Guide (Sams Developer's Guides) Delphi 5 Developer's Guide (Developer's Guide) Delphi 4 Developer's Guide with CDROM (Sams Developer's Guides) Delphi Developer's Guide to XML (Wordware Delphi Developer's Library) Client/Server Developer's Guide with Delphi 3 with CDROM (Sams Developer's Guides) The iOS 5 Developer's Cookbook: Core Concepts and Essential Recipes for iOS Programmers (3rd Edition) (Developer's Library) QuickTime for Java: A Developer Reference (QuickTime Developer Series) Java for the Web with Servlets, JSP, and EJB: A Developer's Guide to J2EE Solutions: A Developer's Guide to Scalable Solutions Developer's Guide to Microsoft Enterprise Library, C# Edition (Patterns & Practices)