Coder Social home page Coder Social logo

effective-java-project's Introduction

header

Hi 🙌🏼 I'm han-nah Kim 👩🏻‍💻

🏫 Hanyang University ERICA | Department of Computer Science & Engineering
🏢 42 Seoul | hannkim

Hits


🛠 Stacks 🛠


Anurag's GitHub stats

effective-java-project's People

Contributors

kimhan-nah avatar

Watchers

 avatar

effective-java-project's Issues

🔨 [Refactoring] effective java 적용시키기 (Item 1 ~ Item 30)

Description

  • effective java 적용해서 리팩토링하기

Todo

2장 객체 생성과 파괴

  • 1. 생성자 대신 정적 팩터리 메서드를 고려하라
  • 2. 생성자에 매개변수가 많다면 빌더를 고려하라
  • 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라
  • 4. 인스턴스화를 막으려거든 private 생성자를 사용하라
  • 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라
    • Supplier도 사용해보기
  • 6. 불필요한 객체 생성을 피하라
  • 7. 다 쓴 객체 참조를 해제하라
  • 8. finalizer와 cleaner 사용을 피하라
  • 9. try-finally보다는 try-with-resources를 사용하라
    • 자원 관리가 필요한 클래스가 있을 경우 사용함. 현재는 인메모리로 데이터를 관리하기 때문에 불필요
    • 이후 File이나 DB 사용할 때 AutoCloseable 구현해서 try-with-resources 사용하기

3장 모든 객체의 공통 메서드

  • 10. equals는 일반 규약을 지켜 재정의하라
  • 11. equals를 재정의하려거든 hashCode도 재정의하라
  • 12. toString을 항상 재정의하라
  • 13. clone 재정의는 주의해서 진행하라
  • 14. Comparable을 구현할지 고려하라

4장 클래스와 인터페이스

  • 15. 클래스와 멤버의 접근 권한을 최소화하라
  • 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라
  • 17. 변경 가능성을 최소화하라
  • 18. 상속보다는 컴포지션을 사용하라
  • 19. 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라
  • 20. 추상 클래스보다는 인터페이스를 우선하라
  • 21. 인터페이스는 구현하는 쪽을 생각해 설계하라
  • 22. 인터페이스는 타입을 정의하는 용도로만 사용하라
  • 23. 태그 달린 클래스보다는 클래스 계층구조를 활용하라
  • 24. 멤버 클래스는 되도록 static으로 만들라
  • 25. 톱레벨 클래스는 한 파일에 하나만 담으라

5장 제네릭

  • 26. 로 타입은 사용하지 말라
  • 27. 비검사 경고를 제거하라
  • 28. 배열보다는 리스트를 사용하라
  • 29. 이왕이면 제네릭 타입으로 만들라
  • 30. 이왕이면 제네릭 메서드로 만들라

ETC

No response

✨ [Feature] 랜덤 추첨 기능 추가하기

Description

  • 일정 기간동안 일정 조건에 만족하는 유저 n명 추첨하는 기능 추가하기
    • ex) 10월동안 주 3회 인증한 유저중 3명 랜덤 추첨하기

Todo

No response

ETC

No response

🔨 [Refactoring] 싱글톤 패턴 수정 필요

Description

  • 싱글톤 패턴 잘못 적용한 부분 수정하기
  • static factory method의 of로 할 게 아니라 멤버 필드로 INSTANCE를 가지고 있어야 함

Todo

No response

ETC

No response

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.