728x90

 

코드리뷰시 자주 등장하는 코딩 용어(약어) : DRY, KISS, YAGNI

 

1.DRY(Don’t Repeat Yourself)

특정한 지식,의도,로직 등이 다양한 곳에서 다양한 형태로 계속 반복되게 하지마라

시스탬 내에서 특정한 지식과 로직은 단 한 곳에서 명확하고 신뢰할 수 있도록 존재해야함

코드(code), 기능(functionality), 로직(logic) 등이 반복적으로 나타나는 경우 반복을 피하라

↔ WET(Write Everything Twice, Waste Everyone’s Time)

 

why?

수정해야할 시, 반복되는 코드 전부를 하나씩 다 찾아서 수정해야하고 실수해서 한군데 빠뜨린다면 유지보수는 헬일 것

 

 

DRY

WET

 

 

2.KISS(Keep It Simple, Stupid)

대부분의 시스템은 복잡하기보다는 심플하게 만들어졌을 때, 최고로 잘 작동한다

시스템 디자인 시, 심플함이 주 목표이 되어야하고 불필요한 복잡성은 피해야한다

별도의 주석 없이도 함수명, 매개변수, 구현된 코드를 읽었을 때 한번에 이해할 수 있도록 1가지의 기능을 수행하는 함수를 심플하게 작동하는게 좋다

ex)10줄 코드를 1줄 코드로 바꾸기 위해, 화려한 테크닉을 이용하여 가독성을 떨어뜨리기 보다는 누구나 이해할 수 있게 심플하고 간결하게 작성하는게 좋다

  • 1가지의 책임만 담당하는 클래스 작성이 좋다
  • UI를 담당하는 컴포넌트에는 별도의 비지니스 로직을 포함하지 않고, 최대한 심플하게 UI 관련 로직만 담당해야함
  • 서비스를 만들 때도, 여러가지 기능을 복잡적으로 담당하는 하나의 큰 서비스를 만들기 보다 단 하나의 기능을 담당하는 개별적인 심플한 서비스를 만드는 것이 좋다
  • 위의 것들을 통해서 전체적인 시스템을 KISS하게 심플하게 제작가능

 

3.YAGNI(You Ain’t Gonna Need It)

필요없는 기능을 작성하지마라

필요한 기능만 초점을 두고 코드를 디자인해야함

  • 필요하지 않은 기능 x
  • 사용하지 않는 기능 x
  • 지나지체 미래지향적 x

앞으로 필요할 것 같은 것을 지나치게 만들거나 염두해두는 코드들은 필요x

시스템에 불필요한 ‘복잡성’을 더 하지 않는 선에서 코드 디자인하라는 의미

 

※ 필요 없어진 코드는 주석처리보다 Git으로 브랜치를 나눠서 기능별로 버젼관리로 저장해두는 것을 추천

 

자료 출처 : https://www.youtube.com/watch?v=jafa3cqoAVM&t=286s

 

728x90
반응형
728x90

011. for문 - list와 for문의 변수 작동원리 이해

 

 

종종 for문이 반복되면서 이게 식안에서 어떻게 작동되는지 햇갈릴 때가 있었다. 어떤 때는 잘 알겠고 어떤 때는 햇갈려서 뭘 모르는지 잘모르는 상태였는데 계속 보다보니 

range를 사용하면 숫자여서 이해하기가 좀 쉬웠는데 변수명이 들어간다거나 다른 자료형이 들어가면 햇갈리는 걸 발견했고, 어떻게 작동하는지 방법을 찾아내서 팁을 공유할까한다.

 

<문장 안에서 해당 코드가 어떻게 작동하는지 확인하는 팁!>

print() 함수를 알고 알고 싶은 코드 중간중간에 넣어서 해당 값이 어떤건지 출력하게끔해서 중간중간 값을 체크하면 어떻게 돌아가는지 알 수 있다. for문 뿐만 아니라 다른 곳에서 가능!!

 

 

 

728x90
반응형

+ Recent posts