나는 웹 응용 프로그램에서 가장 잘 작동하는 경향이 있으며 일반적으로 노력하고 있지만 내 대답 은 프로그래밍 영역에 적용 되지 않을 수 있습니다 .
또한 "라이브러리"와 동의어 인 "프레임 워크"를 사용할 것입니다.
프레임 워크를 구현하기 전에 몇 가지 사항을 고려해야합니다. 여기 몇 가지 일반적인 예가 있습니다.
#1. 프레임 워크가 시간과 노력을 절약 해 줍니까?
이 질문에 대한 대답은 거의 항상 그렇습니다 . 프레임 워크는 특정 문제 를 해결하고 잘 해결하는 경향이 있습니다 . 예를 들어 EntityFramework와 같은 프레임 워크를 사용하면 SQL 코드 작성 을 완전히 줄일 수 있습니다 . 프로그래밍 팀이 SQL에 유창하지 않은 경우 환상적 일 수 있습니다.
프레임 워크는 하나에 내장되어 a)는 다른 복잡한 구성 요소 나에게 프로그래머 친화적 인 인터페이스를 추가 ) 나 이미 잘) 알려진 (또는 설치 구성 요소에 추상화를 추가합니다.
후자 (또는 경우에 따라 전자)는 실제로 개발에 방해 가 될 수 있습니다 . 이것은 특히 당신이나 당신의 프로그래밍 팀이 새로운 프레임 워크를 구현하려고 할 때 적용됩니다 .
이로 인해 개발 프로세스 속도가 느려져 비용이 많이들 수 있습니다.
# 2 응용 프로그램의 규모
있다고한다 "아무것도 가치가하고 가치 무리가있다" , 그러나 보통 그런 경우가 아니다. 응용 프로그램의 포인트가 "potato" 를 인쇄하는 것이라면 초대형 프레임 워크를 구현할 이유가 없을 것 입니다.
응용 프로그램을 개발할 때 (웹, 데스크톱, 모바일 또는 기타 생각할 수있는 다른 유형의 응용 프로그램 일 경우) – 프레임 워크의 크기로 인해 (미래의) 구현이 "지워질"느낌이 들면, 이는 클 수 있습니다 프레임 워크가 애플리케이션을 부 풀릴 수 있다는 경고 표시. jQuery를 포함 시키면 문서가 준비 될 때 "로드 된"클래스를 본문 태그에 추가하기 만하면됩니다. 네이티브 자바 스크립트로하는 것이 조금 더 어려울 수도 있지만, 애플리케이션을 부 풀리지는 않습니다.
반면에 프레임 워크가 내부 (예 : 데이터베이스 프레임 워크)에서 많은 작업을 수행하는 경우 프레임 워크를 "부분적으로"사용하더라도 프레임 워크를 구현하는 것이 가능할 수 있습니다. 전체 라이브러리를 사용할 필요가 없기 때문에 자체 ADO.NET 또는 MongoDB 드라이버 를 작성 하지 않는 것이 좋은 일화입니다 .
때로는 프레임 워크가 오픈 소스로 제공됩니다 (및 '원하는대로'라이센스가 있음). 이것은 프로그래밍 팀이 프레임 워크의 일부만 선택할 수있는 새로운 가능성을 열어줍니다.
이것은 궁극적으로 질문 1과 3에 연결됩니다.
# 3 영향.
때때로 프레임 워크를 구현 하면 최종 사용자에게 직접적인 영향을 줄 수 있습니다 . 클라이언트 측 프레임 워크가 크면 최종 사용자의 경험에 부정적인 영향을 줄 수 있으므로 웹 응용 프로그램의 경우 특히 그렇습니다. 머신 속도가 느린 사용자는 렌더링 속도 저하, 자바 스크립트의 성능 문제 또는 하위 수준 머신으로 인한 유사한 문제가 발생할 수 있습니다. 연결 속도가 느린 사용자는 로딩 시간이 느릴 수 있습니다 (최소한 초기).
다른 유형의 응용 프로그램에서도 최종 사용자는 응용 프로그램 종속성에 의해 부정적인 영향을받을 수 있습니다. 프레임 워크는 항상 약간의 디스크 공간을 차지하며 , 모바일 앱 (또는 데스크톱 앱)을 개발하는 경우이를 고려해야합니다.
서버 측 프레임 워크 (보다 웹에 특화된)는 최종 사용자에게는 영향을 미치지 않지만 인프라 에는 영향을줍니다 . 어떤 프레임 워크 의존성이 스스로 당신이 당신의 웹 서버 중 단지 서비스 나 전체 서버를 다시 시작해야 할 수 있습니다.
일부 프레임 워크는 리소스 가 매우 많은 경우 도 있습니다 .
이것은 물론 1 번과 2 번 지점에 연결됩니다.
그것은 모두 "고려 사항의 원"일 뿐이며, 프레임 워크를 구현해야하는지 여부를 결정하는 실제 과학적 방법은 없습니다.
코빈 3 월은 그것을 매우 잘 요약했다.
내가 함께 일한 그룹은 모두 같은 일을한다. 비용과 이점을 추측하고, 가장 생산적인 경로를 선택하고 그들이 옳기를 바란다. 매우 과학적이지는 않습니다. 하나의 직관, 세 부분의 경험, 한 부분은 마케팅에 대한 감수성, 한 부분은 교활함, 5 개의 부분은 의견입니다.
엘리트가되지 않는 것도 중요 합니다. 프레임 워크는 사용되는 도구입니다. 나는 두 극단의 사람들을 안다. 한쪽에는 자신을 위해 인생을 매우 힘들게하는 사람이 있고 다른쪽에는 느리고 부풀린 응용 프로그램을 만드는 사람이 있습니다.
모든 프레임 워크에는 유스 케이스가 있으며 올바른 목적으로 구현하기 만하면됩니다.