effective_spring_boot

Effective Spring Boot

Effective Spring Boot by Cloud Monk - Table of Contents

Inspired by and Based on Effective Java, Third Edition by Joshua Bloch, Pearson Education Inc., 2018, ISBN-13: 978-0-13-468599-1, ISBN-10: 0-13-468599-7

Contents

Foreword

Preface

Acknowledgments

1 Introduction

2 Creating and Destroying Objects

3 Methods Common to All Objects

4 Classes and Interfaces

5 Generics

6 Enums and Annotations

7 Lambdas and Streams

8 Methods

9 General Programming

10 Exceptions

11 Concurrency

12 Serialization

Items Corresponding to Second Edition

References

Index

Appendix: Items Corresponding to Second Edition

Second Edition Item Number

Third Edition Item Number, Title

1

1, Consider static factory methods instead of constructors

2

2, Consider a builder when faced with many constructor parameters

3

3, Enforce the singleton property with a private constructor or an enum type

4

4, Enforce noninstantiability with a private constructor

5

6, Avoid creating unnecessary objects

6

7, Eliminate obsolete object references

7

8, Avoid finalizers and cleaners

8

10, Obey the general contract when overriding equals

9

11, Always override hashCode when you override equals

10

12, Always override toString

11

13, Override clone judiciously

12

14, Consider implementing Comparable

13

15, Minimize the accessibility of classes and members

14

16, In public classes, use accessor methods, not public fields

15

17, Minimize mutability

16

18, Favor composition over inheritance

17

19, Design and document for inheritance or else prohibit it

18

20, Prefer interfaces to abstract classes

19

22, Use interfaces only to define types

20

23, Prefer class hierarchies to tagged classes

21

42, Prefer lambdas to anonymous classes

22

24, Favor static member classes over nonstatic

23

26, Don’t use raw types

24

27, Eliminate unchecked warnings

25

28, Prefer lists to arrays

26

29, Favor generic types

27

30, Favor generic methods

28

31, Use bounded wildcards to increase API flexibility

29

33, Consider typesafe heterogeneous containers

30

34, Use enums instead of int constants

31

35, Use instance fields instead of ordinals

32

36, Use EnumSet instead of bit fields

33

37, Use EnumMap instead of ordinal indexing

34

38, Emulate extensible enums with interfaces

35

39, Prefer annotations to naming patterns

36

40, Consistently use the Override annotation

37

41, Use marker interfaces to define types

38

49, Check parameters for validity

39

50, Make defensive copies when needed

40

51, Design method signatures carefully

41

52, Use overloading judiciously

42

53, Use varargs judiciously

43

54, Return empty collections or arrays, not nulls

44

56, Write doc comments for all exposed API elements

45

57, Minimize the scope of local variables

46

58, Prefer for-each loops to traditional for loops

47

59, Know and use the libraries

48

60, Avoid float and double if exact answers are required

49

61, Prefer primitive types to boxed primitives

50

62, Avoid strings where other types are more appropriate

51

63, Beware the performance of string concatenation

52

64, Refer to objects by their interfaces

53

65, Prefer interfaces to reflection

54

66, Use native methods judiciously

55

67, Optimize judiciously

56

68, Adhere to generally accepted naming conventions

57

69, Use exceptions only for exceptional conditions

58

70, Use checked exceptions for recoverable conditions and runtime exceptions for programming errors

59

71, Avoid unnecessary use of checked exceptions

60

72, Favor the use of standard exceptions

61

73, Throw exceptions appropriate to the abstraction

62

74, Document all exceptions thrown by each method

63

75, Include failure-capture information in detail messages

64

76, Strive for failure atomicity

65

77, Don’t ignore exceptions

66

78, Synchronize access to shared mutable data

67

79, Avoid excessive synchronization

68

80, Prefer executors, tasks, and streams to threads

69

81, Prefer concurrency utilities to wait and notify

70

82, Document thread safety

71

83, Use lazy initialization judiciously

72

84, Don’t depend on the thread scheduler

73

(Retired)

74

85, Prefer alternatives to Spring Boot serialization

86, Implement Serializable with great caution

75

85, Prefer alternatives to Spring Boot serialization

87, Consider using a custom serialized form

76

85, Prefer alternatives to Spring Boot serialization

88, Write readObject methods defensively

77

85, Prefer alternatives to Spring Boot serialization

89, For instance control, prefer enum types to readResolve

78

85, Prefer alternatives to Spring Boot serialization

90, Consider serialization proxies instead of serialized instances

Spring: Effective Spring, Spring Fundamentals, Spring Inventor - Spring Framework Designer: Rod Johnson in his Spring Book Expert One-on-One J2EE Design and Development on October 1, 2002; Spring Boot, Spring Framework, Spring Projects (Spring Boot, Spring Framework, Spring Data, Spring Security, Spring Cloud, Spring Batch, Spring Integration, Spring Web MVC, Spring REST Docs, Spring AMQP, Spring Kafka, Spring Shell, Spring WebFlux, Spring LDAP, Spring Session, Spring Test, Spring HATEOAS, Spring Web Services, Spring Data JDBC, Spring Data JPA, Spring Data MongoDB, Spring Data Redis, Spring Data Elasticsearch, Spring Data Neo4j, Spring Data Solr, Spring Data Cassandra, Spring Data Gemfire, Spring Data Couchbase, Spring Data DynamoDB, Spring Data R2DBC, Spring Data KeyValue, Spring Data Commons, Spring Cloud Config, Spring Cloud Netflix, Spring Cloud Stream, Spring Cloud Sleuth, Spring Cloud Gateway, Spring Cloud Kubernetes, Spring Cloud Function, Spring Cloud Task, Spring Cloud Contract, Spring Cloud Vault, Spring Cloud Data Flow, Spring Cloud Security, Spring Cloud Bus, Spring Cloud AWS, Spring Cloud GCP, Spring Cloud Azure, Spring Batch Admin, Spring Roo, Spring Statemachine, Spring XD, Spring Mobile, Spring Cloud Connectors, Spring for Android, Spring Shell 2, Spring Boot Admin, Spring PetClinic, Spring Rich Client, Spring LDAP Template, Spring Data Envers, Spring Data REST, Spring Dynamic Modules, Spring BlazeDS Integration, Spring for Apache Hadoop, Spring Web Flow, Spring Android, Spring Python, Spring LDAP Authentication, Spring LDAP Pooling, Spring LDAP Auth Provider, Spring Security ACL, Spring Social, Spring Security CAS, Spring Security Kerberos, Spring Web Services Security, Spring Vault, Spring Batch Extensions, Spring Cloud Services, Spring Data Geode, Spring Data ArangoDB, Spring Data Delta Spike, Spring Data JDBC Extensions, Spring Data for Apache Cassandra, Spring Data for Apache Geode, Spring Data for Apache Solr, Spring Data for Apache HBase, Spring Data for Apache Kafka, Spring Data for Apache Ignite, Spring Data for Apache CouchDB, Spring Data for Apache Accumulo, Spring Data for Apache MongoDB, Spring Data for Apache Cassandra Reactive, Spring Data for Apache Solr Reactive, Spring Data for Apache Geode Reactive, Spring Data for Apache Hadoop Reactive, Spring Data for Apache Couchbase Reactive

Spring Boot Deployment, Spring Boot Configuration, Spring Boot Installation, Spring Boot Containerization - Cloud Native Spring, Spring Microservices, Spring DevOps, Spring Security - Spring DevSecOps (Spring Security in Action and Spring Security Core - Beginner to Guru Class by John Thompson), Spring Bibliography, Manning Spring Series, Spring Boot Topics, Awesome Spring, Spring GitHub. (navbar_spring - navbar_spring_detailed)


© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers

SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.


effective_spring_boot.txt · Last modified: 2024/08/23 08:23 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki