From the Publisher: 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 Page 333 How can you understand and simplify an inscrutable piece of code Page 39 Where do you start when disentangling a complicated build process Page 167 How do you comprehend code that appears to be doing five things in parallel Page 132 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.
Cited By
- Kendon T, Wu L and Aycock J AI-Generated Code Not Considered Harmful Proceedings of the 25th Western Canadian Conference on Computing Education, (1-7)
- Ryan B, Soria A, Dreef K and van der Hoek A Reading to write code Proceedings of the ACM/IEEE 44th International Conference on Software Engineering: Software Engineering Education and Training, (223-234)
- Busjahn T, Simon and Paterson J Looking at the main Method – An Educator’s Perspective Proceedings of the 21st Koli Calling International Conference on Computing Education Research, (1-10)
- Spinellis D (2018). Modern debugging, Communications of the ACM, 61:11, (124-134), Online publication date: 26-Oct-2018.
- Almagor S, Boker U and Kupferman O (2016). Formally Reasoning About Quality, Journal of the ACM, 63:3, (1-56), Online publication date: 1-Sep-2016.
- Lee D, Smith A and Mortimer M Cultural differences affecting quality and productivity in Western/Asian offshore software development Proceedings of the 3rd Indian Conference on Human-Computer Interaction, (29-39)
- Spinellis D (2010). CScout, Science of Computer Programming, 75:4, (216-231), Online publication date: 1-Apr-2010.
- Spinellis D and Szyperski C (2004). Guest Editors' Introduction, IEEE Software, 21:1, (28-33), Online publication date: 1-Jan-2004.
- Spinellis D (2003). Global Analysis and Transformations in Preprocessed Languages, IEEE Transactions on Software Engineering, 29:11, (1019-1030), Online publication date: 1-Nov-2003.
Index Terms
- Code Reading: The Open Source Perspective, Vol. 1
Recommendations
Code reading exercises using run time traces
ITiCSE '14: Proceedings of the 2014 conference on Innovation & technology in computer science educationProgramming requires both to write code and to read code. In debugging tasks, students can use supporting tools that create additional artefacts like visualizations or traces, but these again need to be read and understood. This contribution presents a ...
Sponsoring Girls Who Code Clubs
SIGCSE '19: Proceedings of the 50th ACM Technical Symposium on Computer Science EducationGirls Who Code (GWC) Clubs are springing up all around the country, with almost 90,000 girls involved from all 50 states. Have you ever wondered what it takes to get a club started? How do clubs make use of the curriculum that GWC provides? Do clubs ...
Code Bad Smells: a review of current knowledge
Fowler et al. identified 22 Code Bad Smells to direct the effective refactoring of code. These are increasingly being taken up by software engineers. However, the empirical basis of using Code Bad Smells to direct refactoring and to address ‘trouble’ in ...