📝형식 맞추기
형식(코딩 컨벤션)을 정의하고 따른다면 더 가독성이 좋은 코드를 개발할 수 있다.
첫 코드의 가독성은 이후 바뀔 코드 품질(유지보수 용이성, 확장성)에 지대한 영향을 미친다.
1. 신문기사처럼 작성하라!
- 고차원 개념 -> 알고리즘 -> 저차원 함수, 세부 내역
2. 세로 형식을 맞춰라!
- 새로운 개념을 시작한다면 빈행으로 구분해라.
- 변수와 함수는 사용하는 위치에 최대한 가까이 선언한다.
3. 가로 형식을 맞춰라!
- 다수의 프로젝트를 조사했을 때 길이의 70%가 가로 0~60자 사이인 것으로 보아 프로그래머들은 짧은 행을 선호한다, 가독성을 위해 길이를 줄이자.
- 우선순위 높은 *, / 는 붙여서 +, -는 늘려서 표현하듯이, 가로 공백을 통해 밀접한 개념과 느슨한 개념을 구분할 수 있다.
- 쉼표 다음 은 띄어쓰기로 별개임을 강조해 주면 좋다.
4. 팀 규칙(feat.Coding convention : ESLint)
- 개발자는 각자 선호하는 규칙이 있지만 팀에 속한다면 개인보다는 팀이 선호하는 규칙에 맞춰 코드를 짤 필요가 있다.
- 팀 규칙은 한 소스 파일에서 봤던 형식이 다른 소스 파일에도 쓰이리라는 신뢰감을 심어주며 가독성을 높여준다.
📝객체와 자료구조
유지보수와 보안성 등을 생각해 직면한 문제에 더 맞는 유형의 코드를 짜는것이 중요하다.
- 절차적 코드와 객체지향 코드를 유지보수 측면에서 보면 상호보완적인 특징을 지닌다.
- 객체지향 코드에서 어려운 변경은 절차적인 코드에서 쉬우며, 절차적 코드에서는 어려운게 객체지향 코드에서는 쉽다.
- 무조건 객체지향을 사용하기 보다는 단순한 자료 구조와 절차적인 코드가 적합한 상황에는 그에 맞게 짜는것이 좋다.
💊디미터의 법칙
- 디미터의 법칙을 지켜라(객체는 자료를 숨기고 함수를 공개한다. 내부를 알수 없게 캡슐화)
- 예시)
User.getAdress().getRegion()을 사용하면 user가 email, name, address를 포함하고 있다고 짐작할 수 있다. 하지만 User.isIncheonUser()을 사용하면 user와 adress객체가 어떤 데이터들을 지니고 있는지 모르게 메세지를 보낼 수 있다.
💡결론
- 코드의 형식(코딩 컨벤션)을 정의하고 따른다면 더 가독성이 좋은 코드를 개발할 수 있다.
- 절차, 객체지향적인 코드 중 한가지를 무조건적으로 고수하는것 보다도 직면한 문제에 더 맞는 유형의 코드를 짜는것이 중요하다.