Skip to content

VincentTung/Effective-Kotlin-Demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Effective-Kotlin

《Effective Kotlin》的一书的翻译和代码

代码

  1. ...
  2. ...

文章

  1. Item1:限制可变性

  2. Item2:最小化变量的作用域

  3. Item31:定义文档的契约

  4. Item45:避免不必要的对象创建

  5. Item46:写带函数类型参数的函数的时候使用inline修饰符

  6. Item47:考虑使用inline类

  7. Item48:消除过时的对象引用

  8. Item3:尽快消除平台类型

  9. Item4: 不要暴露推断的类型

  10. Item6:更倾向于使用标准exception,而不是自定义exception

  11. Item5:明确你对参数和状态的期望

  12. Item7:当可能缺少返回值时,首选null返回值或者Failure返回值

  13. Item8:恰当的处理空值

  14. Item9:使用use关闭资源(简)

  15. Item10:编写单元测试(简)

  16. Item11:可读性设计

  17. Item12:操作符的含义应该和它的函数名保持一致

  18. Item13:避免返回或者操作Unit?(简)

  19. Item14:当变量类型不清楚的时候,请明确它的类型(简)

  20. Item15:考虑显示的引用接收者receiver

  21. Item16:属性应该描述状态,而不是行为

  22. Item17:考虑具名参数(简)

  23. Item18:遵守编码规范(简)

  24. Item19:不要重复知识(简)

  25. Item20:不要重复常用算法(简)

  26. Item21:使用属性委托来提取常见的属性模式(缺)

  27. Item23:避免参数名和成员变量名重复(简)

  28. Item24:逆变和协变(简)

  29. Item25:不同平台之间通过提取通用方法来重用(简)

  30. Item26:每个函数应该按照 单层抽象(single level of abstraction)的规则编写(简)

  31. Item28:使API稳定(简)

  32. Item29:考虑包裹外部API(简)

  33. Item30:最小化元素的可见性(简)

  34. Item32:遵守抽象规范(简)

  35. Item33:考虑工厂方法代替构造函数

  36. Item34:考虑给构造函数的参数设置默认值(简)

  37. Item35:考虑为负责的对象创建定义一个DSL

  38. Item36:组合优于继承(简)

  39. Item37:使用data修饰符来修饰数据集(简)

  40. Item38:使用函数类型来替代接口传递操作(简)

  41. Item39:更喜欢类层次结构而不是标记类(缺)

  42. Item40:遵守equals的约定(简)

  43. Item41:遵守hashcode的约定(简)

  44. Item42:遵守compareTo的约定(简)

  45. Item43:考虑提取api中的不必要部分到extensions中(简)

  46. Item49:数据多次操作的时候使用Sequence(简)

  47. Item50:限制collection的操作次数(简)

  48. Item51:考虑使用原始的数组来应对需要高性能的情况(简)

  49. Item52:考虑使用可变的collections(缺)

  50. Item44:避免在类中定义扩展函数(缺)

  51. Item27:使用抽象来保护代码免受更改

  52. Item22:在实现通用算法的时候使用泛型(简)

About

《Effective Kotlin》翻译和代码

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages