GithubHelp home page GithubHelp logo

effective-kotlin-zh-cn's Introduction

Effective-Kotlin-zh-CN

Effective Kotlin 中文翻译

在线阅读地址

当前进度:中文翻译中

  • 英文原文搬运

  • 中文翻译

  • 校对

  • Part 1 Good Code

    • Chapter 1 Safety
      • 引言
      • 第1条:限制可变性
      • 第2条:最小化变量作用域
      • 第3条:尽快消除平台类型
      • 第4条:不要把推断类型暴露给外部
      • Item 5 Specify Your Expectations On Arguments And State
      • 第6条:尽可能使用标准库中提供的异常
      • 第7条:当不能返回预期结果时,优先使用null o或Failure 作为返回值
      • Item 8 Handle Nulls Properly
      • 第9条:使用use关闭资源
      • Item 10 Write Unit Tests
    • Chapter 2 Readability
      • Introduction
      • Item 11 Design For Readability
      • Item 12 Operator Meaning Should Be Consistent With Its Function Name
      • Item 13 Avoid Returning Or Operating On Unit
      • Item 14 Specify The Variable Type When It Is Not Clear
      • Item 15 Consider Referencing Receivers Explicitly
      • Item 16 Properties Should Represent State Not Behavior
      • Item 17 Consider Naming Arguments
      • Item 18 Respect Coding Conventions
  • Part 2 Code Design

    • Chapter 3 Reusability
      • Introduction
      • Item 19 Do Not Repeat Knowledge
      • Item 20 Do Not Repeat Common Algorithms
      • Item 21 Use Property Delegation To Extract Common Property Patterns
      • Item 22 Use Generics When Implementing Common Algorithms
      • Item 23 Avoid Shadowing Type Parameters
      • Item 24 Consider Variance For Generic Types
      • Item 25 Reuse Between Different Platforms By Extracting Common Modules
    • Chapter 4 Abstraction Design
      • Introduction
      • Item 26 Each Function Should Be Written In Terms Of A Single Level Of Abstraction
      • Item 27 Use Abstraction To Protect Code Against Changes
      • Item 28 Specify API Stability
      • Item 29 Consider Wrapping External API
      • Item 30 Minimize Elements Visibility
      • Item 31 Define Contract With Documentation
      • Item 32 Respect Abstraction Contracts
    • Chapter 5 Object Creation
      • Introduction
      • Item 33 Consider Factory Functions Instead Of Constructors
      • Item 34 Consider A Primary Constructor With Named Optional Arguments
      • Item 35 Consider Defining A DSL For Complex Object Creation
    • Chapter 6 Class Design
      • Introduction
      • Item 36 Prefer Composition Over Inheritance
      • Item 37 Use The Data Modifier To Represent A Bundle Of Data
      • Item 38 Use Function Types Instead Of Interfaces To Pass Operations And Actions
      • Item 39 Prefer Class Hierarchies To Tagged Classes
      • Item 40 Respect The Contract Of Equals
      • Item 41 Respect The Contract Of Hash Code
      • Item 42 Respect The Contract Of Compare To
      • Item 43 Consider Extracting Non Essential Parts Of Your API Into Extensions
      • Item 44 Avoid Member Extensions
  • Part 3 Efficiency

    • Chapter 7 Make It Cheap
      • Introduction
      • Item 45 Avoid Unnecessary Object Creation
      • Item 46 Use Inline Modifier For Functions With Parameters Of Functional Types
      • Item 47 Consider Using Inline Classes
      • Item 48 Eliminate Obsolete Object References
    • Chapter 8 Efficient Collection Processing
      • Introduction
      • Item 49 Prefer Sequence For Big Collections With More Than One Processing Step
      • Item 50 Limit The Number Of Operations
      • Item 51 Consider Arrays With Primitives For Performance Critical Processing
      • Item 52 Consider Using Mutable Collections

effective-kotlin-zh-cn's People

Contributors

maxzmeng avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.