주제에 대해 어떻게 생각하십니까?
메타 프로그래밍은 비생산적이고 비 지능적인 코드가 많지 않은 특정 동작 (ORM 구현과 같은)을 달성하는 데 시간이 더 걸리기 때문에 가장 일반적으로 비 동적 언어와 관련이 있습니다.
그러나 PHP와 같은보다 역동적 인 언어에서도 코드 생성은 실제로 생명을 구하고 생산성을 크게 향상시킬 수 있습니다. 현대 프레임 워크에서는 선언 한 특정 비즈니스 오브젝트에 대한 대부분의 공통 모델, 양식, 테스트 및 조치를 생성하는 스캐 폴딩이 매우 일반적입니다. symfony 또는 RoR과 같은 프레임 워크가 큰 성공을 거둔 이유 중 하나입니다. 이러한 코드 생성 도구는 일관된 코드를 매우 빠르게 만들고 프로그래머의 생산성을 향상시킵니다.
웹 사이트에서 대부분의 상호 작용은 다음과 같은 네 가지 주요 동작으로 이루어집니다.
- 요소 만들기
- 필터링 가능한 요소 집합 검색
- 새로운 속성으로 요소 업데이트
- 요소 집합 삭제
이 4 가지 주요 행동과 관련된 모든 것은 최소한 생산성을 극대화하기 위해 코드 생성 도구를 사용하여 달성해야합니다.
우리 회사에서는 심포니를 사용하고 있으며 관리자 생성기는 런타임에 코드를 생성 (및 캐시)하기도하는 뛰어난 도구이므로 어떤 종류의 작업이나 외부 도구를 사용하지 않아도됩니다. 새 코드를 생성하려면 캐시를 정리하면됩니다. CRUD 작업에 이러한 종류의 도구를 사용하는 것이 좋습니다.
그러나 심포니 공헌자들이 한 일을하는 것은 쉬운 일이 아닙니다. 나는 코드 생성 작업을 직접 구현했으며 실제로 일관된 작업을 수행하고 대부분의 사례를 다루는 광범위한 구현으로 쉽지 않습니다.
실제로 생산성을 높이는 것입니까?
메타 프로그래밍은 하위 수준의 작업 (프레임 워크, 캐싱, 컴파일러 등)에서 매우 중요하지만 비즈니스 계층에서 작업을 수행 할 때는 특히주의해야합니다.
코드 생성을 사용하는 것은 의심 할 여지없이 생산성 향상에 큰 도움이됩니다. 직접 프레임 워크를 작성하지 않는 한 자체 코드 생성 도구를 구현하십시오.
책, 블로그, 슬라이드 쇼 등 주제에 관한 좋은 자료는 무엇입니까?
프로그래밍을 이해하는 데 가장 좋은 리소스는 항상 훌륭하고 주석이 달린 소스 코드입니다. 나는에보고 말할 것이다 RubyOnRails 와 심포니의 관리 발생기하는 것은 좋은 생각이다.