[TIL] JS naming convention, DBML(database markup language)

윤남주·2022년 1월 3일
0

TIL

목록 보기
8/10
post-thumbnail

JavaScript Naming Conventions

아래 내용은 이 글을 한국어로 정리한 것입니다


변수명

자바스크립트의 변수 이름은 case-sensitive 하다.

const name
const Name
const NAME

// 모두 다른 변수명

변수 이름은 self-descriptive 하게 지어야 한다. 즉 변수명을 보고 어떤 내용인지 알 수 있어야한다.

const value = 'Robin';
const val = 'Robin';
const firstName = 'Robin'; // Good!

camelCase

const PascalCase;
const snake_case;
const kebab-case;
const firstName; // Good!

✨ 심지어 직접 변수 선언 시 -는 인식이 안됨


Boolean

변수명을 is, are, has 등으로 시작하면 Boolean 값인 것이 명확해진다.

const visible = true;
const isVisible = true; // good

const equal = false;
const areEqual = false; // good

const encryption = true;
const hasEncryption = true; // good

function

변수명을 동사의 형태로 만드는 것이 함수의 역할을 더 명확히 드러냄
get, fetch, push, apply, calculate, compute, post 등

// bad
function name(firstName, lastName) {
  return `${firstName} ${lastName}`;
}

// good
function getName(firstName, lastName) {
  return `${firstName} ${lastName}`;
}

💡 메소드 또한 동일


class

클래스 선언은 항상 PascalCase로 한다

class CarManufacturer {
  constructor ( ) {
    
  }
}

component

React와 같은 프레임워크에서 사용하는 컴포넌트는 클래스와 마찬가지로 PascalCase로 선언


Private

변수명/함수명/메소드명 앞에 _가 있는 경우 있음 ➡️ Private
자바스크립트에 private을 선언할 수 있는 방법이 있는 것은 아님, 하지만 _를 통해 이를 나타내고, 다른 개발자들에게 알리는 것

예) 클래스 내부에서만 사용하고, 외부에서는 접근하지 않았으면 하는 메소드


constant

항상 똑같아야하는 상수를 변수 선언할 때엔 UPPERCASE로 나타냄

var SECONDS = 60;
var MINUTES = 60;
var HOURS = 24;

var DAYS_UNTIL_TOMORROW = 1;
// 두 단어 이상인 경우는 _ 사용

files

자바스크립트 프론트엔드 어플리케이션의 경우 PascalCase가 표준

UserProfile.js, UserList.js, UserItem.js

자바스크립트 백엔드 어플리케이션의 경우 kebab-case가 표준

user-route.js, messages-route.js




DBML

DataBase Markup Language.

데이터베이스 모델링 실습을 진행하며 dbdiagram.io에서 사용한 마크업 언어.


테이블 만들기

Table drink as U {
  id int [pk, increment] // auto-increment
  full_name varchar
  created_at timestamp
  country_code int
}

Table countries {
  code int [pk]
  name varchar
  continent_name varchar
 }

as (alias) : 다른 이름 만들기
pk : primary key
increment : 자동 오름차순


Ref: U.country_code > countries.code  
Ref: merchants.country_code > countries.code

> 다대일 관계
< 일대다 관계
- 일대일 관계


컬럼 세팅

Table order_items {
  order_id int [ref: > orders.id]
  product_id int
  quantity int [default: 1]
}

Ref: order_items.product_id > products.id

Table orders {
  id int [pk]
  user_id int [not null, unique]
  status varchar
  created_at varchar [note: 'When order created'] // add column note
}

[ref: >orders.id] : inline으로 관계 정의할 수 있음

[default: 1] : default값 설정 가능

[unique], [not null]

[note] 까지 설정 가능


profile
Dig a little deeper

0개의 댓글