Difference between revisions of "Software Development/Sources"
(Added the article.) |
(No difference)
|
Revision as of 22:45, 23 February 2019
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.
- Bazaar
- boto3
- Django
- Flask
- gevent
- Mercurial
- NLTK
- Pyramid
- Requests
- SQLAlchemy
- Tablib
- Tornado
- trac
- Twisted
- youtube-dl
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.
Privacy
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.
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
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.