Diretrizes gerais para script
Escreva scripts eficientes usando uma linguagem semelhante a JavaScript. Siga estas diretrizes gerais para nomeação, variáveis e acesso à tabela.
Este guia orientará você pelas diretrizes gerais para escrever scripts eficientes e confiáveis no CPQ Usando uma linguagem semelhante a JavaScript. Seguir essas diretrizes ajudará você a criar código que possa ser mantido, legível e com bom desempenho.
Resumo rápido
- Coloque as declarações na parte superior
- Comente com atenção
- Colchetes de recuo
- Use nomes de variáveis descritivas
- Nomeie as variáveis de forma consistente
- Evitar "novo"
- Evite igualdade solta (")
- Use "const" antes de "let" e "let" sobre "var"
- Minimize pesquisas de tabela
Coloque as declarações na parte superior
Colocar declarações de variável e função na parte superior do script melhora a legibilidade e evita problemas inesperados de içamento de variáveis.
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= {};
Comente com atenção
Use comentários para explicar lógicas complexas, suposições ou qualquer comportamento não óbvio no seu código. Evite comentários redundantes que simplesmente repetem o código.
Colchetes de recuo
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 }Use nomes de variáveis descritivas
Escolha nomes significativos e descreva a finalidade da variável ou função. Isso torna seu código autodocumentado e mais fácil para que os outros entendam.
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 }
Nomeie as variáveis de forma consistente
As convenções de nomenclatura consistentes melhoram a legibilidade e a manutenção do código. Escolha camelcase ou snake_case e atenha-se a ele. Os nomes de variáveis de campo Logik usam camelcase, portanto, a maioria das organizações permanece com esta convenção para facilitar a leitura.
1 // camelCase
2 let firstName = "JohnDoe";
3
4 // snake_case
5 let last_name = "Smith";
Evite a palavra-chave "new"
Usando o. novo a palavra-chave pode usar mais recursos, levar a vazamentos de memória e causar comportamentos não intencionais. Em vez disso, use a notação literal para a criação de objetos, se possível.
- Uso
" "em vez deNova cadeia de caracteres ( ) - Uso
( )em vez deNovo número ( ) - Uso
falsoem vez deNovo booliano( ) - Uso
.em vez deNovo mapa ( ) - Uso
[ ]em vez deNova matriz ( )
Evite igualdade solta (")
O operador de igualdade frouxa pode levar a coerção de tipo inesperada. Para comparações precisas, use o operador de igualdade estrita ( . ).
1 // Good
2 if (count === 5) {
3 // ...
4 }
5
6 // Bad
7 if (count == "5") {
8 // ...
9 }
Use "const" antes de "let" e "let" sobre "var"
Escolha a declaração de variável com base no escopo e nos requisitos de mutabilidade. Uso const para variáveis que não serão reatribuídas e. deixe para variáveis que mudarão. var Também é aceitável, mas é um holdover de versões anteriores do JavaScript.
1 // Using const for unchanging values
2 const TAX_RATE = 0.15;
3
4 // Using let for mutable values
5 let itemCount = 5;
Minimize pesquisas de tabela
Consultas de tabela excessivas podem afetar o desempenho. Minimize as consultas buscando os dados necessários uma vez e armazenando-os em variáveis.
Para saber mais sobre orientações gerais para usar o. pesquisa função, consulte Minimizando consultas de tabela.