site logo Software Design by Example

  1. Introduction
  2. Systems Programming
  3. Asynchronous Programming
  4. Unit Testing
  5. File Backup
  6. Data Tables
  7. Pattern Matching
  8. Parsing Expressions
  9. Page Templates
  10. Build Manager
  11. Layout Engine
  12. File Interpolator
  13. Module Loader
  14. Style Checker
  15. Code Generator
  16. Documentation Generator
  17. Module Bundler
  18. Package Manager
  19. Virtual Machine
  20. Debugger
  21. Conclusion
  1. License
  2. Code of Conduct
  3. Contributing
  4. Bibliography
  5. Glossary
  6. Credits
  7. Index

Appendix D: Bibliography

Dave Binkley, Marcia Davis, Dawn Lawrie, Jonathan I. Maletic, Christopher Morrell, and Bonita Sharif. The impact of identifier style on effort and comprehension. ESE, 2012. doi:10.1007/s10664-012-9201-4.
Stewart Brand. How Buildings Learn: What Happens After They're Built. Penguin USA, 1995. ISBN 978-0140139969.
Amy Brown and Greg Wilson, editors. The Architecture of Open Source Applications: Elegance, Evolution, and a Few Fearless Hacks. Lulu, 2011. ISBN 978-1257638017.
Amy Brown and Greg Wilson, editors. The Architecture of Open Source Applications: Structure, Scale, and a Few More Fearless Hacks. Lulu, 2012. ISBN 978-0201103427.
Amy Brown and Michael DiBernardo, editors. 500 Lines or Less: Experienced Programmers Solve Interesting Problems. Lulu, 2016. ISBN 978-1329871274.
Mario Casciaro and Luciano Mammino. Node.js Design Patterns. Packt, 2020. ISBN 978-1839214110.
Rob Conery. The Imposter's Handbook: A CS Primer for Self-Taught Developers. Independently published, 2021. ISBN 978-8708185266.
Ashley Davis. Data Wrangling with JavaScript. Manning, 2018. ISBN 978-1617294846.
Michael C. Feathers. Working Effectively with Legacy Code. Prentice-Hall, 2004. ISBN 978-0131177055.
Davide Fucci, Giuseppe Scanniello, Simone Romano, Martin Shepperd, Boyce Sigweni, Fernando Uyaguari, Burak Turhan, Natalia Juristo, and Markku Oivo. An external replication on the effects of test-driven development using a multi-site blind analysis approach. In Proc. ESEM'16. ACM Press, 2016. doi:10.1145/2961111.2962592.
Davide Fucci, Hakan Erdogmus, Burak Turhan, Markku Oivo, and Natalia Juristo. A dissection of the test-driven development process: does it really matter to test-first or to test-last? TSE, 7 2017. doi:10.1109/tse.2016.2616877.
Brendan Gregg. Systems Performance: Enterprise and the Cloud. Pearson, 2020. ISBN 978-0136820154.
John Johnson, Sergio Lubo, Nishitha Yedla, Jairo Aponte, and Bonita Sharif. An empirical study assessing source code readability in comprehension. In Proc. ICSME'19. 2019. doi:10.1109/ICSME.2019.00085.
Brian W. Kernighan and P. J. Plauger. The Elements of Programming Style. McGraw-Hill, 1979. ISBN 978-0070342071.
Brian W. Kernighan and P. J. Plauger. Software Tools in Pascal. Addison-Wesley Professional, 1981. ISBN 978-0201103427.
Brian W. Kernighan and Rob Pike. The Unix Programming Environment. Prentice-Hall, 1983. ISBN 978-0139376818.
Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. Prentice-Hall, 1988. ISBN 978-0131103627.
Ron Kohavi, Diane Tang, and Ya Xu. Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing. Cambridge University Press, 2020. ISBN 978-1108724265.
Gerard Meszaros. xUnit Test Patterns: Refactoring Test Code. Addison-Wesley, 2007. ISBN 978-0131495050.
Andy Oram and Greg Wilson, editors. Beautiful Code: Leading Programmers Explain How They Think. O'Reilly, 2007. ISBN 978-0596510046.
Addy Osmani. Learning javascript design patterns. 2017. URL:
David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann, 2017. ISBN 978-0128122754.
Marian Petre and André van der Hoek. Software Design Decoded: 66 Ways Experts Think. MIT Press, 2016. ISBN 978-0262035187.
Charles Petzold. The Annotated Turing. Wiley, 2008. ISBN 978-0470229057.
Donald A. Schon. The Reflective Practitioner: How Professionals Think in Action. Basic Books, 1984. ISBN 978-0465068784.
Peter Smith. Software Build Systems: Principles and Experience. Addison-Wesley Professional, 2011. ISBN 978-0134185965.
Morgan Taschuk and Greg Wilson. Ten simple rules for making research software more robust. PLoS Comp Bio, 4 2017. doi:10.1371/journal.pcbi.1005412.
Cătălin Tudose. JUnit in Action. Manning, 2020. ISBN 978-1617297045.