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 - قم بكتابة تعليقات موثقة لكل عنصر مكشوف |