Üzerinde çalıştığım bir yan proje için bir prototipleme / kavram aşaması kanıtı sonuna yaklaşıyorum ve daha büyük ölçekli uygulama tasarım kararlarına karar vermeye çalışıyorum. Bu uygulama çevik gelişim sürecine yönelik olarak uyarlanmış bir proje yönetim sistemidir. Vermem gereken kararlardan biri, geleneksel bir çok sayfalı başvuru ile mi yoksa tek sayfalı bir başvuru ile mi gideceğimiz.
Şu anda prototipim geleneksel bir çok sayfalı kurulum, ancak Javascript (jQuery) koduma bir yapı temizleyip uygulamak için backbone.js dosyasına bakıyorum. Backbone.js çok sayfalı uygulamalarda kullanılabileceği gibi görünüyor, tek sayfalı uygulamalarla daha da parlıyor. Tek sayfa uygulama tasarım yaklaşımı kullanmanın avantaj ve dezavantajlarının bir listesini bulmaya çalışıyorum. Şimdiye kadar var:
Avantajları
Tüm verilerin bir çeşit API üzerinden erişilebilir olması gerekir - bu, uygulamam için zaten bir API olmasını istediğim için kullanım durumum için büyük bir avantaj. Şu anda veri alma / güncelleme çağrımın yaklaşık% 60-70'i bir REST API üzerinden yapılıyor. Tek sayfalık bir uygulama yapmak, uygulamanın kendisi kullanacağından REST API'mi daha iyi test etmeme izin verecek. Ayrıca, uygulama büyüdükçe, uygulamanın kullandığı şey olduğundan API'nın kendisi de büyüyeceği anlamına gelir; API'yi uygulamaya ek olarak tutmanıza gerek yok.
Daha duyarlı uygulama - ilk sayfadan sonra yüklenen tüm veriler minimumda tutulduğundan ve kompakt bir biçimde (JSON gibi) iletildiğinden, veri istekleri genellikle daha hızlı olmalı ve sunucu biraz daha az işlem yapacaktır.
Dezavantajları
- Kodun tekrarı - örneğin, model kodu. Javascript'te hem sunucu tarafında (bu durumda PHP) hem de istemci tarafında modeller oluşturmak zorunda kalacağım.
- Javascript'te iş mantığı - Bunun neden kötü olacağı konusunda somut örnekler veremem fakat Javascript'te kimsenin okuyabileceği iş mantığına sahip olmak bana doğru gelmiyor.
- Javascript bellek sızıntısı - sayfa hiçbir zaman yeniden yüklenmediğinden, Javascript bellek sızıntısı olabilir ve bunların nerede hata ayıklamaya başlayacağını bile bilemem.
İki ucu keskin kılıç olan başka şeyler de var. Örneğin, tek sayfa uygulamalarında, her bir istek için işlenen veriler, uygulama belirli bir istek için ihtiyaç duyduğu minimum veriyi isteyeceğinden çok daha az olabilir, ancak bunun için çok daha küçük bir istek olabileceği anlamına gelir. sunucu. Bunun iyi ya da kötü bir şey olup olmadığından emin değilim.
Projem için hangi yöne gitmem gerektiğine karar verirken göz önünde bulundurmam gereken tek sayfalık web uygulamalarının avantaj ve dezavantajları nelerdir?