The book, Computer Networks: An Open Source Approach, presents network layers, their applications, protocol design, and implementation issues through 56 open-source code examples that narrow the gap between domain knowledge and hands-on skills. The book's publication signals the increasing adoption of open-source code cases in teaching. Notable predecessors include John Lions' Commentary on Unix 6th Edition with Source Code (Annabooks, Poway, CA, 1996), Andrew Tanenbaum's Operating Systems: Design and Implementation (Prentice Hall, Englewood Cliffs, NJ, 1987), as well as my two books Code Reading: The Open Source Perspective (Addison-Wesley, Boston, MA, 2003) and Code Quality: The Open Source Perspective (Addison-Wesley, Boston, MA, 2006).
Managers should buy the book, and not read it, but pass it on to the code bashers in their teams.
I've enjoyed this book a lot, but can I blame it for the shortage of reviews? It's a very dense book, with something to think about in every sentence. If you carefully absorb everything it has to say and manage to implement it, you will be a pro- gramming wizard. [...]
I believe Spinellis' text should be required reading for all programming courses and programs. In addition, those involved with analysis, maintenance, and change control should consider it a bible to be read and re-read until the lessons are firmly implanted.
Thanks, Rob!
For those who write, review, and structurally test code, this seems like a worthwhile book. I think people working with systems written in other languages could still find good ideas for their writing, reviewing, and testing activities. Since both this book and Code Reading are really a split of what was headed toward being a very large book, the two, together, are probably a worth- while set to have.
Code Quality focuses on non-functional properties, demonstrating how to meet such critical requirements as reliability, security, portability, and maintainability. Spinellis draws on hundreds of examples from open-source projects to illustrate concepts and techniques.
[...] This book by Diomidis Spinellis is a well written, well focused and to a high degree an eternal description of the varying types and issues that can be found in programming languages such as Java and C. [...] The book reeks with experience and detailed observation of the problem domain. It is obvious to me that the author has a profound insight into what makes bad software bad and thus strongly hints at how to create excellence.Thanks, Alan!
While this book doesn't break new ground in the way Code Reading did, the focus of the book and the emphasis on using real code makes it a useful and interesting read.Thanks, Pan!
This book has a great deal of interesting and practical advice. A few people learn much of this advice through years of experience, but from what I have seen, most do not. This book would be most useful to beginning and intermediate software developers who have not yet discovered the wisdom by trial and error, or experienced developers who want to communicate the information to less knowledgable colleagues in an easily digestible format. Unfortunately, I was disappointed by by the quality of copy editing. I would have given the book 4 stars otherwise. However, I would still recommend the book, even with the errors, because it's worth it.Edwin, kindly pointed out some of the errors he discovered, and they are now listed in the book's errata page.
the book ought to be required reading in every undergraduate software engineering program, and everything it covers should be on every professional developer's check-list.Thanks, Greg.
Book homepage | Author homepage