Bir göreve yaklaşmanın iki yolu varsa, bu görevler arasında nasıl seçim yapılmalı?


11

Belirli bir kullanım durumum var ve bunu internette yapmanın 3 yolunu buldum, bu da belirsiz kullanım durumları için tanımlandı. Hangi üçünün uygulanacağını merak ederek bakıyorum.

Orada ne yapacağımı bilmeden oturuyorum - sonra hiçbir şey yapmıyorum ... İyi bir seçim yolu var mı? Hepsini denemeli miyim?

Bir bağlam için daha spesifik olmak gerekirse, ekranın masa oyunu ızgarasını döndürebildiğim , ızgaraya zum yapabileceğim ve bu ızgaradaki parçaları taşıyabileceğim bir kısmına ihtiyacım olan çok hafif bir masa oyunu yapmaya çalışıyorum . Bunu nasıl yapacağımla ilgili hiçbir fikrim yoktu, ancak Core Animation, Core Graphics, Sprite Kit gibi çevrimiçi şeyler buldum ve onlara karşı ve onlara karşı argümanlar gördüm - örneğin Sprite kiti yüksek seviyede, ancak kare hızını 60'da tutuyor. ekranda hiçbir şey hareket etmiyorsa pil kaybıdır. Core Animation, Apple'ın "en yüksek soyutlamayı al" kılavuzluğuna karşı çıkan daha düşük seviyeli bir API'ydı. Kullanacağım 3 şeyi öğrenmek istemiyorum 1. Seçebileceğim ve çözebileceğim bir yol var mı?

Yazılım alanında geçerli olduğunu düşündüğüm için bunu bilerek belirsiz bir soru olarak bırakıyorum.

Yanıtlar:


16

Her bir yaklaşım için bir maliyet / fayda analizi yaparsınız ve toplam fayda / maliyet oranının en yüksek olduğu yaklaşımı seçersiniz.

Esasen aynı işlevi yerine getiren rakip kütüphaneler söz konusu olduğunda, bu analizi gerçekleştirmenin en iyi, en kolay ve en hızlı yolu, her kütüphaneyi kullanarak küçük prototipler oluşturmaktır. Hangisini tercih ederseniz, bolca açık olmalıdır.

Kütüphaneler için olası maliyet / fayda hususları:

  • İdame
  • Kullanım kolaylığı
  • Yeterli dokümantasyon
  • Öğrenme eğrisi
  • Genel performans
  • Satın Al ve İnşa Et

... vb. Bu hususların birçoğunun biraz öznel olabileceğini unutmayın.

İster hobi ister kariyer olsun önemli değil. Keşiflerinizi gerçek bir kariyere devam ettirmeye karar verirseniz aynı süreci kullanacaksınız (ve kullanmalısınız).

Alternatif karar verme stratejisi: İstediğiniz stratejiyi seçin.


4
Kütüphaneler ve üçüncü taraf uygulamaları durumunda, şunu ekleyeceğim: topluluk desteği , esnek sürümler (betalar değil, adayları veya enstantaneleri değil) , bakiye belgeleri
Laiv

6
Zorunlu xkcd: xkcd.com/1445
Sebastian Redl

15

Robert Harvey'in mükemmel cevabına bir ek olarak, burada 2 sentim:

Başlamak için en az çaba gibi görünen bir yaklaşımı seçin, ancak ilk seçtiğiniz çözümü ortaya çıkardığında farklı bir yaklaşıma geçmek için kapıyı açık tuttuğunuzdan emin olun. Kullanım senaryosunuzun belirli alanlarında bazı sorunlardan şüpheleniyorsanız, ilk önce bu alanları uyguladığınızdan emin olun, böylece ilk kararınızı geri almak için çok geç olmadan erken geribildirim alırsınız.

Bunun ne kadar iyi çalıştığı büyük ölçüde duruma bağlıdır. Örneğin, harici bir aygıta veya belirli bir dosya biçimine erişmek için basit bir kitaplığa ihtiyacınız varsa, tüm kitaplık erişimini uygulamanızın bir katmanına eklediğinizden emin olun. Bununla birlikte, hangi çerçeveyi seçeceğinizden veya hangi programlama dilini seçeceğinizden emin değilseniz, muhtemelen yapabileceğiniz kapsamlı bir maliyet / fayda analizi yapabilirsiniz.

Bazen, sadece en iyi 2. karar olsa bile, bir karar vermek daha doğru olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.