스크립팅에 대한 일반 지침
JavaScript와 유사한 언어를 사용하여 효율적인 스크립트를 작성합니다. 이름, 변수 및 테이블 액세스에 대한 다음 일반 가이드라인을 따르십시오.
이 가이드는 JavaScript와 유사한 언어를 사용할 때 CPQ 효율적이고 안정적인 스크립트를 작성하기 위한 일반적인 지침을 안내합니다. 이러한 지침을 따르면 유지 관리가 가능하고 읽기 쉬우며 성능이 우수한 코드를 만드는 데 도움이 됩니다.
간략한 요약
- 맨 위에 선언 배치
- 신중하게 설명하십시오.
- 들여쓰기 대괄호
- 설명이 포함된 변수 이름 사용
- 변수에 일관성 있는 이름 지정
- '신규' 피하기
- 느슨한 동등성 방지("==")
- "let" 앞에 "const"를 사용하고 "var" 위에 "let"을 사용하십시오.
- 테이블 조회 최소화
맨 위에 선언 배치
변수 및 함수 선언을 스크립트의 맨 위에 배치하면 가독성이 향상되고 예기치 않은 변수 호이스팅 문제를 방지할 수 있습니다.
1 // Declare and initiate at the beginning
2 let firstName = "";
3 let lastName = "";
4 let price = 0;
5 let discount = 0;
6 let fullPrice = 0,
7 const myArray = [];
8 const myMap= {};
신중하게 설명하십시오.
주석을 사용하여 코드의 복잡한 논리, 가정 또는 명확하지 않은 동작을 설명합니다. 단순히 코드를 반복하는 중복 주석을 피하십시오.
들여쓰기 대괄호
1 // Good
2 if (condition) {
3 // ...
4 if (nestedCondition) {
5 // ...
6 }
7 }
8
9 // Bad
10 if (condition) {
11 // ...
12 if (nestedCondition) {
13 // ...
14 }
15 }설명이 포함된 변수 이름 사용
의미 있고 변수 또는 함수의 목적을 설명하는 이름을 선택합니다. 이렇게 하면 코드가 자체 문서화되고 다른 사람이 더 쉽게 이해할 수 있습니다.
1 //Good
2 let quoteId = cfgRequest.partner.quote.id.value;
3 let lineID = cfgRequest.partner.quote.lineId.value;
4 let currencyISO = cfgRequest.partner.quote.currencyIsoCode.value;
5 let priceBookID = cfgRequest.partner.quote.pricebookId.value;
6
7 if (quoteId != null) {
8 cfgRequest.quoteIDTest.set("value", quoteId);
9 }
10
11 if (lineID != null) {
12 cfgRequest.lineIDTest.set("value", lineID);
13 }
14
15 if (currencyISO != null) {
16 cfgRequest.currencyISOCodeTest.set("value", currencyISO);
17 }
18
19 if (priceBookID != null) {
20 cfgRequest.pricebookIDTest.set("value", priceBookID);
21 }
22
23 //Bad
24 let x1= cfgRequest.partner.quote.id.value;
25 let x2= cfgRequest.partner.quote.lineId.value;
26 let x3= cfgRequest.partner.quote.currencyIsoCode.value;
27 let x4= cfgRequest.partner.quote.pricebookId.value;
28
29 if (x1 != null) {
30 cfgRequest.quoteIDTest.set("value", x1);
31 }
32
33 if (x2 != null) {
34 cfgRequest.lineIDTest.set("value", x2);
35 }
36
37 if (x3 != null) {
38 cfgRequest.currencyISOCodeTest.set("value", x3);
39 }
40
41 if (x4 != null) {
42 cfgRequest.pricebookIDTest.set("value", x4);
43 }
변수에 일관성 있는 이름 지정
일관된 명명 규칙은 코드 가독성과 유지 관리 용이성을 향상시킵니다. camelCase 또는 snake_case 선택하고 이를 고수하십시오. Logik 필드 변수 이름은 대소문자를 사용하므로 대부분의 조직에서는 가독성을 위해 이 규칙을 따릅니다.
1 // camelCase
2 let firstName = "JohnDoe";
3
4 // snake_case
5 let last_name = "Smith";
'신규' 키워드 피하기
new 키워드를 사용하면 더 많은 자원이 사용되고 메모리 누수가 발생하며 의도하지 않은 동작이 발생할 수 있습니다. 가능하면 개체 생성에 리터럴 표기법을 대신 사용합니다.
new String( )대신" "사용새 숫자( )대신( )를 사용하십시오.new Boolean( )대신false를 사용하세요new Map( )대신{ }사용new Array( )대신[ ]사용
느슨한 동등성 방지("==")
느슨한 동등 연산자는 예기치 않은 형식 강제 적용으로 이어질 수 있습니다. 정확한 비교를 위해 엄격한 동등 연산자(===)를 사용하십시오.
1 // Good
2 if (count === 5) {
3 // ...
4 }
5
6 // Bad
7 if (count == "5") {
8 // ...
9 }
"let" 앞에 "const"를 사용하고 "var" 위에 "let"을 사용하십시오.
범위 및 가변성 요구 사항에 따라 변수 선언을 선택합니다. 재할당되지 않는 변수에는 const 를 사용하고 변경되는 변수에는 let 을 사용하십시오. var 도 허용되지만 이전 버전의 JavaScript에서 유지됩니다.
1 // Using const for unchanging values
2 const TAX_RATE = 0.15;
3
4 // Using let for mutable values
5 let itemCount = 5;
테이블 조회 최소화
과도한 테이블 쿼리는 성능에 영향을 줄 수 있습니다. 필요한 데이터를 한 번 가져와 변수에 저장하여 쿼리를 최소화합니다.
조회 함수 사용에 대한 일반적인 지침에 대한 자세한 내용은 다음 문서를 참조하십시오테이블 쿼리 최소화.