2010-08-06 2 views
3

ActiveRecord가 너무 일반적으로 제한됩니다. 그러나 나는 ORM을 사용하는 것과 관련하여 팀의 각 구성원이 가지고있는 견해면에서 어려운 상황에 처해있다. 우리는 현재 매우 기초적인 ActiveRecord를 사용하고 있습니다. 새로운 DAL을 구축하고 싶지만 ActiveRecord의 한계를 피하고 싶습니다. 따라서 DDD가 더 그렇습니다. 그러나 내가 싸우고 오전 포인트 (아주 젊은 모두 오래된 skool 개발자와 자신을)은 다음과 같습니다어떤 DAL 접근 방식을 취합니까?

팀장 개발자

  • 저장 프로 시저에 찬성하지만, consistant하지 않습니다 ... 일부 그냥 표를 얻으십시오. SELECT * FROM Company와 일부는 SELECT C를 얻습니다. *, O.OtherTableValue from C ... (매우 실망 스럽습니다)
  • 최신 ORM 도구의 이점을 실제로 모르십니까?
  • 도구가 "너무 제한적"이고 문제가있는 경우 어떤 도구를 사용합니까?

DBA

  • 가 SELECT 내가 위에서 말하는 게 아니에요

은 출입 금지입니다 *, 그것의 더 convicing 좋아하지 않는 동적 SQL을 좋아하지 않는다 그렇지 않으면. 나는 우리가 ORM의 사용으로 우리의 효율성을 대폭 향상시킬 수 있다고 믿었지만 그렇지 않다면 그들을 설득하기가 매우 어렵습니다. 이러한 영역 중 일부에 대한 증거를 제공 할 수 있다면 초기 단계에 대해 알지 못하고 그 다음에 혜택을 보지 않고도 해당 조항을 적용하여도 설득 할 수 있습니다.

내 상황을 돕기 위해 어떤 조언을 할 수 있습니까? 나는 많은 개발자들이 이것을 보았고 어떤 아키텍처를 사용하고 싶은지 선택할 수 없다고 생각한다.

답변

2

팀 리더는 일관성을 유지하거나 ORM 연구 프로젝트에 시간을 할애하여 사용을 권장해야한다고 생각합니다. 다른 말로하면, 일관성이없고 조정 된 팀 리더가 그 역할을해서는 안됩니다.

둘째, 여러 가지 이유로 귀하의 DBA에 동의하는 경향이 있습니다. 동적 SQL이 문제를 훨씬 더 잘 해결할 수있는 경우가 있다는 사실을 알기에 충분히 유연한 한.

귀하의 특정 상황에 대해 DBA에게 사안별로 설명이 제공되지 않는 한 저장된 procs가 매번 사용된다는 법률을 제정하고 정책 및 모니터링을 통해이를 시행하도록 요청한다고 말하고 싶습니다. 이것은 일관성 문제를 해결합니다. 아마도이 정책을 통해 ORM은 모든 것을 팀 리더에게 직접 코딩하는 것보다 유치 해 보입니다.

+0

팀 리더와 관련하여 그는 자신의 방식을 바꾸지 않을 것이며, 실제로 일을 더 잘하기 위해 직업에 관심을 갖지 않습니다. 내가 생각한 일을해서는 안되지만 그렇게해야만한다. 내가해야만한다. DBA에 관해서는, 그는 데이터베이스가 그의 배경이기 때문에 응용 프로그램에서 갖는 문제를 실제로 얻지 못한다. 그는 한 점까지 배웠고 이후로 새로운 변화, 즉 동적 SQL이 '항상'나쁜 것은 아니라는 것을 알지 못했다고 생각합니다. – user203538

+0

그러면 "죽음의 행진"이라는 책을 읽으시기 바랍니다. 거기서 상황을 도울 수 있습니다. –

+0

새로운 DAL 또는 다른 직업처럼 보입니다. – user203538

1

리드 개발자는 DBA의 의견을 들어야합니다. "SELECT *"가 나쁘다. 그리고 리드 개발자에 관한 글 머리 기호에서 친숙한 오르막 전투가있는 것처럼 들립니다. 이 상황에서 가장 저항이 적은 경로는 ORM (예 : NHibernate)을 사용하여 무언가를 구현하고 팀에 일종의 데모 일정을 세우는 것입니다.

리드 개발자, DBA 및 기타 다른 비난받은 ​​사람들로부터 의견을 받도록하십시오. 도구에 대해 자세히 알게되면 실제로 해결할 수있는 합법적 인 불만이있을 수 있습니다. 다른 한편으로는, 그들은 논리적 인 이유가 없기 때문에 죽을 수도 있습니다.그렇다면 실제로 그것을 논하는 것이 아니기 때문에,이 논쟁에서 승리하지 않는다는 것을 의미 할 수 있기 때문에 그것을 찾아내는 것이 가장 좋습니다.

+0

정말 논쟁의 여지가 없습니다 ... 제가 위에 언급 한 것처럼, 그들은 몇 가지 사실을 배웠고 5 ~ 10 세를 말하는 것이 아니라고 생각합니다. 나는 내가 승리하고 개선 할 수있는 유일한 방법은 내 자신의 DAL을 내놓는 것이라고 생각한다. 그러나 시작해야 할 곳은 바로 그와 같은 큰 일이다. 나는 사람들이 그렇게하지 않는다는 것을 안다. 그러나 나는 선택의 여지가별로 없다고 생각한다. ( – user203538

1

ORM 사용에 대한 이의 제기는 무엇입니까? 그들이 완고하고 고집스럽지 않은 경우, 구체적으로 무엇을 알고 있다면 그들은 당신을 반대하고 그러한 우려를 해결합니다. 다른 사람들처럼 당신의 DBA는 정확하다고 생각합니다. 그러나 동적 SQL에서 SQL 주입을 염려한다면 ORM은 그 문제를 다소 완화합니다. Select *는 발사를위한 근거가되어야합니다.

저는 LINQ-to-SQL 또는 아음속 또는 nhibernate를 사용하는 것이 좋습니다. ORM을 사용하여 개발이보다 빠르고 깨끗해질 수 있음을 보여줍니다.

+0

ORM이 그것을 기반으로하는 새로운 DAL을 만드는 것에 관해서 ...? 그것을 사용하여 출발점을 필요로하고, 그것을 조정하고 다른 ORMs에서 몇 가지 아이디어를 취하십시오. 아음속은 간단한 코드베이스처럼 보입니다. – user203538

관련 문제