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

Binkley2012
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.
Brand1995
Stewart Brand. How Buildings Learn: What Happens After They're Built. Penguin USA, 1995. ISBN 978-0140139969.
Brown2011
Amy Brown and Greg Wilson, editors. The Architecture of Open Source Applications: Elegance, Evolution, and a Few Fearless Hacks. Lulu, 2011. ISBN 978-1257638017.
Brown2012
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.
Brown2016
Amy Brown and Michael DiBernardo, editors. 500 Lines or Less: Experienced Programmers Solve Interesting Problems. Lulu, 2016. ISBN 978-1329871274.
Casciaro2020
Mario Casciaro and Luciano Mammino. Node.js Design Patterns. Packt, 2020. ISBN 978-1839214110.
Conery2021
Rob Conery. The Imposter's Handbook: A CS Primer for Self-Taught Developers. Independently published, 2021. ISBN 978-8708185266.
Davis2018
Ashley Davis. Data Wrangling with JavaScript. Manning, 2018. ISBN 978-1617294846.
Feathers2004
Michael C. Feathers. Working Effectively with Legacy Code. Prentice-Hall, 2004. ISBN 978-0131177055.
Fucci2016
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.
Fucci2017
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.
Gregg2020
Brendan Gregg. Systems Performance: Enterprise and the Cloud. Pearson, 2020. ISBN 978-0136820154.
Johnson2019
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.
Kernighan1979
Brian W. Kernighan and P. J. Plauger. The Elements of Programming Style. McGraw-Hill, 1979. ISBN 978-0070342071.
Kernighan1981
Brian W. Kernighan and P. J. Plauger. Software Tools in Pascal. Addison-Wesley Professional, 1981. ISBN 978-0201103427.
Kernighan1983
Brian W. Kernighan and Rob Pike. The Unix Programming Environment. Prentice-Hall, 1983. ISBN 978-0139376818.
Kernighan1988
Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. Prentice-Hall, 1988. ISBN 978-0131103627.
Kohavi2020
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.
Meszaros2007
Gerard Meszaros. xUnit Test Patterns: Refactoring Test Code. Addison-Wesley, 2007. ISBN 978-0131495050.
Oram2007
Andy Oram and Greg Wilson, editors. Beautiful Code: Leading Programmers Explain How They Think. O'Reilly, 2007. ISBN 978-0596510046.
Osmani2017
Addy Osmani. Learning javascript design patterns. 2017. URL: https://addyosmani.com/resources/essentialjsdesignpatterns/book/.
Patterson2017
David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann, 2017. ISBN 978-0128122754.
Petre2016
Marian Petre and André van der Hoek. Software Design Decoded: 66 Ways Experts Think. MIT Press, 2016. ISBN 978-0262035187.
Petzold2008
Charles Petzold. The Annotated Turing. Wiley, 2008. ISBN 978-0470229057.
Schon1984
Donald A. Schon. The Reflective Practitioner: How Professionals Think in Action. Basic Books, 1984. ISBN 978-0465068784.
Smith2011
Peter Smith. Software Build Systems: Principles and Experience. Addison-Wesley Professional, 2011. ISBN 978-0134185965.
Taschuk2017
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.
Tudose2020
Cătălin Tudose. JUnit in Action. Manning, 2020. ISBN 978-1617297045.