Tüm kullanıcı arayüzü mantığını İstemci Tarafına mı taşıyorsunuz?


9

Ekibimiz aslen Javascript konusunda minimum uzmanlığa sahip çoğunlukla sunucu tarafı geliştiricilerden oluşuyordu. ASP.NET'te MVC'deki denetleyiciler aracılığıyla kodun arkasında veya son zamanlarda çok sayıda UI mantığı yazıyorduk.

Kısa bir süre önce 2 üst düzey müşteri tarafı geliştiricisi ekibimize katıldı. HTMl / CSS / Javascript'te daha önce sunucu tarafı kodu ve sunucu tarafı web kontrolleri ile yapabileceğimiz hemen hemen her şeyi yapabilirler:

  • Denetimleri göster / gizle
  • Doğrulama yap
  • AJAX yenilemesini denetleme

Bu yüzden, iş mantığımızın etrafında, Amazon Yerine Getirme API'sı gibi yüksek düzeyli bir API oluşturmanın daha verimli olacağını düşünmeye başladım: http://docs.amazonwebservices.com/fws/latest/APIReference/ , böylece istemci yan geliştiriciler kullanıcı arayüzünü tamamen ele alırken, sunucu tarafı geliştiriciler yalnızca iş mantığına odaklanırdı.

Yani sipariş sistemi için aşağıdaki gibi üst düzey bir API olurdu:

OrderService.asmx

CreateOrderResponse CreateOrder(CreateOrderRequest)
AddOrderItem
AddPayment
-
SubmitPayment
-
GetOrderByID
FindOrdersByCriteria
...

API'ye JSON / REST erişimi olacaktır, bu nedenle istemci tarafı kullanıcı arayüzünden tüketmek kolay olacaktır. Bu API'yı hem dahili kullanıcı arayüzü geliştirme hem de 3. taraflar için kendi uygulamalarını oluşturmak amacıyla kullanabiliriz.

Javascript'teki ilerlemeler ve iyi istemci tarafı geliştiricilerinin kullanılabilirliği ile, kod arkasından / kontrolörlerden kurtulmak ve sadece istemci tarafı geliştiricilerinin tüketebileceği yüksek seviyeli API'ler (ala Amazon) geliştirmeye konsantre olmak için iyi bir zaman mı?

Yanıtlar:


6

Sunucu tarafı tarafı boşaltmak ve uygulamanın yanıt hızını artırmak için istemci tarafında doğrulama iyidir ancak her zaman sunucu tarafı doğrulaması yapar. Biri JavaScript'i kapatabilir ve doğrudan REST API'sini kullanırken hiçbir JavaScript'e gerek yoktur.


Evet, doğrulama aynı zamanda Alan Adı / API'nın bir parçası olacaktır. Müşteri tarafı, API'dan doğrulanması gerekenleri çeker veya her yöntem için neyin gerekli olduğunu vb. Belgelendiririz. İstemci tarafından gönderilen gönderimlerde hala doğrulama hataları varsa - istisnalar atacağız.
Mag20

4

Dikkat edilmesi gereken bir şey, karmaşık UI'lerin hiyerarşiler, ana / ayrıntı ilişkileri ve iş katmanında gerçekten var olmayan diğer UI kavramları gibi şeyleri desteklemek için ek bir "UI yardımcı" katmanı gerektirebileceğidir. Performansı düşüren iş katmanına birden fazla gidiş dönüş yapmaksızın bu özelliklerden bazılarını uygulamak çoğu zaman mümkün değildir. En azından, UI veritabanına doğrudan erişim vermek için "UI yardımcı" katmanı olmasını tercih ederim.

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.