ITEM 11 :작은 함수들의 매력을 이해하라.

|

ITEM 11 : Understand the Attraction of Small Functions

           (작은 함수들의 매력을 이해하라.)



■ 요약 및 장점





     -문제를 일으키는 미성숙한 최적화의 가장 일반적인 예는, 당신이 Function Call을 회피하기 위해서 만드는 길고

       복잡한 함수를 만들때이다.

      

     -함수가 작으면 작을수록 JIT 컴파일러가 등록(enregistration)을 지원하는 것을 더 쉽게 만든다.


     -Simpler is Better

      작은 함수 일수록 더 적은 지역변수를 포함 하며 JIT 컴파일러가 등록에 필요한 최적화를 하는 것을 쉽게 한다.


■ Terms


1.      JIT Compiler : Just-In-Time Compiler.(필요할 때 컴파일된다).

                           CLR에 속함 CLR에서 JIT Compiler를 이용해서 Native Code를 생성한다.


2.      CLR : 공용 언어 런타임으로써, 프로그램이 동작하는데 필요한 모든 것을 지원/관리 한다. 자바의 VM과 유사


3.      MSIL : 각각의 언어의 컴파일러가 원시코드로 효율적으로 변환될 수 있는 CPU에 독립적인 명령의 집합인 MSIL로 변환한다

                 코드가 실행되기 전에 MSIL JIT Compiler에 의해서 특정 CPU에 적합한 코드로 변환되어진다.


4.      BCL : Base Class Library , 닷넷을 사용하는 언어가 공통적으로 사용하는 기본 클래스 라이브러리 

                System.String and System.DateTime …등등


5.      CLS : Common Language Specification , 각 언어들이 지켜야 하는 규약.

               언어마다 존재하는 고유한 문법이 있는데 이런 부분을 통합된 양식으로 변환이 가능하도록 만들어주는

               레이어, CLS를 준수하면 서로 다른 언어로 개발된 DLL을 참조할때 호환성을 보장해준다.


6.      닷넷스택 참조 (Source Code to Native Code )


     CLS를 준수해서 작성(필수는 아님) Source Code가 각 언어의 컴파일러에 의해서 MSIL 코드로 변환된다.


     해당 소스가 참조나 실행될 때 MSIL CLR에 있는 JIT-Compiler Native 코드로 변환이된다.



■ 해석이 모호하거나 중요한 구문



■ 단어


1.      favored : 호의를 사고있는,인기있는 / 혜택을 받고 있는.


2.      invoke : 불러오다, 작동시키다.


3.      counterproductive: 역효과를 낳는


4.      premature : 정상보다 이른 / 조산의 / 너무 이른, 시기상조의


5.      hoisting : 끌어올리다.


6.      extraneous : 관련 없는.


7.      contrived : 억지고 꾸민 듯한, 부자연스러운


8.      amortize :  분할 상환하다.


9.      candidate : 후보자, 지원자


■ 피드백


       -하나의 함수는 하나의 기능만을 하는 것을 원칙으로 한다.


And