Code Reading: The Open Source Perspective, Volume 1"If you are a programmer, you need this book. You've got a day to add a new feature in a 34,000-line program: Where do you start? How do you comprehend code that appears to be doing five things in parallel? How can you understand and simplify an inscrutable piece of code? How do you disentangle a complicated build process? You may read code because you have to--to fix it, inspect it, or improve it. You may read code the way an engineer examines a machine--to discover what makes it tick. Or you may read code because you are scavenging--looking for material to reuse. Code-reading requires its own set of skills, and the ability to determine which technique you use when is crucial. In this indispensable book, Diomidis Spinellis uses more than 600 real-world examples to show you how to identify good (and bad) code: how to read it, what to look for, and how to use this knowledge to improve your own code. Fact: If you make a habit of reading good code, you will write better code yourself." -- Back cover. |
Contents
VI | 1 |
VII | 2 |
IX | 5 |
X | 6 |
XI | 7 |
XII | 9 |
XIV | 10 |
XVI | 12 |
XCIV | 215 |
XCV | 224 |
XCVI | 225 |
XCVII | 228 |
XCVIII | 230 |
XCIX | 234 |
C | 237 |
CI | 239 |
XVII | 13 |
XVIII | 14 |
XX | 15 |
XXII | 17 |
XXIII | 19 |
XXIV | 25 |
XXV | 28 |
XXVI | 32 |
XXVII | 34 |
XXVIII | 37 |
XXIX | 39 |
XXX | 43 |
XXXI | 45 |
XXXII | 51 |
XXXIII | 54 |
XXXIV | 60 |
XXXV | 61 |
XXXVII | 62 |
XXXIX | 63 |
XL | 65 |
XLII | 67 |
XLIII | 70 |
XLIV | 72 |
XLV | 74 |
XLVI | 75 |
XLVIII | 76 |
L | 78 |
LI | 80 |
LIII | 81 |
LIV | 82 |
LV | 84 |
LVI | 87 |
LVII | 89 |
LVIII | 91 |
LIX | 93 |
LX | 95 |
LXI | 96 |
LXII | 101 |
LXIII | 105 |
LXIV | 107 |
LXV | 111 |
LXVI | 113 |
LXVII | 116 |
LXVIII | 117 |
LXIX | 125 |
LXX | 131 |
LXXII | 134 |
LXXIII | 137 |
LXXIV | 139 |
LXXVI | 140 |
LXXVIII | 143 |
LXXIX | 150 |
LXXX | 154 |
LXXXII | 156 |
LXXXIII | 162 |
LXXXIV | 165 |
LXXXV | 169 |
LXXXVI | 172 |
LXXXVII | 177 |
LXXXVIII | 179 |
LXXXIX | 181 |
XC | 189 |
XCI | 197 |
XCII | 202 |
XCIII | 210 |
CII | 240 |
CIII | 241 |
CIV | 243 |
CV | 254 |
CVI | 256 |
CVII | 260 |
CVIII | 266 |
CIX | 267 |
CX | 268 |
CXII | 273 |
CXIII | 275 |
CXIV | 279 |
CXV | 282 |
CXVI | 283 |
CXVII | 285 |
CXIX | 289 |
CXX | 291 |
CXXI | 292 |
CXXII | 293 |
CXXIII | 296 |
CXXIV | 300 |
CXXV | 313 |
CXXVI | 318 |
CXXVII | 319 |
CXXVIII | 323 |
CXXIX | 325 |
CXXXI | 328 |
CXXXII | 329 |
CXXXIII | 330 |
CXXXIV | 331 |
CXXXV | 333 |
CXXXVI | 337 |
CXXXVII | 339 |
CXXXVIII | 340 |
CXXXIX | 343 |
CXL | 346 |
CXLI | 355 |
CXLII | 357 |
CXLIII | 360 |
CXLIV | 365 |
CXLV | 370 |
CXLVI | 375 |
CXLVII | 376 |
CXLVIII | 379 |
CXLIX | 380 |
CL | 382 |
CLI | 388 |
CLII | 396 |
CLIII | 397 |
CLIV | 399 |
CLV | 403 |
CLVI | 405 |
CLVII | 413 |
CLVIII | 415 |
CLIX | 416 |
CLXI | 417 |
CLXII | 418 |
CLXIV | 419 |
CLXV | 422 |
CLXVIII | 423 |
CLXIX | 425 |
CLXX | 445 |
| 459 | |
| 491 | |
Other editions - View all
Common terms and phrases
algorithm allocated apache architecture argument argv array base block book's CD-ROM build process char character code-reading command command-line common compiler configuration const contains create data structure data type database declarations define definition documentation doubly linked list elements environment error examine example execution Exercise Figure format FreeBSD function getopt graph grep header hsqldb identifiers implementation Integer interface Java javadoc language linked list locate loop macro makefile malloc manual memory method Microsoft Windows modules NetBSD node NULL object open-source operating system option output package parsing Perl pointer POSIX queue readability reading code recursive regular expression result revision control system server signal handler source code source files specific stack statement static stored string struct switch threads tree typedef typically Unix Unix manual variable void X Window System



