And Another Bibliography

I've actually been working on two books to take advantage of my unexpected leisure. This one is about software design, and you can read it at <>; its bibliography is shorter than yesterday's, but I hope it's just as useful.

  • Dave Binkley, Marcia Davis, Dawn Lawrie, Jonathan I. Maletic, Christopher Morrell, and Bonita Sharif: "The Impact of Identifier Style on Effort and Comprehension". Empirical Software Engineering, 18(2), 2012, 10.1007/s10664-012-9201-4.
  • Stewart Brand: How Buildings Learn: What Happens After They're Built. Penguin USA, 1995, 978-0140139969.
  • Amy Brown and Greg Wilson (eds.): The Architecture of Open Source Applications: Elegance, Evolution, and a Few Fearless Hacks. Lulu, 2011, 978-1257638017.
  • Amy Brown and Greg Wilson (eds.): The Architecture of Open Source Applications: Structure, Scale, and a Few More Fearless Hacks. Lulu, 2012, 978-0201103427.
  • Amy Brown and Michael DiBernardo (eds.): 500 Lines or Less: Experienced Programmers Solve Interesting Problems. Lulu, 2016, 978-1329871274.
  • Mario Casciaro and Luciano Mammino: Node.js Design Patterns (3rd edition). Packt, 2020, 978-1839214110.
  • Rob Conery: The Imposter's Handbook: A CS Primer for Self-Taught Developers. Independently published, 2021, 979-8708185266.
  • Ashley Davis: Data Wrangling with JavaScript. Manning, 2018, 978-1617294846.
  • Michael C. Feathers: Working Effectively with Legacy Code. Prentice-Hall, 2004, 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". Proc. ESEM'16, 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?". IEEE Transactions on Software Engineering, 43(7), 2017, 10.1109/tse.2016.2616877.
  • Brendan Gregg: Systems Performance: Enterprise and the Cloud (2nd edition). Pearson, 2020, 978-0136820154.
  • Daniel Jackson: Software Abstractions: Logic, Language, and Analysis (revised edition). MIT Press, 2016, 978-0262528900.
  • John Johnson, Sergio Lubo, Nishitha Yedla, Jairo Aponte, and Bonita Sharif: "An Empirical Study Assessing Source Code Readability in Comprehension". Proc. ICSME'19, 10.1109/ICSME.2019.00085.
  • Brian W. Kernighan and P. J. Plauger: The Elements of Programming Style. McGraw-Hill, 1979, 978-0070342071.
  • Brian W. Kernighan and P. J. Plauger: Software Tools in Pascal. Addison-Wesley Professional, 1981, 978-0201103427.
  • Brian W. Kernighan and Rob Pike: The Unix Programming Environment. Prentice-Hall, 1983, 978-0139376818.
  • Brian W. Kernighan and Dennis M. Ritchie: The C Programming Language. Prentice-Hall, 1988, 978-0131103627.
  • Ron Kohavi, Diane Tang, and Ya Xu: Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing. Cambridge University Press, 2020, 978-1108724265.
  • Gerard Meszaros: xUnit Test Patterns: Refactoring Test Code. Addison-Wesley, 2007, 978-0131495050.
  • Anne Minahan: "Martha's Rules". Affilia, 1(2), 1986, 10.1177/088610998600100206.
  • Andy Oram and Greg Wilson (eds.): Beautiful Code: Leading Programmers Explain How They Think. O'Reilly, 2007, 978-0596510046.
  • Addy Osmani: "Learning JavaScript Design Patterns".
  • David A. Patterson and John L. Hennessy: Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann, 2017, 978-0128122754.
  • Marian Petre and André van der Hoek: Software Design Decoded: 66 Ways Experts Think. MIT Press, 2016, 978-0262035187.
  • Charles Petzold: The Annotated Turing. Wiley, 2008, 978-0470229057.
  • Donald A. Schon: The Reflective Practitioner: How Professionals Think in Action. Basic Books, 1984, 978-0465068784.
  • Peter Smith: Software Build Systems: Principles and Experience. Addison-Wesley Professional, 2011, 978-0134185965.
  • Morgan Taschuk and Greg Wilson: "Ten Simple Rules for Making Research Software More Robust". PLoS Computational Biology, 13(4), 2017, 10.1371/journal.pcbi.1005412.
  • Cătălin Tudose: JUnit in Action (3rd edition). Manning, 2020, 978-1617297045.
  • Hillel Wayne: Practical TLA+: Planning Driven Development. Apress, 2018, 978-1484238288.
  • Andreas Zeller: Why Programs Fail: A Guide to Systematic Debugging (2nd edition). Morgan Kaufmann, 2009, 978-0080923000.

In the wake of posts about Shopify's support for white nationalists and DataCamp's attempts to cover up sexual harassment
I have had to disable comments on this blog. Please email me if you'd like to get in touch.