2011-01-06 5 views
5

나는 RAD의 이름으로 너무 많이 추상화하려고하는지 궁금합니다.'너무 추상적'인 것과 같은 것이 있습니까?

예를 들어, 3 가지 모델 (기본 모델, 매퍼 모델 및 데이터베이스 모델)이있는 데이터베이스 테이블이 있다고 가정 해 봅시다. 각각은 추상 모델, 매퍼 및 db 테이블 모델을 확장합니다.

이 설정은 매우 잘 작동합니다. 작업의 대부분은 실제로 추상 모델에 있습니다. 그러나 이제는 더 추상적으로 표현하고 싶습니다. 나는 멀리 갈 거니?

나는 이미 지금은 더 많은 고급 것들을 추상화에 대해 생각하고, 기본 CRUD 작업을 추상화했다.

예를 들어 몇 가지 관련 모델을 가져 오는 것입니다. 현재 내가 이런 짓을 했을까 :

$ modelOne-> modelTwo(); 여기서 modelTwo는 명시 적으로 정의됩니다.

제 아이디어는 injectModel ('modelTwo')과 같은 추상적 인 방법이나 마법 방법을 사용하는 것이 었습니다.

나는 항상 내 모델 무결성을 유지하기 위해 관련 규정에 구축 할 수 있습니다 ...하지만이 너무 걸리나요?

모든 조언을 이해하십시오.

내 일부 코드가 얼마나 모순 걱정하지 않는다; 나는 그 부분에 명확한 문서와 의견을 쓸 수있다.

+2

"컴퓨터 과학의 모든 문제는 다른 추상화 계층을 통해 해결할 수 있습니다". 그래서 "아니 너무 추상적 인"같은 것이 없습니다. ;) – FrustratedWithFormsDesigner

+2

Heh. 물론 추상화가 유용하거나 유용하지 않고 단지 의미를 방해하는 순간에는 "너무 추상적"으로 간 것입니다. – Oded

+0

정확하게 이해할 수 있을지 잘 모르겠지만 모델 간 관계를 찾고있을 수도 있습니다. 예를 들어 교리 관계를 살펴보십시오. http : //www.doctrine-project.org/documentation/manual/1_0/en/defining-models # relationships – tawfekov

답변

2

정확하게 현재 응용 프로그램을 개발하는 방식입니다. 이제는 Zend_Db_Table과 Zend_Db_Table_Row의 맨 위에있는 모델의 관계를 가져 와서 지속하기위한 추상적 인 메서드와 마법의 메서드가 있습니다.

처음에는 꽤 괜찮은 느낌 이었지만,이 코드를 다룰 때 팀의 다른 구성원이 직면하는 어려움을 언급하지 않고 새로운 추상 방법을 지원하고 소개하는 일이 점점 더 복잡해졌습니다 (아무리 잘 문서화되어 있더라도)입니다.

이 방법은 확실히 계획하지 않은 내 자신의 ORM을, 쓰기와 같은 꽤 많이 느낀다. 나의 가장 강한 신념은 바로 내가 처음부터 교리를 받아 들여야 만한다는 것이다.

+0

이것은 내가 가진 느낌입니다. 다행히도 현재의 방법을 사용하여 몇 가지 응용 프로그램을 개발했습니다. 앞으로 Doctrine을 내 프로젝트 뼈대에 통합 할 것입니다. 답변 해주셔서 감사합니다! –

1

아인슈타인은 "모든 것을 가능한 한 간단하게 만들어야하지만 조금 더 단순하게 만들어서는 안된다"고 말하지 않았습니까? 내 간단한 마음이 그 해석 방법

은 지금까지 당신이 필요로하는 단지 추상적이다. 인기있는 프레임 워크를 비교해 보면, 어느 것이 추상적이라고 생각 하는가? 나는 ASP.NET과 Java가 PHP 나 node.js보다 훨씬 더 많이하는 경향이 있다고 주장한다. 또한 XML을 JSON과 비교하면 너무 많은 추상화로 인해 가중치가 높아지고 지적 가중치가 커집니다. 나는 추상적 인 학자로서의 가치를 알지 못합니다.

KISS

관련 문제