Software Design by Example

Appendix B: 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 979-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. URL: https://doi.org/10.1145/2961111.2962592, 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. URL: https://doi.org/10.1109/tse.2016.2616877, doi:10.1109/tse.2016.2616877.
Gregg2020
Brendan Gregg. Systems Performance: Enterprise and the Cloud. Pearson, 2020. ISBN 978-0136820154.
Jackson2016
Daniel Jackson. Software Abstractions: Logic, Language, and Analysis. MIT Press, 2016. ISBN 978-0262528900.
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.
Minahan1986
Anne Minahan. Martha's rules. Affilia, 6 1986. URL: https://doi.org/10.1177/088610998600100206, doi:10.1177/088610998600100206.
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.
Wayne2018
Hillel Wayne. Practical TLA+: Planning Driven Development. Apress, 2018. ISBN 978-1484238288.
Zeller2009
Andreas Zeller. Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann, 2009. ISBN 978-0080923000.