메타 프로그래밍 기술을 사용하는 것이 점점 더 편안해지면서 메타 프로그래밍을위한 어플리케이션이 점점 더 많이 발견되었습니다. 저는 현재이 클래스의 클래스와 인스턴스를 만들고있는 작은 프로젝트에서 작업하고 있습니다. 메타 프로 그래밍을 너무 많이 수행했는지 궁금합니다. 너무 많은 메타 프로그래밍 같은 것이 있습니까? 그렇다면 어디에서 선을 그어야합니까?얼마나 많은 양을 메타 프로그래밍하고 있습니까?
답변
는
을 유지 이해
- 테스트
- 디버그에 너무 어려워 그때는 너무 아마. 메타 프로그래밍은 일상적인 개발을 단순화하기로되어 있습니다. 복잡한 코드 기반을 유지하는 데 점점 더 많은 시간을 소비하게된다면 아마 그것을 단순화해야 할 것입니다.
테스트, 디버깅, 이해 및 유지 관리가 더 어려워진다면 - 팀원 중 자신 만이 아니라 다른 사람에게도이 말을 듣겠습니다. (초기 코딩은이 목록에 포함되어 있지 않습니다! 적은 타이핑은 결코 복잡성을 추가하는 좋은 변명이 아닙니다. 최종 프로세스로). 이것은 모든 프로그래밍 기능을 선택하는 규칙이되어야합니다 - 그 일을하는 일, 그 일을하는 일, 다음 사람이 유지하는 것이 가장 간단한 일. 기간. –
원래 프로젝트를 끝낼 수 없을 때 너무 많은 메타 프로그래밍을하고 있지만 유용한 재사용 가능한 구성 요소를 계속 많이 개발하고 있다는 것을 알 수 있습니다.
신생 기업인 Enrique는 오래 전에 메타 프로그래밍 전문가였습니다. 그가 일하고있는 시스템에 대한 보고서를 작성하기 시작한 것을 기억합니다. 하루 이틀 정도의 작업이었습니다. 일주일 후 보고서는 아직 작성되지 않았지만 원하는 모든 유형의 보고서를 작성하기위한 환상적인 종합 도서관이 마음 속에 형성되었습니다.
Enrique와 프로그래밍에 대해 더 많은 것을 배웠습니다. 이전에 수년간 작업 한 결과, 그의 생각은 고무적이었습니다 ... 너무 지나치게 많이 사용했기 때문에 실제로 작업을 완료해야했습니다 ...
너무 많은 메타가 될 위험이 있습니다. 어쩌면 당신은 전형적인 "일부 프로그래머는 10 배의 배율로 생산적입니다"라고 읽었을 것입니다 ... 나는 그 10 배 슈퍼 스타 중 하나가되는 핵심 요소는 사고 방식이라고 생각합니다.
당신과 당신의 팀이 당신의 기술에 익숙하지 않다면, 당신은 프로젝트의 목표를 제 시간에 달성 할 수 있습니다. 그러면 메타 프로그래밍을 너무 많이하지 않은 것입니다.
메타 프로그래밍은 폭력과 같습니다. 작동하지 않는 경우 충분하지 않습니다.
모든 진지하게, 메타 프로그래밍은 과도하게 매우 빠르게 진행될 수 있지만, 코드가 읽을 수있는 한 유감스럽게도 전역에 영향을 미치지 않으며 효과가 잘 들어 맞습니다. 즉, 종종 메타 프로그래밍 사고 방식에 빠지면 정상적인 프로그래밍 방식을 수행하는 방법을 잊게됩니다. 메타 프로그래밍과 OOP는 기능면에서 겹치는 부분이 있으므로 목표를 달성하는 간단한 방법이 있는지 확인해야합니다. Yehuda Katz는 그런 학대에 관한 재미있는 이야기를 가지고 있습니다. http://yehudakatz.com/2009/03/06/alias_method_chain-in-models/
실제로 예후 다 우수한 작품! :) – Tilo
- 1. 얼마나 많은 EJB가 얼마나 많이 있습니까?
- 2. 얼마나 많은 정수가 16kb 배열에 있습니까
- 3. 얼마나 많은 병합 정렬이 있습니까?
- 4. 얼마나 많은 PHP가 포함하고 있습니까?
- 5. 구성, 얼마나 많은 인스턴스가 있습니까?
- 6. 얼마나 많은 PHP가 포함되어 있습니까?
- 7. 일광의 양을 결정하는 알고리즘이 있습니까?
- 8. 내 자바 스레드는 얼마나 많은 메모리를 차지합니까?
- 9. 스레드가 얼마나 많은 메모리를 사용하는지 알 수있는 방법이 있습니까?
- 10. rrd에 얼마나 많은 rra?
- 11. .Net Appdomain이 얼마나 많은 메모리를 소비하는지 파악할 수 있습니까?
- 12. 얼마나 많은 콩이 충분합니까?
- 13. add inApp 기능 - 얼마나 많은 노력이 있습니까?
- 14. PHP가 얼마나 많은 페이지를 지금 실행하고 있습니까
- 15. "mysql에서 얼마나 많은 검색 결과가 있습니까?"
- 16. 얼마나 많은 메모리를 할당 할 수 있습니까?
- 17. 전자 상거래가 얼마나 많은 돈을 벌고 있습니까?
- 18. Mathematica에서 얼마나 많은 커널이 병렬로 실행되고 있습니까?
- 19. 얼마나 많은 (일반?) 클래스 WordPress에 있습니까?
- 20. _SESSION에 저장할 때 얼마나 많은 변수가 있습니까?
- 21. jquery $ ('. 클래스'). each() 얼마나 많은 항목이 있습니까?
- 22. 데이터베이스 테이블 당 얼마나 많은 인덱스가 있습니까?
- 23. 얼마나 많은 키가 memcached에 너무 많이 있습니까?
- 24. PHP - 얼마나 많은 멤버가 배열에 있습니까?
- 25. 얼마나 많은 expr_no_commas '='expr_no_commas식이 C에 있습니까?
- 26. Facebook에 얼마나 많은 자바 스크립트 링크가 있습니까?
- 27. 무대에서 얼마나 많은 이벤트 리스너가 있습니까?
- 28. django.forms는 얼마나 많은 도움을 줄 수 있습니까?
- 29. HttpContext.Current 호출 뒤에 얼마나 많은 계산이 있습니까?
- 30. 목록에 얼마나 많은 요소가 스키마로 구성되어 있습니까?
더 이상 도움이되지 않으며 더 이상 복잡하지 않으면 어떻게됩니까? :) – Skurmedel
일을 끝내기보다는 재미있게 놀 때. –