Current location - Quotes Website - Personality signature - Catalogue of the Art of Software Framework Design
Catalogue of the Art of Software Framework Design

The Art of Software Framework Design Chapter 1 The Art of Software Development 4

1.1 Rationalism, Empiricism and Thread-free 4.2 The evolution of software 6

1.3 Large-scale software 8

1.4 Beautiful, Truth and Elegance 9

1.5 Better Thread-free 12

Chapter 2 Power Source of api Design 14

2.1 Distributed Development 14

2.2 Modular Application 16

2.3 Communication is everything 2

2.4 Empirical Programming 22

2.5 It is usually easier to develop the first version 24

. 26

3.1 method and field signature 26

3.2 file and its contents 27

3.3 environment variables and command line options 29

3.4 text information is also a broad definition of api 3

3.5 protocol 32

3.6 behavior 35

3.7 internationalization support and information internationalization 35

3.8 api. I's quality 37

3.9.1 Understandability 37

3.9.2 Consistency 38

3.9.3 Visibility 39

3.9.4 Simple tasks should have simple schemes 4

3.9.5 Protection of investment 4

Changing objectives 44 in Chapter 4. 1 source code compatibility 43

4.2.2 binary compatibility 44

4.2.3 functional compatibility-amoeba effect 5

4.3 importance of use case orientation 52

4.4 api design review 55

4.5 life cycle of an api 56

4.6 gradual improvement 6 Chapter 5 only discloses you. Field 68

5.2 Factory method is superior to constructor 7

5.3, making all contents unchangeable 71

5.4, avoiding abuse of setter method 72

5.5, exposing functions as much as possible through friends 73

5.6, giving object creators more rights 77

5.7, avoiding exposure of deep inheritance 82

Chapter 6, interface-oriented. 85

6.1 removing method or field 87

6.2 removing or adding a class or interface 88

6.3 adding an interface or class 88

6.4 adding method or the difference between interface and class in field 88

6.5 java 9

6.6 Advantages behind weaknesses 91

6.7 adding method. > 6.8 is abstract class useful? 94

6.9 Be prepared for adding parameters 95

6.1 interface vs. Class 97

Chapter 7 Modular architecture 98

7.1 Types of modular design 1

7.2 Component positioning and interaction 13

7.3 Write an extension point 116

7.4 loop. Lookup 121

7.6 Abuse of Lookup 126

In Chapter 8, when designing api, we should distinguish its target user group 129

8.1 c and how to define api in java language and spi 129

8.2 api evolution is different from spi evolution 131

8.3 Java.io.writer. This class evolved from jdk 1.4 to jdk 5. Go into 131

8.4 Reasonably decompose api 143

Chapter 9 Keep in mind testability 147

9.1 The aura of api design and testing 148

9.2 specification is fading 151

9.3 Good tools make api design simpler 153

9.4 Compatibility test suite 155

Chapter 1 Collaboration with other APIs 158. Using third-party api 158

1.2 only exposes abstract content 162

1.3, strengthens the consistency of api 164

1.4, proxy and combination 168

1.5, avoids the misuse of api 176

1.6, and does not abuse the listener mechanism of javabeans 18

Chapter 11, some contents of specific api runtime 184 < 1 don't take risks 186

11.2 reliability and thread-free 189

11.3 synchronization and deadlock 191

11.3.1 describe the trap in Java monitors 193

11.3.3 conditions that trigger deadlock 196

11. Line Test 24

11.3.6 Analysis of Random Faults 26

11.3.7 Advanced Use of Logs 28

11.3.8 Using Loggers to Control Flow 21

11.4 Circular Calls 215

11.5 Memory Management 218

Chapter 12 Declarative Programming. Immutable behavior 229

12.3 Document compatibility 23 Chapter 13 Extreme opinions are harmful and useless 236

13.1 api must be beautiful 237

13.2 api must be correct 237

13.3 api should be as simple as possible 24

13.4 api must be high performance 242

13.5 api must be absolutely compatible. 42

13.6 api must be symmetrical 245

Contradictions in api design in Chapter 14 247

14.1 Contradictions in API design 248

Work hidden behind 14.2 251

14.3 Don't be afraid to release a stable api 252

14.4 to reduce maintenance costs 255

. > 15.1 Rejuvenate the problematic class library 259

15.2 Consciously upgrade and unconsciously forced upgrade 265

15.3 Optional behavior 268

15.4 Bridge and * * similar to api. Save 274

Chapter 16 Teamwork 286

16.1 Conduct code review when submitting code 286

16.2 Persuade developers to provide documents for their api 29

16.3 Conscientious monitors 292

16.4 Accept the patch of api 297

Chapter 17 Improve api design skills with contest games 3 < On the first day of 3

17.2, 31

17.2.1, the problem 34

17.2.2, the problem 34

17.2.3, the problem 38

17.2.4, the problem 39 < 313

17.3.1 I want to correct the mistakes I made. 316

17.3.2 The solution for the next day 317

17.4 The third day: Judgment Day 32

17.5 Let's play this game, too. 327

Chapter 18 can expand the case of visitor mode 328

> 18.3 the default traversal 334

18.4 clearly defines the data structure when each version 337

18.5 is improved in one direction 339

18.6.

18.7 visitor mode 341

18.8 for users and developers, triple scheduling 343

18.9 visitor mode 345. .1 Grammar Tips 346

The process of the demise of Chapter 19 348

19.1 The importance of defining the version 349

19.2 The importance of module dependence 349

19.3 Do the removed parts need to be kept permanently 352

19.4 Decomposing the huge api 352

Chapter 2 Future 356

28. .2 Endless Thread 358

2.3 api Design Methodology 36

2.4 Evolution of Programming Language 361

2.5 The Role of Education 363

2.6 * * Enjoy 365

Bibliography 366