2009-06-22 6 views
3

메타 프로그래밍 기술을 사용하는 것이 점점 더 편안해지면서 메타 프로그래밍을위한 어플리케이션이 점점 더 많이 발견되었습니다. 저는 현재이 클래스의 클래스와 인스턴스를 만들고있는 작은 프로젝트에서 작업하고 있습니다. 메타 프로 그래밍을 너무 많이 수행했는지 궁금합니다. 너무 많은 메타 프로그래밍 같은 것이 있습니까? 그렇다면 어디에서 선을 그어야합니까?얼마나 많은 양을 메타 프로그래밍하고 있습니까?

+5

더 이상 도움이되지 않으며 더 이상 복잡하지 않으면 어떻게됩니까? :) – Skurmedel

+1

일을 끝내기보다는 재미있게 놀 때. –

답변

9

  • 을 유지 이해

    • 테스트
    • 디버그에 너무 어려워 그때는 너무 아마. 메타 프로그래밍은 일상적인 개발을 단순화하기로되어 있습니다. 복잡한 코드 기반을 유지하는 데 점점 더 많은 시간을 소비하게된다면 아마 그것을 단순화해야 할 것입니다.

    +1

    테스트, 디버깅, 이해 및 유지 관리가 더 어려워진다면 - 팀원 중 자신 만이 아니라 다른 사람에게도이 말을 듣겠습니다. (초기 코딩은이 목록에 포함되어 있지 않습니다! 적은 타이핑은 결코 복잡성을 추가하는 좋은 변명이 아닙니다. 최종 프로세스로). 이것은 모든 프로그래밍 기능을 선택하는 규칙이되어야합니다 - 그 일을하는 일, 그 일을하는 일, 다음 사람이 유지하는 것이 가장 간단한 일. 기간. –

    5

    원래 프로젝트를 끝낼 수 없을 때 너무 많은 메타 프로그래밍을하고 있지만 유용한 재사용 가능한 구성 요소를 계속 많이 개발하고 있다는 것을 알 수 있습니다.

    신생 기업인 Enrique는 오래 전에 메타 프로그래밍 전문가였습니다. 그가 일하고있는 시스템에 대한 보고서를 작성하기 시작한 것을 기억합니다. 하루 이틀 정도의 작업이었습니다. 일주일 후 보고서는 아직 작성되지 않았지만 원하는 모든 유형의 보고서를 작성하기위한 환상적인 종합 도서관이 마음 속에 형성되었습니다.

    Enrique와 프로그래밍에 대해 더 많은 것을 배웠습니다. 이전에 수년간 작업 한 결과, 그의 생각은 고무적이었습니다 ... 너무 지나치게 많이 사용했기 때문에 실제로 작업을 완료해야했습니다 ...

    너무 많은 메타가 될 위험이 있습니다. 어쩌면 당신은 전형적인 "일부 프로그래머는 10 배의 배율로 생산적입니다"라고 읽었을 것입니다 ... 나는 그 10 배 슈퍼 스타 중 하나가되는 핵심 요소는 사고 방식이라고 생각합니다.

    0

    당신과 당신의 팀이 당신의 기술에 익숙하지 않다면, 당신은 프로젝트의 목표를 제 시간에 달성 할 수 있습니다. 그러면 메타 프로그래밍을 너무 많이하지 않은 것입니다.

    8

    메타 프로그래밍은 폭력과 같습니다. 작동하지 않는 경우 충분하지 않습니다.

    모든 진지하게, 메타 프로그래밍은 과도하게 매우 빠르게 진행될 수 있지만, 코드가 읽을 수있는 한 유감스럽게도 전역에 영향을 미치지 않으며 효과가 잘 들어 맞습니다. 즉, 종종 메타 프로그래밍 사고 방식에 빠지면 정상적인 프로그래밍 방식을 수행하는 방법을 잊게됩니다. 메타 프로그래밍과 OOP는 기능면에서 겹치는 부분이 있으므로 목표를 달성하는 간단한 방법이 있는지 확인해야합니다. Yehuda Katz는 그런 학대에 관한 재미있는 이야기를 가지고 있습니다. http://yehudakatz.com/2009/03/06/alias_method_chain-in-models/

    +0

    실제로 예후 다 우수한 작품! :) – Tilo

    관련 문제