Download the full version and explore a variety of ebooks
or textbooks at https://ebookmass.com
Clean Code. An Agile Guide to Software Craft
Kameron H.
_____ Tap the link below to start your download _____
https://ebookmass.com/product/clean-code-an-agile-guide-to-
software-craft-kameron-h/
Find ebooks or textbooks at ebookmass.com today!
Here are some recommended products for you. Click the link to
download, or explore more at ebookmass.com
Clean Architecture A Craftsman's Guide to Software
Structure and Design-Pearson Education 1st edition Edition
Martin
https://ebookmass.com/product/clean-architecture-a-craftsmans-guide-
to-software-structure-and-design-pearson-education-1st-edition-
edition-martin/
Agile Project Management: Creating Innovative Products
(Agile Software Development Series) 2nd Edition, (Ebook
PDF)
https://ebookmass.com/product/agile-project-management-creating-
innovative-products-agile-software-development-series-2nd-edition-
ebook-pdf/
Engineering Software Products: An Introduction to Modern
Software Engineering Ian Sommerville
https://ebookmass.com/product/engineering-software-products-an-
introduction-to-modern-software-engineering-ian-sommerville/
Agile Software Development : Trends, Challenges and
Applications 1st Edition Susheela Hooda
https://ebookmass.com/product/agile-software-development-trends-
challenges-and-applications-1st-edition-susheela-hooda/
The Project Manager's Guide to Mastering Agile: Principles
and Practices for an Adaptive Approach, 2nd Edition
Charles G. Cobb
https://ebookmass.com/product/the-project-managers-guide-to-mastering-
agile-principles-and-practices-for-an-adaptive-approach-2nd-edition-
charles-g-cobb/
Invention and Craft: A Guide to College Writing 1st
Edition Ronda Leathers Dively
https://ebookmass.com/product/invention-and-craft-a-guide-to-college-
writing-1st-edition-ronda-leathers-dively/
Linux Unveiled: From Novice to Guru Kameron Hussain
https://ebookmass.com/product/linux-unveiled-from-novice-to-guru-
kameron-hussain/
The Software Developer's Guide to Linux: A practical, no-
nonsense guide to using the Linux command line and
utilities as a software developer David Cohen
https://ebookmass.com/product/the-software-developers-guide-to-linux-
a-practical-no-nonsense-guide-to-using-the-linux-command-line-and-
utilities-as-a-software-developer-david-cohen/
The Software Developer's Guide to Linux: A practical, no-
nonsense guide to using the Linux command line and
utilities as a software developer David Cohen
https://ebookmass.com/product/the-software-developers-guide-to-linux-
a-practical-no-nonsense-guide-to-using-the-linux-command-line-and-
utilities-as-a-software-developer-david-cohen-2/
Clean Code: An Agile Guide to Software Craft
Kameron Hussain and Frahaan Hussain
Published by Sonar Publishing, 2023.
While every precaution has been taken in the preparation of this book, the
publisher assumes no responsibility for errors or omissions, or for
damages resulting from the use of the information contained herein.
CLEAN CODE: AN AGILE GUIDE TO SOFTWARE CRAFT
First edition. October 15, 2023.
Copyright © 2023 Kameron Hussain and Frahaan Hussain.
Written by Kameron Hussain and Frahaan Hussain.
Table of Contents
Title Page
Copyright Page
Clean Code: An Agile Guide to Software Craft
Chapter 1: Clean Code
Chapter 2: Meaningful Names
Chapter 3: Functions
Chapter 4: Comments
Chapter 5: Formatting
Chapter 6: Objects and Data Structures
Chapter 7: Error Handling
Chapter 8: Boundaries
Chapter 9: Unit Tests
Chapter 10: Classes
Chapter 13: Concurrency
Chapter 15: JUnit Internals
Chapter 19: Appendix B: Decimal I/O
Chapter 20: Appendix C: How to Transform Employee
Table of Contents
Chapter 1: Clean Code
1.1 What Is Clean Code?
The Benefits of Clean Code
Characteristics of Clean Code
1.2 Why Does Clean Code Matter?
1.2.1 Readability and Understanding
1.2.2 Maintainability
1.2.3 Debugging and Error Detection
1.2.4 Collaboration
1.2.5 Code Reviews and Quality Assurance
1.2.6 Long-Term Sustainability
1.3 The Principles of Clean Code
1.3.1 DRY (Don’t Repeat Yourself) Principle
1.3.2 SRP (Single Responsibility Principle)
1.3.3 KISS (Keep It Simple, Stupid) Principle
1.3.4 YAGNI (You Ain’t Gonna Need It) Principle
1.4 A Case for Software Craftsmanship
1.4.1 Beyond Functional Code
1.4.2 Code as a Reflection of Thought
1.4.3 Continuous Improvement
1.4.4 Attention to Detail
1.4.5 Code That Stands the Test of Time
1.4.6 Pride in Work
1.4.7 Collaboration and Mentorship
1.4.8 Balancing Pragmatism and Perfection
1.5 How Clean Code Enhances Agile Development
1.5.1 Readability and Adaptability
1.5.2 Continuous Integration and Delivery
1.5.3 Collaboration and Code Reviews
1.5.4 Test-Driven Development (TDD)
1.5.5 Agile Refactoring
1.5.6 Reduced Technical Debt
1.5.7 Empowering Cross-Functional Teams
Chapter 2: Meaningful Names
2.1 The Importance of Good Names
2.1.1 Readability and Comprehensibility
2.1.2 Documentation Through Naming
2.1.3 Maintainability
2.1.4 Reducing Cognitive Load
2.1.5 Consistency and Conventions
2.2 Choosing Descriptive and Pronounceable Names
2.2.1 Descriptive Names
2.2.2 Pronounceable Names
2.2.3 Meaningful Variable Names
2.2.4 Method and Function Names
2.2.5 Class and Object Names
2.3 Avoiding Disinformation and Misleading Names
2.3.1 Misleading Names Can Be Dangerous
2.3.2 Be Precise and Specific
2.3.3 Be Wary of Abbreviations and Acronyms
2.3.4 Consistency Matters
2.3.5 Use Domain-Specific Language
2.3.6 Seek Feedback
2.4 Using Names that Reveal Intent
2.4.1 Code as Documentation
2.4.2 Intent-Driven Naming
2.4.3 Choose Verbs and Nouns Thoughtfully
2.4.4 Avoid Generic Names
2.4.5 Maintainability and Understanding
2.4.6 Refactoring with Confidence
2.5 Making Meaningful Distinctions in Names
2.5.1 Avoid Ambiguity
2.5.2 Use Context for Distinctions
2.5.3 Add Qualifiers
2.5.4 Avoid Overloading Names
2.5.5 Maintain a Consistent Approach
2.5.6 Prioritize Clarity
Chapter 3: Functions
3.1 The Role of Functions in Clean Code
3.1.1 Functions as Abstractions
3.1.2 Small and Focused Functions
3.1.3 Function Names and Readability
3.1.4 Function Arguments and Side Effects
3.1.5 Encapsulation and Reusability
3.2 Small and Focused Functions
3.2.1 The Single Responsibility Principle (SRP)
3.2.2 Benefits of Small and Focused Functions
3.2.3 Guidelines for Creating Small and Focused Functions
3.3 Function Arguments and Side Effects
3.3.1 Minimizing Function Arguments
3.3.2 Minimizing Side Effects
3.3.3 Emphasizing Pure Functions
3.3.4 Function Signatures and Documentation
3.3.5 Achieving Clean and Predictable Code
3.4 Command Query Separation
3.4.1 Commands
3.4.2 Queries
3.4.3 Benefits of CQS
3.4.4 CQS in Practice
3.5 Error Handling in Functions
3.5.1 The Nature of Errors
3.5.2 Error Handling Strategies
3.5.3 Using Exceptions for Error Handling
3.5.4 Wrapping External Dependencies
3.5.5 Avoiding Null References
Chapter 4: Comments
4.1 When to Write Comments
4.1.1 Providing Clarification
4.1.2 Documenting Intent
4.1.3 Explaining Non-Obvious Decisions
4.1.4 Describing Complex Algorithms
4.1.5 Warning about Known Issues
4.1.6 Keeping Comments Up-to-Date
4.2 Good Comments vs. Bad Comments
4.2.1 Good Comments
4.2.2 Bad Comments
4.2.3 Principles for Effective Comments
4.3 Writing Self-Explanatory Code
4.3.1 Meaningful Variable and Function Names
4.3.2 Consistent Naming Conventions
4.3.3 Avoiding Magic Numbers and Strings
4.3.4 Clear and Logical Code Structure
4.3.5 Avoiding Nested and Complex Conditionals
4.3.6 Documentation as a Supplement
4.3.7 Code Reviews and Collaboration
4.4 Using Comments to Clarify Intent
4.4.1 Explaining Design Decisions
4.4.2 Documenting Algorithm Insights
4.4.3 Warning About Side Effects
4.4.4 Temporary Workarounds
4.4.5 Historical Context
4.4.6 Best Practices for Comment Clarity
4.5 Avoiding Redundant Comments
4.5.1 Redundant Comments Defined
4.5.2 The Problem with Redundant Comments
4.5.3 When Are Comments Redundant?
4.5.4 Guidelines for Reducing Redundant Comments
Chapter 5: Formatting
5.1 Code Formatting and Readability
5.1.1 The Significance of Code Formatting
5.1.2 Consistency Matters
5.1.3 Code Formatting Tools
5.1.4 Comments and Formatting
5.1.5 Practical Tips for Code Formatting
5.2 The Importance of Consistency
5.2.1 Consistency in Indentation
5.2.2 Consistency in Spacing
5.2.3 Consistency in Naming Conventions
5.2.4 Consistency Across the Codebase
5.2.5 Benefits of Consistency
5.3 Horizontal Formatting
5.3.1 Line Length
5.3.2 Alignment
5.3.3 Operators and Indentation
5.3.4 Long Function Calls
5.3.5 Practical Tips for Horizontal Formatting
5.4 Vertical Formatting
5.4.1 Logical Grouping
5.4.2 Readable Sections
5.4.3 Vertical Density
5.4.4 Limited Function and Method Length
5.4.5 Practical Tips for Vertical Formatting
5.5 Comments and Formatting
5.5.1 When to Write Comments
5.5.2 Good Comments vs. Bad Comments
5.5.3 Writing Self-Explanatory Code
5.5.4 Avoiding Redundant Comments
5.5.5 Comment Formatting
5.5.6 Commenting for Future Developers
5.5.7 Documentation Tools
5.5.8 Practical Tips for Commenting
Chapter 6: Objects and Data Structures
6.1 Objects vs. Data Structures
6.1.1 Objects
6.1.2 Data Structures
6.1.3 Strengths of Objects
6.1.4 Strengths of Data Structures
6.1.5 Choosing Between Objects and Data Structures
6.2 The Law of Demeter
6.2.1 Understanding the Law of Demeter
6.2.2 Benefits of the Law of Demeter
6.2.3 Applying the Law of Demeter
6.3 Data Transfer Objects (DTOs)
6.3.1 Purpose of Data Transfer Objects
6.3.2 Characteristics of Data Transfer Objects
6.3.3 Example of Data Transfer Objects
6.3.4 Drawbacks and Considerations
6.4 Active Objects
6.4.1 Key Concepts of Active Objects
6.4.2 Use Cases for Active Objects
6.4.3 Implementing Active Objects
6.4.4 Benefits and Considerations
6.5 Hiding Implementation Details
6.5.1 Benefits of Hiding Implementation Details
6.5.2 Techniques for Hiding Implementation Details
6.5.3 When to Hide Implementation Details
Chapter 7: Error Handling
7.1 The Nature of Errors
7.1.1 Types of Errors
7.1.2 The Impact of Errors
7.1.3 The Importance of Error Handling
7.1.4 Strategies for Error Handling
7.2 Error Handling Strategies
7.2.1 Defensive Programming
7.2.2 Exception Handling
7.2.3 Return Values and Error Codes
7.2.4 Graceful Degradation
7.2.5 Testing and Validation
7.3 Using Exceptions for Error Handling
7.3.1 How Exceptions Work
7.3.2 Advantages of Exception Handling
7.3.3 Best Practices for Exception Handling
7.3.4 Handling Checked vs. Unchecked Exceptions
7.3.5 Exception Handling in Multithreaded Environments
7.3.6 Using Exception Handling Frameworks
7.4 Wrapping External Dependencies
7.4.1 The Challenges of External Dependencies
7.4.2 Wrapping External Dependencies
7.4.3 Benefits of Wrapping External Dependencies
7.4.4 Creating Custom Exception Types
7.4.5 Logging and Monitoring
7.4.6 Graceful Degradation
7.4.7 Documentation
7.5 Avoiding Null References
7.5.1 The Problem with Null References
7.5.2 Techniques for Avoiding Null References
7.5.3 Null Reference Handling Best Practices
Chapter 8: Boundaries
8.1 Working with External Code
8.1.1 Understanding External Dependencies
8.1.2 Isolation and Decoupling
8.1.3 Dependency Management
8.1.4 Testing and Mocking
8.1.5 Documentation and Communication
8.2 Using Third-Party Libraries
8.2.1 Choosing the Right Libraries
8.2.2 Managing Library Dependencies
8.2.3 Versioning Strategies
8.2.4 Code Quality and Third-Party Code
8.2.5 Documentation and Training
8.2.6 Monitoring and Updates
8.3 Wrapping External APIs
8.3.1 The Need for Wrapping
8.3.2 Wrapping External APIs
8.3.3 Benefits of Wrapping
8.3.4 Design Considerations
8.4 Learning Boundaries Through Tests
8.4.1 The Challenges of Boundary Interaction
8.4.2 Writing Tests for Boundary Interactions
8.4.3 Strategies for Boundary Tests
8.4.4 Continuous Learning
8.5 Decoupling from Frameworks
8.5.1 The Dangers of Tight Coupling
8.5.2 Techniques for Decoupling
8.5.3 Benefits of Decoupling
Chapter 9: Unit Tests
9.1 The Role of Unit Tests in Clean Code
What Are Unit Tests?
The Benefits of Unit Tests
Test-Driven Development (TDD)
Conclusion
9.2 Writing Clean Tests
9.2.1 The Characteristics of Clean Tests
9.2.2 Tips for Writing Clean Tests
9.2.3 Clean Test Code Example
9.3 Testing Private Methods
9.3.1 The Case for Testing Private Methods
9.3.2 Strategies for Testing Private Methods
9.3.3 Guidelines for Testing Private Methods
9.4 The Three Laws of TDD (Test-Driven Development)
9.4.1 The First Law: You Must Write a Failing Test Before You Write
Production Code
9.4.2 The Second Law: You Must Write Only Enough Production Code to
Make the Test Pass
9.4.3 The Third Law: You Must Refactor Only After Writing a Passing
Test
9.5 The Clean Test Mindset
9.5.1 Clarity and Readability
9.5.2 Isolation and Independence
9.5.3 Maintainability and Refactoring
9.5.4 Coverage and Completeness
9.5.5 Automation and Continuous Integration
Chapter 10: Classes
10.1 Class Design Principles
The Significance of Class Design
SOLID Principles
Cohesion and Coupling
Class Size and Complexity
Inheritance and Composition
Design for Change
10.2 Keeping Classes Small and Focused
The Problems of Large Classes
Strategies for Keeping Classes Small
Benefits of Small and Focused Classes
10.3 Single Responsibility Principle (SRP)
Understanding the SRP
Benefits of SRP
Practical Application of SRP
10.4 Cohesion and Coupling
Cohesion
Coupling
Balancing Cohesion and Coupling
10.5 The Open-Closed Principle (OCP)
1. Abstraction and Interfaces
2. Extension Points
3. Dependency Injection
4. Use of Design Patterns
Chapter 11: Systems
Section 11.1: The Architecture of Clean Systems
Section 11.2: Separating High-Level Policy from Low-Level Details
Section 11.3: Dependency Inversion Principle (DIP)
Understanding the Dependency Inversion Principle
Dependency Inversion in Practice
Benefits of the Dependency Inversion Principle
Section 11.4: High-Level Modules and Abstraction
The Role of High-Level Modules
Abstraction Within High-Level Modules
Example of Abstraction in High-Level Modules
Section 11.5: The Main Program and the Structure of Systems
The Role of the Main Program
Principles for Structuring Systems
Example of System Structure
Chapter 12: Emergence
Section 12.1: What Is Emergent Design?
Section 12.2: Patterns and Design Smells
Design Patterns:
Design Smells:
Addressing Design Smells:
Section 12.3: Refactoring and Clean Code
The Role of Refactoring:
Refactoring Techniques:
The Refactoring Workflow:
Emergent Design and Refactoring:
Section 12.4: Pragmatic vs. Dogmatic Design
Pragmatic Design:
Dogmatic Design:
Choosing the Right Approach:
Section 12.5: Designing with Simplicity and Flexibility
The Value of Simplicity:
The Need for Flexibility:
Balancing Simplicity and Flexibility:
Chapter 13: Concurrency
Section 13.1: Understanding Concurrency Challenges
What Is Concurrency?
Challenges in Concurrent Programming:
Concurrency Models:
Tools and Libraries:
When to Use Concurrency:
Section 13.2: Writing Safe Concurrent Code
Immutable Data Structures
Thread-Local Storage
Lock-Free and Non-Blocking Algorithms
Proper Use of Locks
Testing and Debugging
Avoiding Shared Mutable State
Conclusion
Section 13.3: Encapsulating Shared State
The Challenge of Shared State
Encapsulation through Object-Oriented Principles
Using Locks and Synchronization
Immutable Data Structures
Message Passing
Conclusion
Section 13.4: Choosing the Right Concurrency Tools
Threads and Thread Pools
Fork-Join Framework
Asynchronous Programming
Actor Model
Concurrency Libraries
Considerations for Choosing Concurrency Tools
Section 13.5: Testing Concurrent Code
The Importance of Concurrent Testing
Strategies for Concurrent Testing
Testing Tools and Frameworks
Testing Best Practices
Chapter 14: Successive Refinement
Section 14.1: The Process of Refining Code
Section 14.2: Refactoring Techniques
1. Extract Method
2. Rename Variables and Functions
3. Remove Code Duplication
4. Simplify Conditional Expressions
5. Encapsulate Conditional Logic
Section 14.3: Building Up Layers of Abstraction
Abstraction Benefits
Creating Abstractions
Example of Abstraction
Conclusion
Section 14.4: The Importance of Communication
Code as a Communication Medium
Writing Self-Explanatory Code
Collaborative Development
Documentation and Comments
Conclusion
Section 14.5: Code Clarity Through Refinement
The Continuous Improvement Cycle
Code Clarity Goals
Balancing Refinement
Chapter 15: JUnit Internals
Section 15.1: Examining the JUnit Framework
Understanding the JUnit Framework
Writing a Simple JUnit Test
Running JUnit Tests
Section 15.2: Implementing Your Own Test Framework
The Basic Structure of a Test Framework
A Minimal Test Framework in Java
Building a Full-Fledged Test Framework
Section 15.3: Writing Testable Code
The Importance of Testable Code
Principles of Writing Testable Code
Writing Testable Code Example
Section 15.4: The Role of Test Automation
Benefits of Test Automation
Types of Automated Tests
Test Automation Tools
Challenges in Test Automation
Conclusion
Section 15.5: Test Smells and Refactoring Tests
Understanding Test Smells
Refactoring Tests
Continuous Improvement
Chapter 16: Refactoring SerialDate
Section 16.1: Real-Life Refactoring Example
Section 16.2: Analyzing SerialDate’s Problems
1. Large and Complex Methods
2. Lack of Modularity
3. Inconsistent Naming
4. Low Testability
5. Inefficient Data Structures
Section 16.3: The Refactoring Process
1. Create a Test Suite
2. Identify and Isolate Concerns
3. Extract Small, Focused Functions
4. Improve Naming and Documentation
5. Enhance Testability
6. Replace Inefficient Data Structures and Algorithms
7. Continuous Testing and Validation
8. Incremental Refactoring
9. Code Review and Collaboration
10. Measure Progress
Section 16.4: Incremental Refactoring Steps
Step 1: Create a Test Suite
Step 2: Isolate Parsing Logic
Step 3: Refactor Date Calculation Methods
Step 4: Improve Naming and Documentation
Step 5: Extract Formatting Logic
Step 6: Enhance Testability
Step 7: Replace Inefficient Algorithms
Step 8: Continuous Testing and Validation
Step 9: Incremental and Iterative
Step 10: Code Review and Collaboration
Step 11: Measure Progress
Section 16.5: The Benefits of Clean Code
1. Improved Readability
2. Enhanced Maintainability
3. Reduced Technical Debt
4. Easier Collaboration
5. Better Debugging
6. Increased Developer Productivity
7. Code Reusability
8. Confidence in Changes
9. Enhanced Documentation
10. Long-Term Cost Savings
11. Developer Satisfaction
12. Software Resilience
Chapter 17: Smells and Heuristics
Section 17.1: Recognizing Code Smells
Section 17.2: Common Code Smells and Solutions
Duplicated Code (DRY Violation)
Long Methods
Large Classes
Complex Conditional Logic
Section 17.3: Heuristic Guidelines for Clean Code
Section 17.4: Applying Heuristics to Real Projects
Section 17.5: Continuous Improvement
Section 18.1: More on Concurrency Challenges
Section 18.2: Advanced Concurrency Patterns
1. Producer-Consumer Pattern
2. Readers-Writers Pattern
3. Thread Pool Pattern
4. Futures and Promises
Section 18.3: Parallelism and Multithreading
Parallelism vs. Multithreading
Benefits of Parallelism and Multithreading
Challenges in Parallelism and Multithreading
Example: Multithreading in Java
Section 18.4: Handling Deadlocks and Starvation
Deadlocks
Starvation
Example: Deadlock Prevention in Java
Section 18.5: Practical Tips for Concurrent Systems
1. Understand the Problem Domain
2. Use Thread-Safe Data Structures
3. Minimize Shared State
4. Favor High-Level Concurrency Abstractions
5. Follow the Principle of Least Privilege
6. Embrace Asynchronous Programming
7. Profile and Monitor
8. Test Thoroughly
9. Use Proper Synchronization
10. Graceful Shutdown
11. Plan for Scalability
12. Document Concurrency Strategies
13. Stay Informed
Chapter 19: Appendix B: Decimal I/O
Section 19.1: Decimal Formatting and Parsing
Decimal Number Representation
Formatting Decimal Numbers
Parsing Decimal Numbers
Challenges in Decimal I/O
Section 19.2: Challenges in Decimal I/O
1. Precision and Rounding
2. Locale and Culture Differences
3. Handling Errors
4. Performance Considerations
Section 19.3: Writing a Decimal Formatter
Basic Decimal Formatting
Handling Locale-Specific Formatting
Customizing Formatting
Decimal Formatting Libraries
Section 19.4: Designing the Decimal Parser
Challenges in Decimal Parsing
Basic Decimal Parsing
Handling Locale-Specific Parsing
Customizing Parsing
Section 19.5: Error Handling in Decimal I/O
Common Error Scenarios
Handling Errors in Decimal Formatting
Handling Errors in Decimal Parsing
Providing User-Friendly Feedback
Logging and Monitoring
Chapter 20: Appendix C: How to Transform Employee
Section 20.1: Refactoring Employee’s Design
Analyzing the Existing Design
Restructuring the Class
Benefits of Refactoring
Conclusion
Section 20.2: Analyzing and Identifying Problems
Bloated Class
Lack of Abstraction
Coupling
Testability
Open-Closed Principle Violation
Inadequate Separation of Concerns
Section 20.3: Restructuring Employee’s Class
Step 1: Identify Responsibilities
Step 2: Create Separate Classes
Step 3: Decouple Classes
Step 4: Unit Testing
Step 5: Extensibility
Step 6: Maintainability
Step 7: Better Separation of Concerns
Section 20.4: The Final Transformed Employee
The Transformed Employee Class
Benefits of the Transformation
Conclusion
Section 20.5: The Journey to Clean Code
1. Principles of Clean Code
2. Object-Oriented Design
3. Test-Driven Development (TDD)
4. Code Refactoring
5. Design Patterns and Smells
6. Continuous Improvement
7. Collaboration and Communication
8. Software Craftsmanship
Other documents randomly have
different content
The Project Gutenberg eBook of My Brother,
Theodore Roosevelt
This ebook is for the use of anyone anywhere in the United
States and most other parts of the world at no cost and with
almost no restrictions whatsoever. You may copy it, give it away
or re-use it under the terms of the Project Gutenberg License
included with this ebook or online at www.gutenberg.org. If you
are not located in the United States, you will have to check the
laws of the country where you are located before using this
eBook.
Title: My Brother, Theodore Roosevelt
Author: Corinne Roosevelt Robinson
Release date: April 22, 2016 [eBook #51831]
Most recently updated: October 23, 2024
Language: English
Credits: E-text prepared by WebRover, Chris Curnow, Charlie
Howard, and the Online Distributed Proofreading Team
(http://www.pgdp.net) from page images generously
made available by Internet Archive
(https://archive.org)
*** START OF THE PROJECT GUTENBERG EBOOK MY BROTHER,
THEODORE ROOSEVELT ***
The Project Gutenberg eBook, My Brother Theodore Roosevelt,
by Corinne Roosevelt Robinson
Note:Images of the original pages are available through
Internet Archive. See
https://archive.org/details/mybrothertheodor1921robi
MY BROTHER
THEODORE ROOSEVELT
From a photograph, copyright by C. Le Gendre.
Theodore Roosevelt with his little
granddaughter,
Edith Roosevelt Derby, 1918.
MY BROTHER
THEODORE ROOSEVELT
BY
CORINNE ROOSEVELT ROBINSON
WITH ILLUSTRATIONS
NEW YORK
CHARLES SCRIBNER’S SONS
1921
Copyright, 1921, by
CHARLES SCRIBNER’S SONS
Published September, 1921
THE SCRIBNER PRESS
WITH TENDER AFFECTION I DEDICATE THIS BOOK
TO MY SISTER
ANNA ROOSEVELT COWLES
WHOSE UNSELFISH DEVOTION TO HER BROTHER
THEODORE ROOSEVELT
NEVER WAVERED THROUGH HIS WHOLE LIFE, AND FOR
WHOM
HE HAD FROM CHILDHOOD
A DEEP AND UNSWERVING LOVE AND ADMIRATION
PREFACE
This Preface I write to my fellow countrymen as I give into their
hands these intimate reminiscences of my brother, Theodore
Roosevelt.
A year and a half ago I was invited by the City History Club of
New York to make an address about my brother on Washington’s
Birthday. Upon being asked what I would call my speech, I replied
that as George Washington was the “Father of his country,” as
Abraham Lincoln was the “Saviour of his country,” so Theodore
Roosevelt was the “Brother of his country,” and that, therefore, the
subject of my speech would be “The Brother of His Country.”
In the same way, I feel that in giving to the public these almost
confidential personal recollections, I do so because of the attitude of
that very public toward Theodore Roosevelt. There is no sacrilege in
sharing such memories with the people who have loved him, and
whom he loved so well.
This book is not a biography, it is not a political history of the
times, although I have been most careful in the effort to record facts
accurately, and carefully to search my memory before relating
conversations or experiences; it is, I hope, a clear picture, drawn at
close hand by one who, because of her relationship to him and her
intercourse with him, knew his loyalty and tenderness of heart in a
rare and satisfying way, and had unusual opportunity of
comprehending the point of view, and therefore perhaps of clarifying
the point of view, of one of the great Americans of the day.
As I have reread his letters to me, as I have dwelt upon our long
and devoted friendship—for we were even more friends than brother
and sister—his character stands out to me more strongly than ever
before as that of “The Great Sharer.” He shared all that he had—his
worldly goods, his strong mentality, his wide sympathy, his joyous
fun, and his tender comprehension—with all those with whom he
came in contact, and especially with those closest and dearest to
him—the members of his own family and his sisters.
In the spirit of confidence that my frankness will not be
misunderstood, I place a sister’s interpretation of a world-wide
personality in the hands of my fellow Americans.
Corinne Roosevelt Robinson.
September, 1921.
CONTENTS
PAGE
I. The Nursery and Its Deities 1
II. Green Fields and Foreign Faring 34
III. The Dresden Literary American Club 69
IV. College Chums and New-Found Leadership 94
V. The Young Reformer 116
VI. The Elkhorn Ranch and Near-Roughing It in
Yellowstone Park 135
VII. Two Recreant New York Policemen 155
VIII. Cowboy and Clubman 164
IX. The Rough Rider Storms the Capitol at
Albany 181
X. How the Path Led to the White House 194
XI. Home Life in the White House 206
XII. Home Life in the White House (Continued) 236
XIII. Wall Street Hopes Every Lion Will Do Its
Duty 254
XIV. The Great Denial 264
XV. Whisperings of War 276
XVI. “Do It Now” 303
XVII. War 323
XVIII. “The Quiet Quitting” 359
ILLUSTRATIONS
Theodore Roosevelt with his little
granddaughter, Edith Roosevelt
Derby, 1918 Frontispiece
FACING PAGE
Theodore Roosevelt, Sr., aged thirty, 1862 8
Martha Bulloch Roosevelt, twenty-two years old,
about 1856 8
Theodore Roosevelt, about eighteen months old,
1860 18
Theodore Roosevelt, about four years old, 1862 18
Elliott Roosevelt, aged five and a half years,
about 1865 32
Corinne Roosevelt, about four years old, 1865 32
Theodore Roosevelt, aged seven, 1865 32
Corinne Roosevelt, 1869, at seven and a half
years 46
Theodore Roosevelt at ten years of age 46
Anna Roosevelt at the age of fifteen when she
spoke of herself as one of the “three older
ones” 46
The Dresden Literary American Club—Motto,
“W. A. N. A.” (“We Are No Asses”) 72
Theodore Roosevelt, Oyster Bay, September 21,
1875 92
Theodore Roosevelt, December, 1876, aged
eighteen 92
Portrait taken in Chicago, July, 1880, on the way
to the hunting trip of that season 114
We had that lovely dinner on the portico at the
back of the White House looking toward the
Washington Monument 230
A review of New York’s drafted men before going
into training in September, 1917 332
MY BROTHER
THEODORE ROOSEVELT
THE STAR
Epiphany, 1919
Great soul, to all brave souls akin,
High bearer of the torch of truth,
Have you not gone to marshal in
Those eager hosts of youth?
Flung outward on the battle’s tide,
They met in regions dim and far;
And you, in whom youth never died,
Shall lead them, as a star.
—MARION COUTHOUY SMITH.
MY BROTHER THEODORE
ROOSEVELT
T
I
THE NURSERY AND ITS DEITIES
he first recollections of a child are dim and hazy, and so the
nursery at 28 East 20th Street, in New York City, does not
stand out as clearly to me as I wish it did—but the
personality of my brother overshadowed the room, as his personality
all through life dominated his environment.
I suppose I must have been about four, and he about seven,
when my first memory takes definite form. My older sister, Anna,
though only four years older than my brother Theodore, was always
mysteriously classed with the “grown people,” and the “nursery”
consisted of my brother Theodore, my brother Elliott, a year and a
half younger than Theodore, and myself, still a year and a half
younger than Elliott.
In those days we were “Teedie,” “Ellie,” and “Conie,” and we had
the most lovely mother, the most manly, able, and delightful father,
and the most charming aunt, Anna Bulloch, the sister of my
Southern mother, with whom children were ever blessed.
Theodore Roosevelt, whose name later became the synonym of
virile health and vigor, was a fragile, patient sufferer in those early
days of the nursery in 20th Street. I can see him now struggling with
the effort to breathe—for his enemy was that terrible trouble,
asthma—but always ready to give the turbulent “little ones” the
drink of water, book, or plaything which they vociferously demanded,
or equally ready to weave for us long stories of animal life—stories
closely resembling the jungle stories of Kipling—for Mowgli had his
precursor in the brain of the little boy of seven or eight, whose
knowledge of natural history even at that early age was strangely
accurate, and whose imagination gave to the creatures of forest and
field impersonations as vivid as those which Rudyard Kipling has
made immortal for all time.
We used to sit, Elliott and I, on two little chairs, near the higher
chair which was his, and drink in these tales of endless variety, and
which always were “to be continued in our next”—a serial story
which never flagged in interest for us, though sometimes it
continued from week to week, or even from month to month.
It was in the nursery that he wrote, at the age of seven, the
famous essay on “The Foregoing Ant.” He had read in Wood’s
“Natural History” many descriptions of various species of ant, and in
one instance on turning the page the author continued: “The
foregoing ant has such and such characteristics.” The young
naturalist, thinking that this particular ant was unique, and being
specially interested in its forthgoing character, decided to write a
thesis on “The Foregoing Ant,” to the reading of which essay he
called in conclave “the grown people.” One can well imagine the
tender amusement over the little author, an amusement, however,
which those wise “grown people” of 28 East 20th Street never let
degenerate into ridicule.
No memories of my brother could be accurate without an
analysis of the personalities who formed so big a part of our
environment in childhood, and I feel that my father, the first
Theodore Roosevelt, has never been adequately described.
He was the son of Cornelius Van Shaack and Margaret Barnhill
Roosevelt, whose old home on the corner of 14th Street and
Broadway was long a landmark in New York City. Cornelius Van
Shaack Roosevelt was a typical merchant of his day, fine and true
and loyal, but ultraconservative in many ways; and his lovely wife, to
whom he addressed, later, such exquisite poems that I have always
felt that they should have been given more than private circulation,
was a Pennsylvanian of Quaker blood.
The first Theodore Roosevelt was the youngest of five sons, and
I remember my mother used to tell me how friends of her mother-
in-law once told her that Mrs. Cornelius Van Shaack Roosevelt was
always spoken of as “that lovely Mrs. Roosevelt” with those “five
horrid boys.”
As far as I can see, the unpleasant adjective “horrid” was only
adaptable to the five little boys from the usual standpoint of boyish
mischief, untidiness, and general youthful irrepressibleness.
The youngest, my father, Theodore Roosevelt, often told us
himself how he deplored the fate of being the “fifth wheel to the
coach,” and of how many a mortification he had to endure by
wearing clothes cut down from the different shapes of his older
brothers, and much depleted shoes about which, once, on
overhearing his mother say, “These were Robert’s, but will be a good
change for Theodore,” he protested vigorously, crying out that he
was “tired of changes.”
As the first Theodore grew older he developed into one of the
most enchanting characters with whom I, personally, have ever
come in contact; sunny, gay, dominant, unselfish, forceful, and
versatile, he yet had the extraordinary power of being a focussed
individual, although an “all-round” man. Nothing is as difficult as to
achieve results in this world if one is filled full of great tolerance and
the milk of human kindness. The person who achieves must
generally be a one-ideaed individual, concentrated entirely on that
one idea, and ruthless in his aspect toward other men and other
ideas.
My father, in his brief life of forty-six years, achieved almost
everything he undertook, and he undertook many things, but,
although able to give the concentration which is necessary to
achievement, he had the power of interesting himself in many things
outside of his own special interests, and by the most delicate and
comprehending sympathy made himself a factor in the lives of any
number of other human beings.
My brother’s great love for his humankind was a direct
inheritance from the man who was one of the founders in his city of
nearly every patriotic, humanitarian, and educational endeavor. I
think, perhaps, the combination of the stern old Dutch blood with
the Irish blood, of which my brother always boasted, made my
father what he was—unswerving in duty, impeccable in honesty and
uprightness, and yet responsive to the joy of life to such an extent
that he would dance all night, and drive his “four-in-hand” coach so
fast that the old tradition was “that his grooms frequently fell out at
the corners”!
I remember that he always gave up one day of every week (and
he was a very busy merchant and then banker) to the personal
visiting of the poor in their homes. He was not satisfied with doing
active work on many organizations, although he did the most
extraordinary amount of active organization work, being one of the
founders of the Children’s Aid Society, of the State Aid Society, of the
Sanitary Commission and Allotment Commission in the time of the
Civil War, and of the Orthopædic Hospital, not to mention the
Museum of Natural History and the Museum of Art—but he felt that
even more than this organized effort must be the effort to get close
to the hearts and homes of those who were less fortunately situated
than he.
My older sister suffered from spinal trouble, and my father was
determined to leave no stone unturned to make her body fit for life’s
joys and life’s labors, and it was because of his efforts to give his
little girl health—successful efforts—that in co-operation with his
friends Howard Potter and James M. Brown and several others he
started the great work of the New York Orthopædic Hospital, having
become imbued with belief in the methods of a young doctor,
Charles Fayette Taylor. Nobody at that time believed in treating such
diseases in quite the way in which modern orthopædy treats them
now, but my father, like his son, had the vision of things to be, and
was a leader in his way, as was my brother in his.
He could not at first influence sufficient people to start the
building of a hospital, and he decided that if the New York public
could only see what the new instruments would do for the stricken
children, that it could be aroused to assist the enterprise.
And so, one beautiful spring afternoon, my mother gave what
was supposed to be a purely social reception at our second home, at
6 West 57th Street, and my father saw to it that the little sufferers in
whom he was interested were brought from their poverty-stricken
homes to ours and laid upon our dining-room table, with the steel
appliances which could help them back to normal limbs on their
backs and legs, thus ready to visualize to New York citizens how
these stricken little people might be cured. He placed me by the
table where the children lay, and explained to me how I could show
the appliances, and what they were supposed to achieve; and I can
still hear the voice of the first Mrs. John Jacob Astor, as she leaned
over one fragile-looking child and, turning to my father, said:
“Theodore, you are right; these children must be restored and made
into active citizens again, and I for one will help you in your work.”
That very day enough money was donated to start the first
Orthopædic Hospital, in East 59th Street. Many business friends of
my father used to tell me that they feared his sudden visits when,
with a certain expression in his eyes, he would approach them, for
then before he could say anything at all they would feel obliged to
take out their pocketbooks and ask: “How much this time,
Theodore?”
One of his most devoted interests was the newsboys’ lodging-
house in West 18th Street, and later in 35th Street, under the
auspices of the Children’s Aid Society. Every Sunday evening of his
life he went to that lodging-house, after our early hospitable Sunday
supper, to which many a forlorn relation or stranded stranger in New
York was always invited, and there he would talk to the boys, giving
Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.
More than just a book-buying platform, we strive to be a bridge
connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.
Join us on a journey of knowledge exploration, passion nurturing, and
personal growth every day!
ebookmasss.com

Clean Code. An Agile Guide to Software Craft Kameron H.

  • 1.
    Download the fullversion and explore a variety of ebooks or textbooks at https://ebookmass.com Clean Code. An Agile Guide to Software Craft Kameron H. _____ Tap the link below to start your download _____ https://ebookmass.com/product/clean-code-an-agile-guide-to- software-craft-kameron-h/ Find ebooks or textbooks at ebookmass.com today!
  • 2.
    Here are somerecommended products for you. Click the link to download, or explore more at ebookmass.com Clean Architecture A Craftsman's Guide to Software Structure and Design-Pearson Education 1st edition Edition Martin https://ebookmass.com/product/clean-architecture-a-craftsmans-guide- to-software-structure-and-design-pearson-education-1st-edition- edition-martin/ Agile Project Management: Creating Innovative Products (Agile Software Development Series) 2nd Edition, (Ebook PDF) https://ebookmass.com/product/agile-project-management-creating- innovative-products-agile-software-development-series-2nd-edition- ebook-pdf/ Engineering Software Products: An Introduction to Modern Software Engineering Ian Sommerville https://ebookmass.com/product/engineering-software-products-an- introduction-to-modern-software-engineering-ian-sommerville/ Agile Software Development : Trends, Challenges and Applications 1st Edition Susheela Hooda https://ebookmass.com/product/agile-software-development-trends- challenges-and-applications-1st-edition-susheela-hooda/
  • 3.
    The Project Manager'sGuide to Mastering Agile: Principles and Practices for an Adaptive Approach, 2nd Edition Charles G. Cobb https://ebookmass.com/product/the-project-managers-guide-to-mastering- agile-principles-and-practices-for-an-adaptive-approach-2nd-edition- charles-g-cobb/ Invention and Craft: A Guide to College Writing 1st Edition Ronda Leathers Dively https://ebookmass.com/product/invention-and-craft-a-guide-to-college- writing-1st-edition-ronda-leathers-dively/ Linux Unveiled: From Novice to Guru Kameron Hussain https://ebookmass.com/product/linux-unveiled-from-novice-to-guru- kameron-hussain/ The Software Developer's Guide to Linux: A practical, no- nonsense guide to using the Linux command line and utilities as a software developer David Cohen https://ebookmass.com/product/the-software-developers-guide-to-linux- a-practical-no-nonsense-guide-to-using-the-linux-command-line-and- utilities-as-a-software-developer-david-cohen/ The Software Developer's Guide to Linux: A practical, no- nonsense guide to using the Linux command line and utilities as a software developer David Cohen https://ebookmass.com/product/the-software-developers-guide-to-linux- a-practical-no-nonsense-guide-to-using-the-linux-command-line-and- utilities-as-a-software-developer-david-cohen-2/
  • 5.
    Clean Code: AnAgile Guide to Software Craft Kameron Hussain and Frahaan Hussain Published by Sonar Publishing, 2023.
  • 6.
    While every precautionhas been taken in the preparation of this book, the publisher assumes no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. CLEAN CODE: AN AGILE GUIDE TO SOFTWARE CRAFT First edition. October 15, 2023. Copyright © 2023 Kameron Hussain and Frahaan Hussain. Written by Kameron Hussain and Frahaan Hussain.
  • 7.
    Table of Contents TitlePage Copyright Page Clean Code: An Agile Guide to Software Craft Chapter 1: Clean Code Chapter 2: Meaningful Names Chapter 3: Functions Chapter 4: Comments Chapter 5: Formatting Chapter 6: Objects and Data Structures Chapter 7: Error Handling Chapter 8: Boundaries Chapter 9: Unit Tests
  • 8.
    Chapter 10: Classes Chapter13: Concurrency Chapter 15: JUnit Internals Chapter 19: Appendix B: Decimal I/O Chapter 20: Appendix C: How to Transform Employee
  • 9.
    Table of Contents Chapter1: Clean Code 1.1 What Is Clean Code? The Benefits of Clean Code Characteristics of Clean Code 1.2 Why Does Clean Code Matter? 1.2.1 Readability and Understanding 1.2.2 Maintainability 1.2.3 Debugging and Error Detection 1.2.4 Collaboration 1.2.5 Code Reviews and Quality Assurance 1.2.6 Long-Term Sustainability 1.3 The Principles of Clean Code
  • 10.
    1.3.1 DRY (Don’tRepeat Yourself) Principle 1.3.2 SRP (Single Responsibility Principle) 1.3.3 KISS (Keep It Simple, Stupid) Principle 1.3.4 YAGNI (You Ain’t Gonna Need It) Principle 1.4 A Case for Software Craftsmanship 1.4.1 Beyond Functional Code 1.4.2 Code as a Reflection of Thought 1.4.3 Continuous Improvement 1.4.4 Attention to Detail 1.4.5 Code That Stands the Test of Time 1.4.6 Pride in Work 1.4.7 Collaboration and Mentorship 1.4.8 Balancing Pragmatism and Perfection 1.5 How Clean Code Enhances Agile Development
  • 11.
    1.5.1 Readability andAdaptability 1.5.2 Continuous Integration and Delivery 1.5.3 Collaboration and Code Reviews 1.5.4 Test-Driven Development (TDD) 1.5.5 Agile Refactoring 1.5.6 Reduced Technical Debt 1.5.7 Empowering Cross-Functional Teams Chapter 2: Meaningful Names 2.1 The Importance of Good Names 2.1.1 Readability and Comprehensibility 2.1.2 Documentation Through Naming 2.1.3 Maintainability 2.1.4 Reducing Cognitive Load 2.1.5 Consistency and Conventions
  • 12.
    2.2 Choosing Descriptiveand Pronounceable Names 2.2.1 Descriptive Names 2.2.2 Pronounceable Names 2.2.3 Meaningful Variable Names 2.2.4 Method and Function Names 2.2.5 Class and Object Names 2.3 Avoiding Disinformation and Misleading Names 2.3.1 Misleading Names Can Be Dangerous 2.3.2 Be Precise and Specific 2.3.3 Be Wary of Abbreviations and Acronyms 2.3.4 Consistency Matters 2.3.5 Use Domain-Specific Language 2.3.6 Seek Feedback 2.4 Using Names that Reveal Intent
  • 13.
    2.4.1 Code asDocumentation 2.4.2 Intent-Driven Naming 2.4.3 Choose Verbs and Nouns Thoughtfully 2.4.4 Avoid Generic Names 2.4.5 Maintainability and Understanding 2.4.6 Refactoring with Confidence 2.5 Making Meaningful Distinctions in Names 2.5.1 Avoid Ambiguity 2.5.2 Use Context for Distinctions 2.5.3 Add Qualifiers 2.5.4 Avoid Overloading Names 2.5.5 Maintain a Consistent Approach 2.5.6 Prioritize Clarity
  • 14.
    Chapter 3: Functions 3.1The Role of Functions in Clean Code 3.1.1 Functions as Abstractions 3.1.2 Small and Focused Functions 3.1.3 Function Names and Readability 3.1.4 Function Arguments and Side Effects 3.1.5 Encapsulation and Reusability 3.2 Small and Focused Functions 3.2.1 The Single Responsibility Principle (SRP) 3.2.2 Benefits of Small and Focused Functions 3.2.3 Guidelines for Creating Small and Focused Functions 3.3 Function Arguments and Side Effects 3.3.1 Minimizing Function Arguments 3.3.2 Minimizing Side Effects
  • 15.
    3.3.3 Emphasizing PureFunctions 3.3.4 Function Signatures and Documentation 3.3.5 Achieving Clean and Predictable Code 3.4 Command Query Separation 3.4.1 Commands 3.4.2 Queries 3.4.3 Benefits of CQS 3.4.4 CQS in Practice 3.5 Error Handling in Functions 3.5.1 The Nature of Errors 3.5.2 Error Handling Strategies 3.5.3 Using Exceptions for Error Handling 3.5.4 Wrapping External Dependencies
  • 16.
    3.5.5 Avoiding NullReferences Chapter 4: Comments 4.1 When to Write Comments 4.1.1 Providing Clarification 4.1.2 Documenting Intent 4.1.3 Explaining Non-Obvious Decisions 4.1.4 Describing Complex Algorithms 4.1.5 Warning about Known Issues 4.1.6 Keeping Comments Up-to-Date 4.2 Good Comments vs. Bad Comments 4.2.1 Good Comments 4.2.2 Bad Comments 4.2.3 Principles for Effective Comments 4.3 Writing Self-Explanatory Code
  • 17.
    4.3.1 Meaningful Variableand Function Names 4.3.2 Consistent Naming Conventions 4.3.3 Avoiding Magic Numbers and Strings 4.3.4 Clear and Logical Code Structure 4.3.5 Avoiding Nested and Complex Conditionals 4.3.6 Documentation as a Supplement 4.3.7 Code Reviews and Collaboration 4.4 Using Comments to Clarify Intent 4.4.1 Explaining Design Decisions 4.4.2 Documenting Algorithm Insights 4.4.3 Warning About Side Effects 4.4.4 Temporary Workarounds 4.4.5 Historical Context
  • 18.
    4.4.6 Best Practicesfor Comment Clarity 4.5 Avoiding Redundant Comments 4.5.1 Redundant Comments Defined 4.5.2 The Problem with Redundant Comments 4.5.3 When Are Comments Redundant? 4.5.4 Guidelines for Reducing Redundant Comments Chapter 5: Formatting 5.1 Code Formatting and Readability 5.1.1 The Significance of Code Formatting 5.1.2 Consistency Matters 5.1.3 Code Formatting Tools 5.1.4 Comments and Formatting 5.1.5 Practical Tips for Code Formatting 5.2 The Importance of Consistency
  • 19.
    5.2.1 Consistency inIndentation 5.2.2 Consistency in Spacing 5.2.3 Consistency in Naming Conventions 5.2.4 Consistency Across the Codebase 5.2.5 Benefits of Consistency 5.3 Horizontal Formatting 5.3.1 Line Length 5.3.2 Alignment 5.3.3 Operators and Indentation 5.3.4 Long Function Calls 5.3.5 Practical Tips for Horizontal Formatting 5.4 Vertical Formatting 5.4.1 Logical Grouping
  • 20.
    5.4.2 Readable Sections 5.4.3Vertical Density 5.4.4 Limited Function and Method Length 5.4.5 Practical Tips for Vertical Formatting 5.5 Comments and Formatting 5.5.1 When to Write Comments 5.5.2 Good Comments vs. Bad Comments 5.5.3 Writing Self-Explanatory Code 5.5.4 Avoiding Redundant Comments 5.5.5 Comment Formatting 5.5.6 Commenting for Future Developers 5.5.7 Documentation Tools 5.5.8 Practical Tips for Commenting Chapter 6: Objects and Data Structures
  • 21.
    6.1 Objects vs.Data Structures 6.1.1 Objects 6.1.2 Data Structures 6.1.3 Strengths of Objects 6.1.4 Strengths of Data Structures 6.1.5 Choosing Between Objects and Data Structures 6.2 The Law of Demeter 6.2.1 Understanding the Law of Demeter 6.2.2 Benefits of the Law of Demeter 6.2.3 Applying the Law of Demeter 6.3 Data Transfer Objects (DTOs) 6.3.1 Purpose of Data Transfer Objects 6.3.2 Characteristics of Data Transfer Objects
  • 22.
    6.3.3 Example ofData Transfer Objects 6.3.4 Drawbacks and Considerations 6.4 Active Objects 6.4.1 Key Concepts of Active Objects 6.4.2 Use Cases for Active Objects 6.4.3 Implementing Active Objects 6.4.4 Benefits and Considerations 6.5 Hiding Implementation Details 6.5.1 Benefits of Hiding Implementation Details 6.5.2 Techniques for Hiding Implementation Details 6.5.3 When to Hide Implementation Details Chapter 7: Error Handling 7.1 The Nature of Errors 7.1.1 Types of Errors
  • 23.
    7.1.2 The Impactof Errors 7.1.3 The Importance of Error Handling 7.1.4 Strategies for Error Handling 7.2 Error Handling Strategies 7.2.1 Defensive Programming 7.2.2 Exception Handling 7.2.3 Return Values and Error Codes 7.2.4 Graceful Degradation 7.2.5 Testing and Validation 7.3 Using Exceptions for Error Handling 7.3.1 How Exceptions Work 7.3.2 Advantages of Exception Handling 7.3.3 Best Practices for Exception Handling
  • 24.
    7.3.4 Handling Checkedvs. Unchecked Exceptions 7.3.5 Exception Handling in Multithreaded Environments 7.3.6 Using Exception Handling Frameworks 7.4 Wrapping External Dependencies 7.4.1 The Challenges of External Dependencies 7.4.2 Wrapping External Dependencies 7.4.3 Benefits of Wrapping External Dependencies 7.4.4 Creating Custom Exception Types 7.4.5 Logging and Monitoring 7.4.6 Graceful Degradation 7.4.7 Documentation 7.5 Avoiding Null References 7.5.1 The Problem with Null References 7.5.2 Techniques for Avoiding Null References
  • 25.
    7.5.3 Null ReferenceHandling Best Practices Chapter 8: Boundaries 8.1 Working with External Code 8.1.1 Understanding External Dependencies 8.1.2 Isolation and Decoupling 8.1.3 Dependency Management 8.1.4 Testing and Mocking 8.1.5 Documentation and Communication 8.2 Using Third-Party Libraries 8.2.1 Choosing the Right Libraries 8.2.2 Managing Library Dependencies 8.2.3 Versioning Strategies 8.2.4 Code Quality and Third-Party Code
  • 26.
    8.2.5 Documentation andTraining 8.2.6 Monitoring and Updates 8.3 Wrapping External APIs 8.3.1 The Need for Wrapping 8.3.2 Wrapping External APIs 8.3.3 Benefits of Wrapping 8.3.4 Design Considerations 8.4 Learning Boundaries Through Tests 8.4.1 The Challenges of Boundary Interaction 8.4.2 Writing Tests for Boundary Interactions 8.4.3 Strategies for Boundary Tests 8.4.4 Continuous Learning 8.5 Decoupling from Frameworks 8.5.1 The Dangers of Tight Coupling
  • 27.
    8.5.2 Techniques forDecoupling 8.5.3 Benefits of Decoupling Chapter 9: Unit Tests 9.1 The Role of Unit Tests in Clean Code What Are Unit Tests? The Benefits of Unit Tests Test-Driven Development (TDD) Conclusion 9.2 Writing Clean Tests 9.2.1 The Characteristics of Clean Tests 9.2.2 Tips for Writing Clean Tests 9.2.3 Clean Test Code Example 9.3 Testing Private Methods
  • 28.
    9.3.1 The Casefor Testing Private Methods 9.3.2 Strategies for Testing Private Methods 9.3.3 Guidelines for Testing Private Methods 9.4 The Three Laws of TDD (Test-Driven Development) 9.4.1 The First Law: You Must Write a Failing Test Before You Write Production Code 9.4.2 The Second Law: You Must Write Only Enough Production Code to Make the Test Pass 9.4.3 The Third Law: You Must Refactor Only After Writing a Passing Test 9.5 The Clean Test Mindset 9.5.1 Clarity and Readability 9.5.2 Isolation and Independence 9.5.3 Maintainability and Refactoring 9.5.4 Coverage and Completeness
  • 29.
    9.5.5 Automation andContinuous Integration Chapter 10: Classes 10.1 Class Design Principles The Significance of Class Design SOLID Principles Cohesion and Coupling Class Size and Complexity Inheritance and Composition Design for Change 10.2 Keeping Classes Small and Focused The Problems of Large Classes Strategies for Keeping Classes Small Benefits of Small and Focused Classes 10.3 Single Responsibility Principle (SRP)
  • 30.
    Understanding the SRP Benefitsof SRP Practical Application of SRP 10.4 Cohesion and Coupling Cohesion Coupling Balancing Cohesion and Coupling 10.5 The Open-Closed Principle (OCP) 1. Abstraction and Interfaces 2. Extension Points 3. Dependency Injection 4. Use of Design Patterns Chapter 11: Systems
  • 31.
    Section 11.1: TheArchitecture of Clean Systems Section 11.2: Separating High-Level Policy from Low-Level Details Section 11.3: Dependency Inversion Principle (DIP) Understanding the Dependency Inversion Principle Dependency Inversion in Practice Benefits of the Dependency Inversion Principle Section 11.4: High-Level Modules and Abstraction The Role of High-Level Modules Abstraction Within High-Level Modules Example of Abstraction in High-Level Modules Section 11.5: The Main Program and the Structure of Systems The Role of the Main Program Principles for Structuring Systems Example of System Structure
  • 32.
    Chapter 12: Emergence Section12.1: What Is Emergent Design? Section 12.2: Patterns and Design Smells Design Patterns: Design Smells: Addressing Design Smells: Section 12.3: Refactoring and Clean Code The Role of Refactoring: Refactoring Techniques: The Refactoring Workflow: Emergent Design and Refactoring: Section 12.4: Pragmatic vs. Dogmatic Design Pragmatic Design:
  • 33.
    Dogmatic Design: Choosing theRight Approach: Section 12.5: Designing with Simplicity and Flexibility The Value of Simplicity: The Need for Flexibility: Balancing Simplicity and Flexibility: Chapter 13: Concurrency Section 13.1: Understanding Concurrency Challenges What Is Concurrency? Challenges in Concurrent Programming: Concurrency Models: Tools and Libraries: When to Use Concurrency: Section 13.2: Writing Safe Concurrent Code
  • 34.
    Immutable Data Structures Thread-LocalStorage Lock-Free and Non-Blocking Algorithms Proper Use of Locks Testing and Debugging Avoiding Shared Mutable State Conclusion Section 13.3: Encapsulating Shared State The Challenge of Shared State Encapsulation through Object-Oriented Principles Using Locks and Synchronization Immutable Data Structures Message Passing
  • 35.
    Conclusion Section 13.4: Choosingthe Right Concurrency Tools Threads and Thread Pools Fork-Join Framework Asynchronous Programming Actor Model Concurrency Libraries Considerations for Choosing Concurrency Tools Section 13.5: Testing Concurrent Code The Importance of Concurrent Testing Strategies for Concurrent Testing Testing Tools and Frameworks Testing Best Practices Chapter 14: Successive Refinement
  • 36.
    Section 14.1: TheProcess of Refining Code Section 14.2: Refactoring Techniques 1. Extract Method 2. Rename Variables and Functions 3. Remove Code Duplication 4. Simplify Conditional Expressions 5. Encapsulate Conditional Logic Section 14.3: Building Up Layers of Abstraction Abstraction Benefits Creating Abstractions Example of Abstraction Conclusion Section 14.4: The Importance of Communication Code as a Communication Medium
  • 37.
    Writing Self-Explanatory Code CollaborativeDevelopment Documentation and Comments Conclusion Section 14.5: Code Clarity Through Refinement The Continuous Improvement Cycle Code Clarity Goals Balancing Refinement Chapter 15: JUnit Internals Section 15.1: Examining the JUnit Framework Understanding the JUnit Framework Writing a Simple JUnit Test Running JUnit Tests
  • 38.
    Section 15.2: ImplementingYour Own Test Framework The Basic Structure of a Test Framework A Minimal Test Framework in Java Building a Full-Fledged Test Framework Section 15.3: Writing Testable Code The Importance of Testable Code Principles of Writing Testable Code Writing Testable Code Example Section 15.4: The Role of Test Automation Benefits of Test Automation Types of Automated Tests Test Automation Tools Challenges in Test Automation Conclusion
  • 39.
    Section 15.5: TestSmells and Refactoring Tests Understanding Test Smells Refactoring Tests Continuous Improvement Chapter 16: Refactoring SerialDate Section 16.1: Real-Life Refactoring Example Section 16.2: Analyzing SerialDate’s Problems 1. Large and Complex Methods 2. Lack of Modularity 3. Inconsistent Naming 4. Low Testability 5. Inefficient Data Structures Section 16.3: The Refactoring Process
  • 40.
    1. Create aTest Suite 2. Identify and Isolate Concerns 3. Extract Small, Focused Functions 4. Improve Naming and Documentation 5. Enhance Testability 6. Replace Inefficient Data Structures and Algorithms 7. Continuous Testing and Validation 8. Incremental Refactoring 9. Code Review and Collaboration 10. Measure Progress Section 16.4: Incremental Refactoring Steps Step 1: Create a Test Suite Step 2: Isolate Parsing Logic Step 3: Refactor Date Calculation Methods
  • 41.
    Step 4: ImproveNaming and Documentation Step 5: Extract Formatting Logic Step 6: Enhance Testability Step 7: Replace Inefficient Algorithms Step 8: Continuous Testing and Validation Step 9: Incremental and Iterative Step 10: Code Review and Collaboration Step 11: Measure Progress Section 16.5: The Benefits of Clean Code 1. Improved Readability 2. Enhanced Maintainability 3. Reduced Technical Debt 4. Easier Collaboration
  • 42.
    5. Better Debugging 6.Increased Developer Productivity 7. Code Reusability 8. Confidence in Changes 9. Enhanced Documentation 10. Long-Term Cost Savings 11. Developer Satisfaction 12. Software Resilience Chapter 17: Smells and Heuristics Section 17.1: Recognizing Code Smells Section 17.2: Common Code Smells and Solutions Duplicated Code (DRY Violation) Long Methods Large Classes
  • 43.
    Complex Conditional Logic Section17.3: Heuristic Guidelines for Clean Code Section 17.4: Applying Heuristics to Real Projects Section 17.5: Continuous Improvement Section 18.1: More on Concurrency Challenges Section 18.2: Advanced Concurrency Patterns 1. Producer-Consumer Pattern 2. Readers-Writers Pattern 3. Thread Pool Pattern 4. Futures and Promises Section 18.3: Parallelism and Multithreading Parallelism vs. Multithreading Benefits of Parallelism and Multithreading
  • 44.
    Challenges in Parallelismand Multithreading Example: Multithreading in Java Section 18.4: Handling Deadlocks and Starvation Deadlocks Starvation Example: Deadlock Prevention in Java Section 18.5: Practical Tips for Concurrent Systems 1. Understand the Problem Domain 2. Use Thread-Safe Data Structures 3. Minimize Shared State 4. Favor High-Level Concurrency Abstractions 5. Follow the Principle of Least Privilege 6. Embrace Asynchronous Programming 7. Profile and Monitor
  • 45.
    8. Test Thoroughly 9.Use Proper Synchronization 10. Graceful Shutdown 11. Plan for Scalability 12. Document Concurrency Strategies 13. Stay Informed Chapter 19: Appendix B: Decimal I/O Section 19.1: Decimal Formatting and Parsing Decimal Number Representation Formatting Decimal Numbers Parsing Decimal Numbers Challenges in Decimal I/O Section 19.2: Challenges in Decimal I/O
  • 46.
    1. Precision andRounding 2. Locale and Culture Differences 3. Handling Errors 4. Performance Considerations Section 19.3: Writing a Decimal Formatter Basic Decimal Formatting Handling Locale-Specific Formatting Customizing Formatting Decimal Formatting Libraries Section 19.4: Designing the Decimal Parser Challenges in Decimal Parsing Basic Decimal Parsing Handling Locale-Specific Parsing Customizing Parsing
  • 47.
    Section 19.5: ErrorHandling in Decimal I/O Common Error Scenarios Handling Errors in Decimal Formatting Handling Errors in Decimal Parsing Providing User-Friendly Feedback Logging and Monitoring Chapter 20: Appendix C: How to Transform Employee Section 20.1: Refactoring Employee’s Design Analyzing the Existing Design Restructuring the Class Benefits of Refactoring Conclusion Section 20.2: Analyzing and Identifying Problems
  • 48.
    Bloated Class Lack ofAbstraction Coupling Testability Open-Closed Principle Violation Inadequate Separation of Concerns Section 20.3: Restructuring Employee’s Class Step 1: Identify Responsibilities Step 2: Create Separate Classes Step 3: Decouple Classes Step 4: Unit Testing Step 5: Extensibility Step 6: Maintainability Step 7: Better Separation of Concerns
  • 49.
    Section 20.4: TheFinal Transformed Employee The Transformed Employee Class Benefits of the Transformation Conclusion Section 20.5: The Journey to Clean Code 1. Principles of Clean Code 2. Object-Oriented Design 3. Test-Driven Development (TDD) 4. Code Refactoring 5. Design Patterns and Smells 6. Continuous Improvement 7. Collaboration and Communication 8. Software Craftsmanship
  • 50.
    Other documents randomlyhave different content
  • 54.
    The Project GutenbergeBook of My Brother, Theodore Roosevelt
  • 55.
    This ebook isfor the use of anyone anywhere in the United States and most other parts of the world at no cost and with almost no restrictions whatsoever. You may copy it, give it away or re-use it under the terms of the Project Gutenberg License included with this ebook or online at www.gutenberg.org. If you are not located in the United States, you will have to check the laws of the country where you are located before using this eBook. Title: My Brother, Theodore Roosevelt Author: Corinne Roosevelt Robinson Release date: April 22, 2016 [eBook #51831] Most recently updated: October 23, 2024 Language: English Credits: E-text prepared by WebRover, Chris Curnow, Charlie Howard, and the Online Distributed Proofreading Team (http://www.pgdp.net) from page images generously made available by Internet Archive (https://archive.org) *** START OF THE PROJECT GUTENBERG EBOOK MY BROTHER, THEODORE ROOSEVELT ***
  • 56.
    The Project GutenbergeBook, My Brother Theodore Roosevelt, by Corinne Roosevelt Robinson Note:Images of the original pages are available through Internet Archive. See https://archive.org/details/mybrothertheodor1921robi MY BROTHER THEODORE ROOSEVELT
  • 57.
    From a photograph,copyright by C. Le Gendre. Theodore Roosevelt with his little granddaughter, Edith Roosevelt Derby, 1918.
  • 58.
    MY BROTHER THEODORE ROOSEVELT BY CORINNEROOSEVELT ROBINSON WITH ILLUSTRATIONS NEW YORK CHARLES SCRIBNER’S SONS 1921 Copyright, 1921, by CHARLES SCRIBNER’S SONS Published September, 1921
  • 59.
    THE SCRIBNER PRESS WITHTENDER AFFECTION I DEDICATE THIS BOOK TO MY SISTER ANNA ROOSEVELT COWLES WHOSE UNSELFISH DEVOTION TO HER BROTHER THEODORE ROOSEVELT NEVER WAVERED THROUGH HIS WHOLE LIFE, AND FOR WHOM HE HAD FROM CHILDHOOD A DEEP AND UNSWERVING LOVE AND ADMIRATION
  • 60.
    PREFACE This Preface Iwrite to my fellow countrymen as I give into their hands these intimate reminiscences of my brother, Theodore Roosevelt. A year and a half ago I was invited by the City History Club of New York to make an address about my brother on Washington’s Birthday. Upon being asked what I would call my speech, I replied that as George Washington was the “Father of his country,” as Abraham Lincoln was the “Saviour of his country,” so Theodore Roosevelt was the “Brother of his country,” and that, therefore, the subject of my speech would be “The Brother of His Country.” In the same way, I feel that in giving to the public these almost confidential personal recollections, I do so because of the attitude of that very public toward Theodore Roosevelt. There is no sacrilege in sharing such memories with the people who have loved him, and whom he loved so well. This book is not a biography, it is not a political history of the times, although I have been most careful in the effort to record facts accurately, and carefully to search my memory before relating conversations or experiences; it is, I hope, a clear picture, drawn at close hand by one who, because of her relationship to him and her intercourse with him, knew his loyalty and tenderness of heart in a rare and satisfying way, and had unusual opportunity of comprehending the point of view, and therefore perhaps of clarifying the point of view, of one of the great Americans of the day. As I have reread his letters to me, as I have dwelt upon our long and devoted friendship—for we were even more friends than brother
  • 61.
    and sister—his characterstands out to me more strongly than ever before as that of “The Great Sharer.” He shared all that he had—his worldly goods, his strong mentality, his wide sympathy, his joyous fun, and his tender comprehension—with all those with whom he came in contact, and especially with those closest and dearest to him—the members of his own family and his sisters. In the spirit of confidence that my frankness will not be misunderstood, I place a sister’s interpretation of a world-wide personality in the hands of my fellow Americans. Corinne Roosevelt Robinson. September, 1921.
  • 62.
    CONTENTS PAGE I. The Nurseryand Its Deities 1 II. Green Fields and Foreign Faring 34 III. The Dresden Literary American Club 69 IV. College Chums and New-Found Leadership 94 V. The Young Reformer 116 VI. The Elkhorn Ranch and Near-Roughing It in Yellowstone Park 135 VII. Two Recreant New York Policemen 155 VIII. Cowboy and Clubman 164 IX. The Rough Rider Storms the Capitol at Albany 181 X. How the Path Led to the White House 194 XI. Home Life in the White House 206 XII. Home Life in the White House (Continued) 236 XIII. Wall Street Hopes Every Lion Will Do Its Duty 254 XIV. The Great Denial 264
  • 63.
    XV. Whisperings ofWar 276 XVI. “Do It Now” 303 XVII. War 323 XVIII. “The Quiet Quitting” 359
  • 64.
    ILLUSTRATIONS Theodore Roosevelt withhis little granddaughter, Edith Roosevelt Derby, 1918 Frontispiece FACING PAGE Theodore Roosevelt, Sr., aged thirty, 1862 8 Martha Bulloch Roosevelt, twenty-two years old, about 1856 8 Theodore Roosevelt, about eighteen months old, 1860 18 Theodore Roosevelt, about four years old, 1862 18 Elliott Roosevelt, aged five and a half years, about 1865 32 Corinne Roosevelt, about four years old, 1865 32 Theodore Roosevelt, aged seven, 1865 32 Corinne Roosevelt, 1869, at seven and a half years 46 Theodore Roosevelt at ten years of age 46 Anna Roosevelt at the age of fifteen when she spoke of herself as one of the “three older ones” 46
  • 65.
    The Dresden LiteraryAmerican Club—Motto, “W. A. N. A.” (“We Are No Asses”) 72 Theodore Roosevelt, Oyster Bay, September 21, 1875 92 Theodore Roosevelt, December, 1876, aged eighteen 92 Portrait taken in Chicago, July, 1880, on the way to the hunting trip of that season 114 We had that lovely dinner on the portico at the back of the White House looking toward the Washington Monument 230 A review of New York’s drafted men before going into training in September, 1917 332
  • 66.
  • 67.
    THE STAR Epiphany, 1919 Greatsoul, to all brave souls akin, High bearer of the torch of truth, Have you not gone to marshal in Those eager hosts of youth? Flung outward on the battle’s tide, They met in regions dim and far; And you, in whom youth never died, Shall lead them, as a star. —MARION COUTHOUY SMITH.
  • 68.
  • 69.
    T I THE NURSERY ANDITS DEITIES he first recollections of a child are dim and hazy, and so the nursery at 28 East 20th Street, in New York City, does not stand out as clearly to me as I wish it did—but the personality of my brother overshadowed the room, as his personality all through life dominated his environment. I suppose I must have been about four, and he about seven, when my first memory takes definite form. My older sister, Anna, though only four years older than my brother Theodore, was always mysteriously classed with the “grown people,” and the “nursery” consisted of my brother Theodore, my brother Elliott, a year and a half younger than Theodore, and myself, still a year and a half younger than Elliott. In those days we were “Teedie,” “Ellie,” and “Conie,” and we had the most lovely mother, the most manly, able, and delightful father, and the most charming aunt, Anna Bulloch, the sister of my Southern mother, with whom children were ever blessed. Theodore Roosevelt, whose name later became the synonym of virile health and vigor, was a fragile, patient sufferer in those early days of the nursery in 20th Street. I can see him now struggling with the effort to breathe—for his enemy was that terrible trouble, asthma—but always ready to give the turbulent “little ones” the drink of water, book, or plaything which they vociferously demanded, or equally ready to weave for us long stories of animal life—stories
  • 70.
    closely resembling thejungle stories of Kipling—for Mowgli had his precursor in the brain of the little boy of seven or eight, whose knowledge of natural history even at that early age was strangely accurate, and whose imagination gave to the creatures of forest and field impersonations as vivid as those which Rudyard Kipling has made immortal for all time. We used to sit, Elliott and I, on two little chairs, near the higher chair which was his, and drink in these tales of endless variety, and which always were “to be continued in our next”—a serial story which never flagged in interest for us, though sometimes it continued from week to week, or even from month to month. It was in the nursery that he wrote, at the age of seven, the famous essay on “The Foregoing Ant.” He had read in Wood’s “Natural History” many descriptions of various species of ant, and in one instance on turning the page the author continued: “The foregoing ant has such and such characteristics.” The young naturalist, thinking that this particular ant was unique, and being specially interested in its forthgoing character, decided to write a thesis on “The Foregoing Ant,” to the reading of which essay he called in conclave “the grown people.” One can well imagine the tender amusement over the little author, an amusement, however, which those wise “grown people” of 28 East 20th Street never let degenerate into ridicule. No memories of my brother could be accurate without an analysis of the personalities who formed so big a part of our environment in childhood, and I feel that my father, the first Theodore Roosevelt, has never been adequately described. He was the son of Cornelius Van Shaack and Margaret Barnhill Roosevelt, whose old home on the corner of 14th Street and Broadway was long a landmark in New York City. Cornelius Van Shaack Roosevelt was a typical merchant of his day, fine and true and loyal, but ultraconservative in many ways; and his lovely wife, to whom he addressed, later, such exquisite poems that I have always
  • 71.
    felt that theyshould have been given more than private circulation, was a Pennsylvanian of Quaker blood. The first Theodore Roosevelt was the youngest of five sons, and I remember my mother used to tell me how friends of her mother- in-law once told her that Mrs. Cornelius Van Shaack Roosevelt was always spoken of as “that lovely Mrs. Roosevelt” with those “five horrid boys.” As far as I can see, the unpleasant adjective “horrid” was only adaptable to the five little boys from the usual standpoint of boyish mischief, untidiness, and general youthful irrepressibleness. The youngest, my father, Theodore Roosevelt, often told us himself how he deplored the fate of being the “fifth wheel to the coach,” and of how many a mortification he had to endure by wearing clothes cut down from the different shapes of his older brothers, and much depleted shoes about which, once, on overhearing his mother say, “These were Robert’s, but will be a good change for Theodore,” he protested vigorously, crying out that he was “tired of changes.” As the first Theodore grew older he developed into one of the most enchanting characters with whom I, personally, have ever come in contact; sunny, gay, dominant, unselfish, forceful, and versatile, he yet had the extraordinary power of being a focussed individual, although an “all-round” man. Nothing is as difficult as to achieve results in this world if one is filled full of great tolerance and the milk of human kindness. The person who achieves must generally be a one-ideaed individual, concentrated entirely on that one idea, and ruthless in his aspect toward other men and other ideas. My father, in his brief life of forty-six years, achieved almost everything he undertook, and he undertook many things, but, although able to give the concentration which is necessary to achievement, he had the power of interesting himself in many things outside of his own special interests, and by the most delicate and
  • 72.
    comprehending sympathy madehimself a factor in the lives of any number of other human beings. My brother’s great love for his humankind was a direct inheritance from the man who was one of the founders in his city of nearly every patriotic, humanitarian, and educational endeavor. I think, perhaps, the combination of the stern old Dutch blood with the Irish blood, of which my brother always boasted, made my father what he was—unswerving in duty, impeccable in honesty and uprightness, and yet responsive to the joy of life to such an extent that he would dance all night, and drive his “four-in-hand” coach so fast that the old tradition was “that his grooms frequently fell out at the corners”! I remember that he always gave up one day of every week (and he was a very busy merchant and then banker) to the personal visiting of the poor in their homes. He was not satisfied with doing active work on many organizations, although he did the most extraordinary amount of active organization work, being one of the founders of the Children’s Aid Society, of the State Aid Society, of the Sanitary Commission and Allotment Commission in the time of the Civil War, and of the Orthopædic Hospital, not to mention the Museum of Natural History and the Museum of Art—but he felt that even more than this organized effort must be the effort to get close to the hearts and homes of those who were less fortunately situated than he. My older sister suffered from spinal trouble, and my father was determined to leave no stone unturned to make her body fit for life’s joys and life’s labors, and it was because of his efforts to give his little girl health—successful efforts—that in co-operation with his friends Howard Potter and James M. Brown and several others he started the great work of the New York Orthopædic Hospital, having become imbued with belief in the methods of a young doctor, Charles Fayette Taylor. Nobody at that time believed in treating such diseases in quite the way in which modern orthopædy treats them
  • 73.
    now, but myfather, like his son, had the vision of things to be, and was a leader in his way, as was my brother in his. He could not at first influence sufficient people to start the building of a hospital, and he decided that if the New York public could only see what the new instruments would do for the stricken children, that it could be aroused to assist the enterprise. And so, one beautiful spring afternoon, my mother gave what was supposed to be a purely social reception at our second home, at 6 West 57th Street, and my father saw to it that the little sufferers in whom he was interested were brought from their poverty-stricken homes to ours and laid upon our dining-room table, with the steel appliances which could help them back to normal limbs on their backs and legs, thus ready to visualize to New York citizens how these stricken little people might be cured. He placed me by the table where the children lay, and explained to me how I could show the appliances, and what they were supposed to achieve; and I can still hear the voice of the first Mrs. John Jacob Astor, as she leaned over one fragile-looking child and, turning to my father, said: “Theodore, you are right; these children must be restored and made into active citizens again, and I for one will help you in your work.” That very day enough money was donated to start the first Orthopædic Hospital, in East 59th Street. Many business friends of my father used to tell me that they feared his sudden visits when, with a certain expression in his eyes, he would approach them, for then before he could say anything at all they would feel obliged to take out their pocketbooks and ask: “How much this time, Theodore?” One of his most devoted interests was the newsboys’ lodging- house in West 18th Street, and later in 35th Street, under the auspices of the Children’s Aid Society. Every Sunday evening of his life he went to that lodging-house, after our early hospitable Sunday supper, to which many a forlorn relation or stranded stranger in New York was always invited, and there he would talk to the boys, giving
  • 74.
    Welcome to ourwebsite – the perfect destination for book lovers and knowledge seekers. We believe that every book holds a new world, offering opportunities for learning, discovery, and personal growth. That’s why we are dedicated to bringing you a diverse collection of books, ranging from classic literature and specialized publications to self-development guides and children's books. More than just a book-buying platform, we strive to be a bridge connecting you with timeless cultural and intellectual values. With an elegant, user-friendly interface and a smart search system, you can quickly find the books that best suit your interests. Additionally, our special promotions and home delivery services help you save time and fully enjoy the joy of reading. Join us on a journey of knowledge exploration, passion nurturing, and personal growth every day! ebookmasss.com