2009-03-26 3 views
4

시스템을 약간 잘못 사용하는 경우 용서해주세요.하지만 동료 인 StackOverflow 사용자가 동료와 논쟁을 해결하고 싶습니다.한 번만 사용 된 기능은 UserControl에 있어야합니까?

일반적으로 한 번만 사용하려고하는 경우에도 내에서 캡슐화 할 기능의 각 항목을 선호합니다..

필자는이 상황에서 UserControl을 만들지 않고 WebForm을 사용하여 한 번만 사용한다면 UserControl을 만드는 것이 무엇인지에 대해 설명합니다. 단지 불필요한 오버 헤드가 추가되기 때문입니다.

필자는 추가 오버 헤드가 무시할 만하고 더 체계적인 코드를 만들 수 있다고 주장하며 앞으로 어떤 시점에서이 기능을 다시 사용할 수 있습니다.

누가 옳은가요?

편집 나는 꽤 많은 응답을받을 수 있습니다처럼 보이는

- 내 동료와 나는 우리가 하루에 응답 수상 인수가를 얻을 수 중에 정답을 계산거야 동의 대부분의 표. D

나는 우리가 모두 바로 있어 제안 게시물을 무시했으며, 각면의 지원 등의 답변을 계산 : 나는 승자 것 같은

또한 편집

이 보이는 +1, 그리고 그 대답에 대한 각 상향 투표도 +1로 표시됩니다. 나는 11-6에서 이긴다.

답변

7

코드가 더 체계적으로 구성되는 경우에는 항상 별도의 사용자 정의 컨트롤을 만들려고합니다.

이렇게하면 통신을보다 쉽게 ​​수행 할 수 있습니다. SRP를 생각하십시오.

+0

이렇게하면 코드를 읽기 쉽게 만들 수 있습니다. – decasteljau

+0

아멘 형제. 아멘 ... – Salamander2007

4

일 때 WebForm 및 리팩터링을 사용하지 않는 이유는 무엇입니까? 해당 기능을 다시 사용 하시겠습니까? 기억하십시오 : YAGNI.

물론 코드가 잘 구성되어 있지만 프로젝트에 포함 된 클래스/파일의 양과 균형을 유지해야합니다. 배 밖으로 빠져 나 가면 물건을 찾기가 어려울 수 있습니다.

+0

오른쪽, http://stackoverflow.com/questions/437/what-is-your-solution-to-the-fizzbuzz-problem/1902#1902 엔터프라이즈 Fizzbuzz 의도적 인 over-engineering! – Davy8

3

나는 그것을 UserControl에 캡슐화하지 않았기 때문에 미안하지만 동료의 견해를 공유합니다. UserControls는 재사용 가능한 콘텐츠 (특히 컨트롤)에 사용됩니다. 지나치게 숙련시키지 말고, "미래의 어느 시점에서 기능을 다시 사용할 수 있기"때문에 스스로 더 많은 일을하지 마십시오. 그러지 못할 수도 있습니다. 실제로 필요할 때 컨트롤을 만들 수 있습니다.

+0

"테이블 형식의 데이터를 사용하기 때문에"테이블을 사용하지 않는 순수 주의자 중 한 명입니까? – User

+0

예, 있습니다. :) 레이아웃 용 DIV를 사용합니다. –

+0

+1 순정 주의자를 위해 !!!!! – Treb

2

나는 또한 모든 것을 사용자 정의 컨트롤에 두는 것을 선호합니다. 하나는 조직화가 잘되어있어 사이트의 다른 곳에 UI를 배치하고 싶지 않을 수도 있습니다.

간단한 대답 : 당신 말이 맞아요, 동료가 잘못되었습니다.

1

페이지에 이와 같은 코드 조각이 수십 개있는 경우를 생각해보십시오.이 모든 코드가 한 형식으로 존재하거나 각각의 형식을 자체 제어해야하는 것이 맞습니까?

당신은 100 % 맞을 것입니다.하지만 이것에 대한 동료의 관점에서 구멍을 뚫을 수있는 방법 일 수 있습니다.

0

나는 추가적인 오버 헤드는 무시할 수 있다고 주장

가 합의 - 눈살을 찌푸리게한다 된 UserControls을 사용하지 않음으로써 너무 마이크로 최적화 성능을 시도.

과 더 나은 조직 코드를 만들고,

이 할 수있는, 그것은 특정 상황에서 않는 경우 - 그럼, 그래, 좋은 생각입니다.

및 알고 계시 겠지만 향후 어느 시점에서이 기능을 다시 사용할 수 있습니다.

예. 그렇지 않을 수도 있습니다. 이것은 씻음이며, Y (P) AGNI (당신이 (아마) 그것을 필요로하지 않을 것임)에 의해 가장 반박됩니다.

그래서 요약하면 더 체계적인 코드를 만들지 여부에 달려 있습니다.

1

코드를 한 번만 사용하더라도 코드를 usercontrol에 넣으면 조각 캐싱 (fragment caching) 옵션이 제공됩니다. 앱이 성능에 중요한 영향을주는 경우 사용자 컨트롤을 선호합니다. 개발자가 앱 성능 테스트를 시작하면 코드를 사용자 컨트롤로 굴절시켜 프랙 처 캐싱의 이점을 얻을 수 있습니다.