Modern Programming: Object Oriented Programming and Best Practices
Graham Lee更新时间:2021-05-21 22:06:25
最新章节:Conclusioncoverpage
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 Are Independent Programs
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
Introduction
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
Introduction
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
Introduction
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
Introduction
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
Introduction
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
Introduction
Criticism Is Often Uncritical
How to Form an Argument?
Forms Of Fallacy
Further Reading on Arguments
Debates and Programmers
Software as Essays
Chapter 12 Business
Introduction
Evaluate Risks Dispassionately
Find Out What You Need to Know And How You Can Know It
What You Discover May Not Be to Your Liking
How to Interview A Programmer?
Be Transparent and Honest with Your Business Partners
Choose Appropriate Technology
Manipulation and Inspiration
You Don't Need to Be A Founder to Be A Programmer
Chapter 13 Teamwork
Introduction
Focus versus Interruption
Working Environment
Prioritizing Work
Tell Experts What Needs to Be Done
Working with Junior Programmers
Working with Managers
Patterns of Software Project Management
Negotiation
Empathy
Shared Language and Shiny Buzzwords
Chapter 14 Ethics
Introduction
Examples of Ethical Codes
Application of The Ethical Code
Ethical Ambiguities
Respecting Privacy
Epilogue
Chapter 15 Philosophy
Introduction
Software as A Pursuit
An Economic Philosophy of Software
A Management Philosophy of Software
A Social Philosophy of Software
A Pedagogic Philosophy of Software
What Does It Mean to Be "Good" At Making Software?
Conclusion
更新时间:2021-05-21 22:06:25