web-dev-qa-db-ja.com

タスクにアプローチする方法が2つある場合、それらの間でどのように選択すべきですか?

私には特定の使用例があり、インターネット上でそれを行う3つの方法が見つかりました。これらは、あいまいな使用例に対して定義されています。私はどれを適用するのか疑問に思うこれらの3つを見つめています。

私は何をすべきかわからないままそこに座る傾向があります-それから何もしません...良い選択方法はありますか?それらすべてを試してみる必要がありますか?

特定のコンテキストについてより具体的に言うと、画面の一部が必要な非常に軽量なボードゲームを作ろうとしていますrotateボードゲームグリッド、zoomグリッド内、およびこのグリッド上でピースを移動します。私にはこれを行う方法の手がかりはありませんでしたが、Core Animation、Core Graphics、Sprite Kitなどのものがオンラインで見つかり、それらに対する賛否両論がありました-たとえば、Spriteキットは高レベルですが、フレームレートを60に保ちます画面で実際に何も動いていない場合、バッテリーの無駄になります。 Core Animationは低レベルのAPIであり、「最高レベルの抽象化を行う」というAppleのガイダンスに反対しています。使用する3つのことを学びたくありません1.選択して行き詰まる方法はありますか?

ソフトウェアの領域全体に当てはまると思うので、わざと曖昧な質問として残しておきます。

11
Skidushe

各アプローチについてコスト/利益分析を実行し、全体的な利益/コスト比が最も高いアプローチを選択します。

本質的に同じ機能を実行する競合するライブラリの場合、その分析を実行する最良の最も簡単で迅速な方法は、各ライブラリを使用して小さなプロトタイプを立ち上げることです。どちらを選べばよいかは、十分に明確になるはずです。

ライブラリのコスト/メリットに関する考慮事項:

  • 保守性
  • 使いやすさ
  • 適切な文書
  • 学習曲線
  • 全体的なパフォーマンス
  • 購入vsビルド

...など。これらの考慮事項の多くは多少主観的である可能性があることに注意してください。

それが趣味であろうとキャリアであろうと関係ありません。実際のキャリアへの探求を続けることを決定した場合、同じプロセスを使用します(そして使用する必要があります)。

代替の意思決定戦略:好きなものを選択してください。

16
Robert Harvey

ロバートハーヴェイの優れた答えの補足として、ここに私の2セント:

最初に最も手間がかからないアプローチを1つ選択してください。ただし、最初に選択したソリューションの問題が多すぎることが判明した場合は、別のアプローチに切り替えるためのドアを開いたままにしてください。また、使用シナリオの特定の領域で特定の問題が疑われる場合は、最初にそれらの領域を実装して、最初の決定を元に戻すには遅すぎる前に、早い段階でフィードバックを得られるようにしてください。

これがうまく機能するかどうかは、ケースに大きく依存します。たとえば、外部デバイスまたは特定のファイル形式にアクセスするための単純なライブラリが必要な場合は、すべてのライブラリアクセスをアプリケーションのレイヤーにカプセル化してください。ただし、どのフレームワークを選ぶべきか、どのプログラミング言語を選ぶべきかわからない場合は、徹底したコスト/利益分析がおそらくあなたにできるすべてです。

あなたが実際にそれを行う限り、それが2番目に良いものだけであっても、時々、それは単に決定をする方が良いです。

15
Doc Brown