각 메서드와 변수가 번만 번만 사용되는 경우 더 정확한 규칙이 무엇입니까?컴팩트 컨벤션
var x = GmailApp.getInboxUnreadCount();
var email = GmailApp.getInboxThreads (0, x);
한 줄의 코드를 구성 :
var email = GmailApp.getInboxThreads (0, GmailApp.getInboxUnreadCount());
각 메서드와 변수가 번만 번만 사용되는 경우 더 정확한 규칙이 무엇입니까?컴팩트 컨벤션
var x = GmailApp.getInboxUnreadCount();
var email = GmailApp.getInboxThreads (0, x);
한 줄의 코드를 구성 :
var email = GmailApp.getInboxThreads (0, GmailApp.getInboxUnreadCount());
후자의 이유에서 필요한만큼 변수를 생성
. 그러나 이것은 단순한 경우에 크게 스타일의 문제입니다.
10 개의 인수를 취하는 함수 호출이 있고 각 인수가 큰 함수 호출 자체에서 오는 경우이 작업을 수행하지 마십시오. 나중에 누가 코드베이스를 얻는 지 생각해보십시오.
"이 코드 줄은 더 적은 로컬 변수를 사용하여 읽을 수 있습니까? 아니면 줄을 잘 보여주기 위해 해체해야합니까?" 당신이 스스로에게 물어야 할 질문입니다. 그리고이 경우 후자는 완전히 읽을 수 있습니다.
는 사실, 나는 첫 번째 예제 인해 쓸모없는 지역 변수 이름 x
덜 읽을 주장 할 것이다. 대신 그 이름이 잘 지어진다면 더 실용적인 옵션 일 수 있습니다.
var unreadCount = GmailApp.getInboxUnreadCount();
var email = GmailApp.getInboxThreads (0, unreadCount);
매우 간단하지만이 경우에도 여전히 바람직합니다.
트레이드 오프입니다.
첫 번째 예는 읽고 디버그하기가 더 쉽습니다. 오류가 발생할 수있는 2 줄이 있습니다. 디버깅을 위해서는 한 줄에 하나의 함수 만 호출되기 때문에 좋은 방법입니다.
두 번째 예제는 "하나의 라이너"라고하며 라인에 오류를 일으킬 수 있지만 메모리를 덜 사용하는 여러 가지 요소가 있기 때문에 디버깅하기가 어렵습니다. 아마 사소한 금액.
1. var unread = GmailApp.getInboxUnreadCount();
2. var email = GmailApp.getInboxThreads (0, unread);
이 예에서
, 당신은 당신이 getInboxThreads 오류를 던지고 것을 알고 선 2. 오류가 발생하는 말.1. var email = GmailApp.getInboxThreads (0, GmailApp.getInboxUnreadCount());
이제 1 번 줄에서 오류가 발생한다고 가정 해보십시오. 두 가지 방법을 모두 확인해야합니다.
그래서 디버깅하기가 더 쉽다고 생각합니다. –
또 다른 중요한 점은 자바 스크립트 파일에서 여분의 문자가 차지하는 공간입니다. 이 파일은 클라이언트에서 다운로드해야하므로 추가 문자는 최종 다운로드 크기에 약간의 가중치가있을 수 있습니다. 물론 당신은 당신의 파일을 난독 화/축소/압축 할 수 있습니다. 또는 귀하의 특정 인프라 구조에 대해 이것은 전혀 문제가되지 않을 수도 있습니다 ... 여전히, 당신은 그것을 인식하고 있어야합니다. – lsoliveira
기술적으로는 사실이지만 그 차이는 매우 작습니다. 특히 gzipped했을 때 특히 그렇습니다. 요즘 압축되지 않은 js를 제공 할 변명의 여지가 없습니다. 그리고 만약 당신이 그 몇 바이트가 중요한 환경이라면, 컴프레서를 사용하는 것이 더 낫습니다. 어쨌든 이것을 컴파일 할 때 리팩토링 할 것입니다. 따라서 대역폭을 절약하기 위해 유지 관리하기가 더 어려워 진 이유는별로 없습니다. 자동화 된 도구로이 작업을 수행하고 가능한 최고 품질의 코드를 작성하십시오. –
대역폭은 나에게는 문제가 아니지만 나중에 참조 할 때 알아두면 좋습니다.귀하의 답변을 주셔서 감사합니다,이 이론을 생각 나게 "귀하의 코드는 한 번만 쓸 수 있지만 그것은 1000 번 읽을 수 있습니다". –