본문 바로가기

함수4

클린코드 3장 — 함수 의도를 분명히 표현하는 함수를 어떻게 만들 수 있을까? 함수에 어떤 속성을 부여해야 처음 읽는 사람이 프로그램 내부를 직관적으로 파악할 수 있을까? 작게 만들어라! • 함수를 만드는 첫번째 원칙 => 작게! • 함수를 만드는 두번째 원칙 => 더 작게! 무조건 작은 함수가 좋다. 각 함수가 명백하게 하나의 이야기를 표현해야 한다. 얼마나 짧아야 할까? public static String renderPageWithSetupsAndTeardowns(PageData pageData, boolean isSuite) throws Exception { boolean isTestPage = pageData.hasAttribute("Test"); if (isTestPage) { WikiPage testPage = p.. 2019. 6. 14.
[Javascript] Global 변수, Global 함수가 좋지 않은 이유 Javascript에서(다른 언어에서도 마찬가지지만), 변수나 함수를 전역 범위에서 선언하는 것은 두 가지 이유로 인해 권장하지 않는다. 1. Tight coupling2. Name collisions Tight Coupling Tight coupling이란, 각각의 코드들이 서로 지나치게 의존적인 상황이 되는 것을 말한다. coupling이란 두 아이템의 쌍이 함께하는 것을 뜻하는데, 즉 tight coupling은 서로 다른 두 묶음의 코드들이 서로 의존적이어서 어느 한 쪽에 의도치 않은 변화를 일으키는 상황을 뜻한다. var instructor = 'Richard'; function richardSaysHi() { console.log(`${instructor} says 'hi!'`);} 위의 코드.. 2018. 6. 26.
[Javascript] Closure, 그리고 IIFE의 활용 이번에는 지난 포스트에서 소개한 Scope에 이어서, 역시 Javascript에서 자주 쓰이는 개념인 Closure에 대해 알아 보고, 추가로 IIFE(Immediately-Invoked Function Expressions)까지 정리해보도록 한다. Closure (클로저)closure를 이해하기 위해, 이렇게 생각해보자. 함수의 scope에 대한 접근(access) 권한이 일회성이 아니라 계속 유지될 수 있다.아직은 감이 잘 오지 않는다. 다음 코드에서 remember() 함수에 주목해 보자:function remember(number) { return function() { return number; } } const returnedFunction = remember(5); console.log( r.. 2018. 5. 3.
First-Class Functions 함수는 First-Class다!Javascript는 First-Class Function을 갖고 있다. Javascript의 함수는 First-Class이다.무슨 뜻일까? Javascript에서 함수는, 1. 변수에 저장할 수 있고2. 다른 함수의 인자(argument)로 전달할 수 있고(Callback function)3. 함수의 리턴값으로 쓸 수 있다. 어떤 프로그래밍 언어이든 위의 세 가지가 모두 가능하면, 그 언어는 "First-Class Function"을 갖는다고 할 수 있다.(First-class function - Wikipedia 참조) First-class function이 의미하는 것은 즉, 일반적인 다른 data structure, 이를테면 숫자, string, object, 배열 .. 2018. 4. 14.