Effective-Java-Third-Edition
| Item | Description |
|---|---|
| Item#1 | Considering static factory methods instead of constructors A technique that should be a part of every programmer's toolkit. |
| Item#2 | Consider a builder when faced with many constructor parameters |
| Item#3 | Enforcing the singleton property with a private constructor or an enum type .. |
| Item#4 | Enforece noninstantiability with a private constructor |
| Item#5 | Prefer dependency injection to hardwiring resources |
| Item#6 | Avoid creating unnecessary objects |
| Item#7 | Eliminate obsolete objects references |
| Item#8 | Avoid Finalizers and cleaners |
| Item#9 | Prefer try-with-resource to try-finally |
| Item#10 | Obey the general contract when overriding equals |
| Item#11 | Always Override hashCode when you override equals |
| Item#12 | Always override toString |
| Item#13 | Override clone Judiciously |
| Item#14 | CONSIDER IMPLEMENTING COMPARABLE |
| Item#15 | MINIMIZE THE ACCESSIBILITY OF CLASS AND MEMBERS |
| Item#16 | IN PUBLIC CLASSES, USE ACCESSOR METHODS NOT PUBLIC FIELDS |
| Item#17 | MINIMIZE MUTABILITY |
| Item#18 | FAVOR COMPOSITION OVER INHERITANCE |
| Item#19 | DESIGN AND DOCUMENT FOR INHERITANCE OR ELSE PROHIBIT IT |
| Item#20 | PREFER INTERFACES TO ABSTRACT CLASSES |
| Item#21 | DESIGN INTERFACES FOR POSTERITY |
| Item#22 | Use Interface only to define types |
| Item#23 | Prefer class hierarchies to tagged classes |
| Item#24 | Favor static Member classes over nonstatic |
| Item#25 | Limit source files to a single top-level class |
| Item#26 | Don't use raw types |
| Item#27 | Eliminate unchecked warnings |
| Item#28 | Prefer lists to array |
| Item#29 | Favor Generic types |
| Item#30 | Favor Generic Methods |
| Item#31 | Use bounded wildcards to increase API flexibility |
| Item#32 | Combine generics and varargs judiciously |
| Item#33 | Consider typesafe heterogeneous containers |
| Item#34 | Use enums instead of int constants |
| Item#35 | Use instance fields instead of ordinals |
| Item#36 | Use EnumSet instead of bit fields |
| Item#37 | Use EnumMap instead of ordinal indexing |
| Item#38 | Emulate extensible enums with interfaces |
| Item#39 | Prefer annotations to naming patterns |
| Item#40 | Consistently use the Override annotation |
| Item#41 | Use marker interface to define types |
| Item#42 | Prefer lambdas to anonymous classes |
| Item#43 | Prefer method references to lambdas |
| Item#44 | Favor the use of standard functional interfaces |
| Item#45 | USE STREAM JUDICIOUSLY |
| Item#46 | PREFER SIDE-EFFECT-FREE FUNCTIONS IN STREAMS |
| Item#47 | PREFER COLLECTION TO STREAM AS A RETURN TYPE |
| Item#48 | USE CAUTION WHEN MAKING STREAM PARALLEL-ARABIC-استخدم البرمجة المتوازية عند استخدامك الـ "ستريم" بحذر |
| Chapter 8 | How to treat parameters and return values, how to design methods signatures, and how to document methods. |
| Item#49 | Check parameters for validity Arabic - تأكد من صحة المدخلات |
| Item#50 | Make defensive copies when needed - استخدم نسخ وقائية عند الحاجة |
| Item#51 | Design method signatures carefully - صمم هيكلية الدالة بحذر |
| Item#52 | Use overloading judiciously - استخدم تعددية الدوال بحذر |
| Item#53 | Use varargs judiciously - استخدم قيم الوسائط المتعددة بحذر |
| Item#54 | Return empty collections or arrays, not nulls - قم بارجاع مجموعة أو متسلسلة فارغة وليس قيمة معدومة |
| Item#55 | Return optionals judiciously - قم بإرجاع القيم الاختيارية بحذر |
| Item#56 | Write doc comments for all exposed API elements - قم بكتابة تعليقات موثقة لكل عنصر مكشوف |
| Chapter 9 | General Programming - برمجة عامة locale variables, control structure, libraries, data types, and two extralinguistic facilities: reflection and native methods |
| Item#57 | Write doc comments for all exposed API elements - قم بكتابة تعليقات موثقة لكل عنصر مكشوف |