Software Development/Sources

From The Thinkulum
< Software Development
Revision as of 14:08, 7 May 2019 by Andy Culbertson (talk | contribs) (Merged the Privacy section into Security.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Code examples

Here are projects that show up in lists of high quality code, so I'll examine some of them and include any relevant discoveries in the project. All the projects I'm listing for now are in Python.

In addition to these, I keep a mental list of software with features I might want to emulate, even if I don't plan to study their code very thoroughly:

  • Firefox - automatic updating; possibly its add-on architecture, if it ever settles down
  • WordPress - plugin hooks

Bibliography

Architecture

Buschmann, Frank, ed. Pattern-Oriented Software Architecture: A System of Patterns. Chichester ; New York: Wiley, 1996.

Fowler, Martin. Patterns of Enterprise Application Architecture. The Addison-Wesley Signature Series. Boston: Addison-Wesley, 2003.

Martin, Robert C. Clean Architecture: A Craftsman’s Guide to Software Structure and Design. Boston: Prentice Hall, 2018.

Continuous delivery

Humble, Jez, and David Farley. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Upper Saddle River, NJ: Addison-Wesley, 2010.

Debugging

Agans, David J. Debugging: The Nine Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems. New York: Amacom, 2002.

Design

Evans, Eric. Domain-Driven Design: Tackling Complexity in the Heart of Software. Boston: Addison-Wesley, 2004.

Gamma, Erich, ed. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional Computing Series. Reading, Mass: Addison-Wesley, 1995.

Martin, Robert C., ed. Clean Code: A Handbook of Agile Software Craftsmanship. Upper Saddle River, NJ: Prentice Hall, 2009.

McConnell, Steve. Code Complete. 2nd ed. Redmond, Wash: Microsoft Press, 2004.

Raymond, Eric S. The Art of UNIX Programming: With Contributions from Thirteen UNIX Pioneers, Including Its Inventor, Ken Thompson. Nachdr. Addison-Wesley Professional Computing Series. Boston: Addison-Wesley, 2008.

Project management

Fogel, Karl. Producing Open Source Software: How to Run a Successful Free Software Project. Version 2.3106., 2018. https://producingoss.com/.

McConnell, Steve. Rapid Development: Taming Wild Software Schedules. Redmond, Wash: Microsoft Press, 1996.

Stellman, Andrew, and Jennifer Greene. Learning Agile. First edition. Beijing: O’Reilly, 2014.

Refactoring

Fowler, Martin, and Kent Beck. Refactoring: Improving the Design of Existing Code. The Addison-Wesley Object Technology Series. Reading, MA: Addison-Wesley, 1999.

Requirements

McDonald, Kent J. Beyond Requirements: Analysis with an Agile Mindset. New York: Addison-Wesley, 2016.

Patton, Jeff. User Story Mapping: Discover the Whole Story, Build the Right Product. First edition. Beijing ; Sebastopol, CA: O’Reilly, 2014.

Security

Bowman, Courtney, Ari Gesher, John K. Grant, Daniel Slate, and Elissa Lerner. The Architecture of Privacy: On Engineering Technologies That Can Deliver Trustworthy Safeguards. First edition. Sebastopol, CA: O’Reilly Media, 2015.

Howard, Michael, David LeBlanc, and John Viega. 24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them. New York: McGraw-Hill, 2010.

Stability

Nygard, Michael T. Release It! Design and Deploy Production-Ready Software. Second edition. The Pragmatic Programmers. Raleigh, North Carolina: The Pragmatic Bookshelf, 2018.

Testing

Beck, Kent. Test-Driven Development: By Example. The Addison-Wesley Signature Series. Boston: Addison-Wesley, 2003.

Feathers, Michael C., and Robert C. Martin. Working Effectively with Legacy Code. Robert C. Martin Series. Upper Saddle River, NJ: Prentice Hall Professional Technical Reference, 2005.

Freeman, Steve, and Nat Pryce. Growing Object-Oriented Software, Guided by Tests. The Addison-Wesley Signature Series. Upper Saddle River, NJ: Addison Wesley, 2010.

Meszaros, Gerard, and Martin Fowler. XUnit Test Patterns: Refactoring Test Code. Upper Saddle River, New Jersey: Addison-Wesley, 2007.

User interface

Cooper, Alan. About Face: The Essentials of Interaction Design. 4th edition. Indianapolis, IN: John Wiley and Sons, 2014.

Rosenfeld, Louis, Peter Morville, and Jorge Arango. Information Architecture: For the Web and Beyond. Fourth edition. Sebastopol, CA: O’Reilly Media, Inc, 2015.