답변
아니요. 추상화에 필요한 것만 추상화해야합니다. 추가 할 새로운 유형의 고객이있는 경우 언제든지 나중에 다시 돌아와 코드를 리팩토링 할 수 있습니다.
작업을 완료하는 데 필요한만큼 간단하게 디자인을 유지하십시오.
추상화가 잘 보이므로 추가하지 마십시오. 필요하지 않을 수도 있습니다. 필요한 추상화를 추가하십시오.
유닛 테스팅 및 인터페이스가 구현되지 않은 코드화는 어떨까요? – user660734
+1. [YAGNI (너는 필요 없어) (http://en.wikipedia.org/wiki/YAGNI)와 [KISS (Keep It Simple Stupid)] (http://en.wikipedia.org/)도 참조하십시오. wiki/KISS_principle) 원칙 –
"필요가 생길 때 추상적 인 일들"의 결과로 최악의 코드는 간단하고 최선의 의도로 시작됩니다 ... 갑자기 새로운 상황이 발생하고 조건을 추가하면 리팩터링을 거친 다음 1 년 후 실효성이없는 코드와 마감 시간을 갖게 될 때까지 거기에서 내려갑니다. –
- 1. 양식 처리 코드를 추상화해야합니까? (Zend_Form)
- 2. UI에서 IOC 컨테이너의 구성을 추상화해야합니까?
- 3. 블로그에서이 비디오가 자동 재생되지 않게하려면 어떻게합니까? 나는 모든 것을 시도했다
- 4. 모든 것을 index.php로 리다이렉트
- 5. 모든 것을 제거하십시오
- 6. PDF에서 모든 것을 추출하십시오.
- 7. PHP로 모든 것을 검색하도록하십시오.
- 8. RewriteRule은 하나의 폴더를 제외한 모든 것을 리다이렉트합니다.
- 9. Cocos2d는 C++ 파일을 허용하지 않습니까? (나는 CAStreamBasicDescription과 정말로 붙어있다)
- 10. 앱 서버가 정말로 필요합니까?
- 11. 백그라운드 스레드에서 모든 것을 실행해야합니까?
- 12. Intersystems Caché에서 $ etrap을 사용하여 모든 오류를 정말로 트랩하는 방법은 무엇입니까?
- 13. ruby 마지막으로 모든 것을 얻는다
- 14. 모든 것을 개발하는 플랫폼 google?
- 15. 지오 코딩이 모든 것을 느리게합니까?
- 16. 이 모든 것을 파악하려고 노력했습니다.
- 17. CDATA가 정말로 필요합니까?
- 18. 푸시하기 전에 모든 테스트를 통과하면 Continuous Integration이 정말로 필요합니까?
- 19. UINavigationController popViewController가 모든 것을 팝합니다!
- 20. SQL 배열의 모든 것을 선택하십시오.
- 21. 데이터베이스 테이블에서 모든 것을 청소하십시오.
- 22. MySQL은 전에 모든 것을 선택합니다.
- 23. SqlDataReader는 모든 것을 String으로 저장합니까?
- 24. 모든 것을 요구하는 값은 [MySQL의]
- 25. Redis의 모든 것을 어떻게 삭제합니까?
- 26. PHP - # 뒤에 모든 것을 얻으시겠습니까?
- 27. jQuery ::: 정말로 제거 하시겠습니까?
- 28. Doctrine은 정말로 느린가요?
- 29. EJB 3.0 DAO에서 em.flush를 사용하여 지속성 계층을 추상화해야합니까?
- 30. SHA 암호화 - 소금은 정말로 필요합니까?
언어와 관련이없는 질문은 들리지 않습니다. 확실히 당신이 무언가를 구현하는 방법은 사용 가능한 언어의 특징에 달려 있습니다. 뭐라구? – Gareth
# 그것에 대해 미안합니다 – user660734
프로젝트가 얼마나 큰지, 그리고 변경해야하는지 여부 (모든 이해 관계자가 작성하고 서명 한 사양 문서입니까?)에 따라 다릅니다. 며칠 만에 프로젝트를 작성할 수 있다면 그냥 해보십시오. 이것이 5 개월짜리 프로젝트라면 아키텍처에주의를 기울여야합니다. – Justin