과제에 접근하는 두 가지 방법이 있다면, 그 중에서 어떻게 선택해야합니까?


11

특정 유스 케이스가 있으며 인터넷을 통해 3 가지 방법을 찾았으며 모호한 유스 케이스에 대해 정의되었습니다. 나는이 세 가지 궁금해하는 것을 쳐다보고있다.

나는 무엇을 해야할지 모른 채 앉아있는 경향이 있습니다-그다음에 아무것도하지 않습니다 ... 좋은 선택 방법이 있습니까? 나는 그들 모두를 시도해야합니까?

일부 컨텍스트에 대해 구체적으로, 나는 내가 할 수있는 화면의 일부를 필요로하는 곳에 매우 가벼운 보드 게임을 만들기 위해 노력하고있어 회전 , 보드 게임 그리드를 확대 그리드로하고, 이 그리드에 조각을 이동 . 이 작업을 수행하는 방법에 대한 실마리는 없었지만 Core Animation, Core Graphics, Sprite Kit와 같은 온라인 항목을 발견했으며 이에 대한 논쟁을 보았습니다. 예를 들어 Sprite kit는 높은 수준이지만 프레임 속도는 60으로 유지합니다. 화면에서 아무것도 움직이지 않을 때 배터리 낭비입니다. 코어 애니메이션은 하위 레벨 API로, "최상의 추상화 수준을 취하십시오"라는 Apple의 지침에 반대합니다. 사용할 3 가지를 배우고 싶지 않습니다. 1. 선택하고 풀 수있는 방법이 있습니까?

소프트웨어 영역 전체에 적용된다고 생각하기 때문에 의도적으로 모호한 질문으로 남겨두고 있습니다.

답변:


16

각 접근 방식에 대해 비용 / 이익 분석을 수행하고 전체 이익 / 비용 비율이 가장 높은 접근 방식을 선택합니다.

본질적으로 동일한 기능을 수행하는 경쟁 라이브러리의 경우 분석을 수행하는 가장 쉽고 가장 빠른 방법은 각 라이브러리를 사용하여 작은 프로토 타입을 세우는 것입니다. 그렇다면 어느 것이 가장 좋아야합니까?

라이브러리에 대한 가능한 비용 / 혜택 고려 사항 :

  • 유지 보수성
  • 사용의 용이성
  • 적절한 문서
  • 학습 곡선
  • 전반적인 성능
  • 구매 대 빌드

... 등. 이러한 고려 사항 중 많은 부분이 다소 주관적 일 수 있습니다.

취미이든 경력이든 상관 없습니다. 탐험을 실제 경력으로 계속하기로 결정한 경우 동일한 프로세스를 사용해야합니다.

대체 의사 결정 전략 : 원하는 전략을 선택하십시오.


4
libs가 및 제 3 자 구현의 경우, 나는 추가합니다 : 지역 사회 지원 , estable 버전 (안 베타, 릴리즈 후보 또는 스냅 샷) , 문서를 균형에
LAIV

6
의무적 인 xkcd : xkcd.com/1445
Sebastian Redl

15

Robert Harvey의 탁월한 답변에 대한 부록으로 여기 2 센트가 있습니다.

가장 적은 노력으로 시작하는 하나의 접근 방식을 선택하되, 처음 선택한 솔루션에 문제가 너무 많을 때 다른 접근 방식으로 전환 할 수 있도록 문을 열어 두십시오. 사용 시나리오의 특정 영역에서 특정 문제가 의심되는 경우 해당 영역을 먼저 구현해야합니다. 따라서 초기 결정을 되돌릴 수 없을 정도로 늦기 전에 조기 피드백을받을 수 있습니다.

이것이 얼마나 잘 작동하는지는 사건에 따라 크게 다릅니다. 예를 들어 외부 장치 또는 특정 파일 형식에 액세스하기 위해 간단한 라이브러리가 필요한 경우 모든 라이브러리 액세스를 응용 프로그램 계층에 캡슐화해야합니다. 그러나 어떤 프레임 워크를 선택해야하는지 또는 어떤 프로그래밍 언어를 선택해야할지 잘 모를 경우 철저한 비용 / 이익 분석만으로도 충분합니다.

실제로 결정을 내리는 한, 두 번째로 좋은 결정 일지라도 결정을 내리는 것이 더 나은 경우도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.