2009-09-14 2 views
15

저는 다소 새로운 직업으로 새로운 프로젝트를 시작하려고합니다. 그리고 저는 약간의 문제에 봉착했습니다. 그들은 MVC의 큰 팬이 아닙니다.MVC를 사용하는 동료들에게 설득

이 버그가있는 이유는 실제로 Zend Framework를 사용하고 있다고 주장하기 때문입니다. 그들은 DB 모델 클래스를 간신히 사용하고 있습니다. MVC가 없으며 Zend 클래스를 확장하여 목표를 달성 할 필요가 없습니다.

내가 마지막으로 사용한 프로젝트는 젠드를 매우 많이 사용했습니다. 프로젝트가 완료되면 멋진 MVC 프레임 워크가 남았습니다. 매우 깨끗한 컨트롤러, 대부분의 중장비 로직은 속한 모델에 있었고 멋진 모델 게이트웨이 시스템으로 부팅되었습니다. 손으로 작성한 SQL로 sphagetti 코드로 이동하는 것은 다소 충격적입니다.

그럼, 내가 물어, StackOverflow 커뮤니티. 동료가 MVC 프레임 워크로 이동하도록 어떻게 확신합니까? MVC를 사용하기를 두려워한다는 느낌이 들었습니다. MVC를 사용하는 것은 두 명의 기존 프로그래머를위한 학습 곡선을 의미하기 때문입니다. MVC와 별도의 SVN 저장소 (모든 시간에)를 사용하여 현재 프로젝트의 복사본을 만들고, 생각해보기 위해 몇 주 안에 보여줍니다.

동료를 MVC로 변환하는 방법에 대한 의견이 있으십니까?

답변

16

"학교에서 가르치지 않은 가장 중요한 것은 무엇인가?"라는 좋은 글이 있습니다. 그 중 하나는 사회적 기술입니다. 당신 얼굴에 떨어지는 것처럼 보입니다.

먼저, 당신은 팀의 초보자입니다. 무엇을 해야할지 또는 어떻게해야하는지 그들에게 누구에게 이야기 할 것입니까? 코드를 다시 작성하면 악화되면 바보가됩니다. 당신이 성공하면, 당신은 엉덩이입니다. 어느 쪽이든, 당신은 laughingstock 또는 나가는 중입니다.

"이 팀에 합류하는 법을 배우고 프로젝트가 성공하도록 돕고 기여할 수있는 방법은 무엇입니까?"라는 문제를 해결해야합니다. 이 관점에서, 당신이 알고있는 것과 바보 인 것을 보여주는 다른 사람은 해결책이 아닙니다.

원근감을 넓혀주세요. 여기에는 아마도 기술 10 %, 팀의 일원으로 기능하는 방법을 배우는 40 %, 소셜 30 %, 의사 소통 20 % 등의 문제가 있습니다.

프로젝트 관점에서 무엇이 더 중요하다고 생각합니까? 프로젝트가 제 시간에 끝나게 될 것이라고 생각합니까?

a) 모든 사람이 잘못된 프레임 워크에서 생산적이고 조화롭게 함께 작업합니다. b) 팀은 1 명의 프레임 워크에서 일하는 사람과 헤어질 수 있고, 다른 2 명은 그를 무시하고 팀 관리인/관리자에게 서로를 나빠 보이게 만듭니다.

당신은 당신의 작품을 말하고, 입을 다물고, 그들이하는 일을 잘하고, 빨리하고, 원한다면 많은 MVC를 그 부분에 넣으십시오. 다른 사람에게 코드 작성 방법을 알려주지 않는 한 원하는 것이 좋습니다. :) 만약 당신이 너무 잘하면 더 빨리 끝내고 더 많은 작업을 수행하도록 요청하고 위의 단계를 반복하십시오.

일단 자신의 존경심과 이상적인 우정을 얻었 으면 피험자를 다시 불러 올 수 있습니다.

+3

나는 "한 번에 한 파트 씩 추가"의 길을 택했습니다. 필자는 손으로 작성한 SQL의 연습을 대체 할 모델 게이트웨이 시스템을 추가했으며 실제로이 스크립트를 사용했습니다. 우리는 일이 어떻게 진행되는지 볼 것입니다! –

+0

좋은 접근! 이것은 "이 프로젝트가 성공하고 공헌하도록 돕는"의 전반적인 목표에 도움이됩니다. –

+2

+1 답변자에 대해서는 +1, 질문자에게는 상당히 거친 비판에 대해 소변을 보지 않고 실제로 +1을 받았다고 +1합니다. 오프 모자! –

4

기술 인력이없는 "소규모 창업"이라면 이미 끝난 대부분의 작업을 재 작업하기 위해 더 이상 경영진으로부터 시간을 들일 필요가 없습니다. "시장 출시시기"는 설명으로 사용할 수있는 키워드입니다. -> "빨리 작동하도록하십시오."

나는 그것을 좋아하지 않지만, 이것이 당신의 현실 일 수 있습니다.

1

우선 순위에 대한 이해를 시도해 볼 수 있습니다.

작업을 빠르게 수행하려는 경우, 프레임 워크를 작성하는 이유 중 하나는 많은 상용구 작업을 수행하여 작성하는 데 소요되는 시간을 절약하는 것입니다.

유지 보수가 가능한 코드가 필요한 경우 일반 디자인 패턴으로 일반 구조로 코드를 배치하면 명백한 이점이 있습니다.

확실한 코드를 원한다면 (물론 PHP의 테스트 가능성에 대해서는 잘 모릅니다) 잘 알려진 패턴으로 클래스를 확장하면 테스트 가능성이 높아집니다.

단지 무능력이라면 교육이 유일한 답입니다. 잘 설계된 프레임 워크를 사용하는 것보다 교육이 유일한 방법입니까?

2

사용자가 선호하는 모델을 사용하도록 설득하려는 시도는 거의 효과가 없을 것입니다. 그 중 대부분은 사용자가하는 것과 동일한 이점을 보지 못하기 때문입니다.

작은 단계가 가장 효과적입니다. 외출하지 않고 하루 2 주간의 작업을 다시 작성하면 자신을 엉덩이처럼 보일뿐입니다.

동료와 긴밀한 연락을 유지하면서 최선을 다하십시오. 조만간에 모든 것을 알게된다고 믿지 않는다면 (어떤 경우에도 희망이 없다), 사안에 대한 조언을 구할 것입니다. 어떻게 더 중요하게, 왜 그렇게 특별한 문제를 해결할 수 있는지 설명하십시오.

know-it-all으로 건너 가지 않고 항상 인수를 준비하십시오. 그리고 몇 주 안에 성공을 기대하지 마십시오. 시간이 필요하지만 직장 동료가 가치가 있다면 결국 혜택을 배우게됩니다.

물론 어떤 모델이나 MVC를 사용하는 것에 대해 매우 구체적인 논쟁이 있다면 그 정서를 존중해야합니다.

0

기본적으로, 당신이하고 싶은 것은 당신의 작업 환경에 다소 깊은 변화를 가져 오는 것입니다. 이것은 훌륭한 사회 기술을 가진 사람들을 위해서도 매우 어려운 일입니다. 당신은 아주 오랜 기간에 걸쳐 일어나는 작은 조치를 취해야하고, 자존심을 심각하게 인식하고, 사람들을 설득하고, 마침내 실제로 변화가 더 좋을 것이라는 약속을 실제로 이행해야합니다.

오래전에이 주제에 대해 꽤 좋은 팟 캐스트/인터뷰를 들었습니다 : link. 유용한 정보가 많이 있습니다. 가장 충격적인 것은 많은 사람들이 단순히 변경을 원하지 않으며 그렇게하지 않을 것입니다. 프로세스의 일부로 만들고 투자해야합니다.

3

"절대로하지 말아야 할 것"중 하나입니다.

http://www.joelonsoftware.com/articles/fog0000000069.html

지금 MVC에 자원을 최대한 활용 이동?

부정 행위로 인해 "무료"로 시간을 계산할 수 없습니다. 모든 시간을 자기 회사의 시간에 완료했다면 회사 시간 0 시간 안에 무엇이든 할 수 있습니다. RoR을 다시 쓰거나, Lisp 등으로 작성하십시오.

그래서 N 시간이 소요될 것이라고 가정 해 봅시다. . 회귀 테스트에 필요한 시간을 추가하여 완벽하게 작동하는지 확인하십시오. 아니? 그런 다음 2N 시간을 추가하십시오. 다른 개발자들에게 새로운 코드를 익히는 것은 어떻습니까? 아니?그런 다음 2N 시간을 추가하십시오.

그래서 지금은 최대 5N 시간입니다. 다음 배송일 전에 완료해야하는 다른 작업은 무엇입니까? 이 추가 5N 시간에도 적합 할 수 있습니까? 그렇다면, 그 이후의 선박 날짜에 대한 항목은 무엇입니까? MVC에서 다시 쓰는 것보다 5N 시간 안에 끝낼 수있는 항목이 있습니까?

재 작성시 이점, 시간 및 유지 보수 측면에서 어떤 이점이 있습니까?

아마도 프로젝트 관리 관점에서 생각하지 않을 것입니다. 그 관점에서 필자는 개인적으로 다시 쓰기가 시간을 최대한 활용할 수 있을지 의심합니다.

0

당신은 아마 당신을 설득 할 수는 없지만, 당신은 당신의 의견을 말할 권리가 있습니다 - 당신은 결국 팀의 일부입니다. 새로운 것이 든 아니든 상관 없습니다.

관련 문제