본문으로 건너뛰기
cccskills
무료GitHub에 공개

kotlin patterns

Conventions for using Kotlin

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md4.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

1. Remove usage of !! operator

The !! operator should be avoided in Kotlin as it can lead to NullPointerException at runtime. Instead, use safe calls (?.) or the let scope function to handle nullable values more gracefully.

2. Remove the safe call operator (?.) when possible

Using the safe call operator (?.) is a good practice, but it should be used judiciously. It makes no sense to use this operator when the value is guaranteed to be non-null, as it can lead to unnecessary null checks and reduce code readability.

3. Avoid using var when possible

In Kotlin, it is recommended to use val instead of var whenever possible. This helps to make the code more readable and maintainable, as it makes it clear that the value of a variable is not expected to change.

4. Use Duration overload when possible

Example 1

When using the delay function, it is recommended to use the overload that accepts a Duration parameter instead of a Long parameter. This makes the code more readable and easier to understand, as it clearly indicates the intended duration of the delay.

replace this:

delay(100)

with this:

delay(100.milliseconds)

Add import: import kotlin.time.Duration.Companion.milliseconds

5. Remove all code signatures

Code does not need to be signed. The code signature used to have some value, but in current times, the commit already has a signature. Old code may contain signatures that look like this:

/**
 * Created by joao on 28-4-16.
 */

They should all be removed, as they are not needed and add no value to the code.

6. When using Kotlin code make sure to use the kotlin extensions for parsing

Example 1

When finding this:

    .getForEntity("/tulips", String::class.java)

replace with:

    .getForEntity<String>("/tulips")

7. Update the usage of CSVParser which is now deprecated

This skill refers to the CSVParser from org.apache.commons.csv.*

Example 1

Replace

val csvParser = CSVParser(reader, CSV_HEADER)

with

val csvParser = CSVParser.builder()
    .setReader(reader)
    .setFormat(CSV_HEADER).get()

Example 2

Replace this

private val CSV_HEADER = DEFAULT
    .withHeader(
        "id",
        "description",
        "year",
        "value",
        "currency",
        "type",
        "diameterMM",
        "internalDiameterMM",
        "heightMM",
        "widthMM"
    )

with:

private val CSV_HEADER = CSVFormat.DEFAULT.builder()
    .setHeader(
        "id",
        "description",
        "year",
        "value",
        "currency",
        "type",
        "diameterMM",
        "internalDiameterMM",
        "heightMM",
        "widthMM"
    ).get()

8. For all uses of Lombok in Kotlin classes that still use its builder pattern, please convert them to data classes

Due to Java conversions to Kotlin, some of them, due to their automatic nature, didn't consider the existence of data classes. If Kotlin classes still use lombok for the builder pattern please convert them to data class.

9. Replace the package of jackson-module-kotlin

Please replace:

<dependency>
    <groupId>com.fasterxml.jackson.module</groupId>
    <artifactId>jackson-module-kotlin</artifactId>
</dependency>

with

<dependency>
    <groupId>tools.jackson.module</groupId>
    <artifactId>jackson-module-kotlin</artifactId>
</dependency>

10. Checklist

[ ] The code does not use the !! operator. [ ] The code does not use the safe call operator (?.) when the value is guaranteed to be non-null. [ ] The code uses val instead of var whenever possible. [ ] The code uses the Duration overload when using the delay function. [ ] The code does not contain any code signatures. [ ] The code uses the kotlin extensions for parsing when using Kotlin code. [ ] The code should not use the CSVParser constructuro directly

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

angular

무료

Conventions for Angular applications

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jesperancinha/healthy-cameras32026년 8월 11일 업데이트

Conventions for using annotations in all tests using Jupiter

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jesperancinha/healthy-cameras32026년 8월 11일 업데이트

docker

무료

Conventions for docker

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jesperancinha/healthy-cameras32026년 8월 11일 업데이트

Conventions for using in all JEE frameworks. These are common standards for CDI

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jesperancinha/healthy-cameras32026년 8월 11일 업데이트

Conventions for using in all JVM languages

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jesperancinha/healthy-cameras32026년 8월 11일 업데이트

Conventions for using Java

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jesperancinha/healthy-cameras32026년 8월 11일 업데이트

jesperancinha의 스킬 모두 보기

이 스킬의 문제 신고