更新时间:2021-05-21 22:06:25
coverpage
Modern Programming: Object Oriented Programming and Best Practices
Preface
About
About the Book
Part One – OOP The Easy Way
Chapter 1 Antithesis
Telling an Object What to Do
Designing an Object
Drawing an Object
Opposing Functional Programming
Capturing Elements of Reusable Design
Finding a Method to Run
Building Objects
Conclusion to Part One
Chapter 2 Thesis
Objects Are Independent Programs
The Open-Closed Nature of Independent Objects
The Design of Independent Objects
Constructing Independent Objects
Working with Independent Objects
Conclusion to Part Two
Chapter 3 Synthesis
Objects Can Be Written Inspected And Changed in Context
Put That All Together
Conclusion to Part Three
Part Two – APPropriate Behavior
Chapter 4 Tools That Support Software Development
Introduction
Version Control/Source Code Management
Continuous Integration and Deployment
Build Management
Bug and work tracking
Integrated Development Environment
Static Analysis
Code Generation
Chapter 5 Coding Practices
Test-Driven Development
Domain-Driven Design
Behavior-Driven Development
xDD
Design by Contract
Development by Specification
Pair programming
Code Reviews
Programming Paradigms And Their Applicability
Chapter 6 Testing
A Philosophy of Testing
Black and White Boxes
Test Case Design
Automate All The Things
Getting Someone Else In
Other Benefits Of Testing
Chapter 7 Architecture
Non-Functional Requirements Are Essential
Defer When Appropriate; Commit When Necessary
Justify Your Decisions
When to Fix and When to Replace
Know When to Nitpick And When to Leave It
Support Don't Control
Chapter 8 Documentation
Documentation Is More Useful Than You Might Think
The Up-To-Dateness Problem
Automatically Generated Documentation
Analysis Paralysis
How to Document
Summary
Chapter 9 Requirements Engineering
Study People
You Shouldn't Necessarily Build What The Client Asks For
Avoid Asking What You Want To Hear
Understand The Problem Domain
Uncover Tacit Requirements
You Shouldn't Build What Your Client Wants
Human Factors In Software Systems
Prioritizing Requirements
Is It Really "Engineering"?
Chapter 10 Learning
Do as Much as You Can
Don't Stick to Your Own Discipline
Put it into Practice
Collaborate and Share what you Learn
Opportunities to Learn
Rediscovering Lost Knowledge
The Teaching Of Software Creation
Reflective Learning
Chapter 11 Critical Analysis
Criticism Is Often Uncritical
How to Form an Argument?
Forms Of Fallacy
Further Reading on Arguments
Debates and Programmers
Software as Essays