İstemci ve sunucu için aynı dili kullanmak ne kadar önemlidir?


11

Yerel uygulamalara ek olarak bir web hizmeti / uygulaması olacak ve Meteor gibi çeşitli kütüphanelere, çerçevelere ve yığınlara bakıyorum , bu bir çeşit "açık yığın paket çerçevesi" , Node.js ile sıkı sıkıya bağlıdır .

Hem istemci hem de sunucu tarafında aynı dili kullanmanın yararları hakkında çok fazla konuşma var ve ben bunu anlamıyorum. Bir web uygulamasının tüm durumunu hem istemci hem de sunucu üzerinde yansıtmak istiyor, ancak diğer kazançları bulmakta zorlanıyorum ... İş akışı verimliliği?

İstemci / sunucu dil paritesinin neden kutsal bir kâse olarak kabul edildiğini anlamaya çalışıyorum. İstemci / sunucu dili eşitliği yazılım geliştirmede neden önemlidir?


12
Bunun, özellikle JavaScript söz konusu dil olduğu zaman, mutlaka harika bir şey olmadığını iddia ediyorum.
Latty

4
Ben henüz JS ile epiphany an ulaşmak için itiraf etmeliyim ve bu nedenle neden onunla sunucu kodu yazmak istediğiniz kavramadım, ama bu başka bir konu ..
Makita

1
Stack Exchange Programmers ile ilgili ilk yazınızı yaptığınız için teşekkür ederiz. Yukarı oyları en üst düzeye çıkarma ve aşağı oyları en aza indirme hakkında daha fazla bilgi için SSS bölümünü okuyun. Sorunuz belirli bir yanıtı olan bir sohbetten çok bir sohbet konusu olduğundan aşağı oylanmış olabilirsiniz. Buradaki biçime alışmak biraz zaman alabilir. Detaylardan yoksun olan kısa cevaplar aşağı oylanır. Bir konuyu tartışan cevaplar da öyle. Bir soru veya cevabın spesifik ancak yeterince evrensel olduğu ve doğru miktarda ayrıntıya sahip bir konuyu vurduğu bir orta yol vardır.
GeliştiriciDon

1
Buna karşı bile tartışırım. Hem sunucu hem de istemci için aynı dili kullanarak, iletişimde dolaşma ve dile özgü özellikler riski taşırsınız.
Pieter B

3
@Makita Bunun geçerli bir soru olduğunu düşünüyorum, ancak insanlar örnek istediklerinde downvotes ile mutlu olma eğilimindedir. Orijinal sorunun belirli bölümlerini kaldırdım ve sorunuzu istemci / sunucu dil paritesinin neden önemli olduğuna odakladım.
maple_shaft

Yanıtlar:


5

PRO tarafında:

  • Şemalar ve kod her iki taraf tarafından da yeniden kullanılabiliyorsa, benzer mantık ve verilerin bir kez uygulanmasında çok fazla verimlilik vardır.

CON tarafında:

  • İstemci öncelikle bir işaretleme veya komut dosyası dili için çok uygun bir görünüm olabilirken, sunucu öncelikle farklı bir dile daha uygun olan iş mantığı olabilir.

Web geliştirmede diller çoğaldı, sistemin belirli bölümleri için güçlü araçlar ve geliştiriciler veya geliştirici ekipleri tarafından öğrenilecek birçok uzmanlık ihtiyacı ortaya çıktı. Sistem tasarımı yaklaşımını takip eden işlem işleme veya gömülü sistemler gibi diğer alanlarda ortak bir dilden tasarruflar olabilir.

Yeni Javascript çerçeveleri bize çok hızlı geliyor ve arka uç için API'ları ve ön uç için araçları paketlemek için bazı çalışmalar yapılıyor. İstemci ve sunucu tarafı kodu arasındaki endişelerin ayrılmasını ve ayrılmasını sağlamak akıllıca olabilir, böylece belirli bir araçla çok uzun süre takılmadan aralarında gezinebilirsiniz.


14

Muhtemelen algılanan fayda:

yani, kaynak yönetimini proje yöneticileri için kolaylaştırır ve çok az teknik faydası vardır veya hiç yoktur (bir hile midilliyi işe alırsanız muhtemelen olumsuz teknik yarar sağlar)


1
Kendi başınıza geliştiriyorsanız bu bir avantajdır, çünkü sunucu ile istemci arasında "zihinsel" bir geçiş yoktur. Bir şey yapmak ve JavaScript'te büyük bir deneyim yaşamak istiyorsanız, muhtemelen bu şekilde daha iyi ve daha hızlı sonuçlar elde edersiniz, ancak muhtemelen hepsi ...
K ..

Ayrıca teknik bir dezavantaj olmadığını, muhtemelen her bir alt sistem için farklı bir dil kullanmanın bir avantajı olduğunu söyleyebilir misiniz?
Michael Borgwardt

1
@MichaelBorgwardt, her dilin alt sistem için iyi olduğunu varsayarsak, evet diyebilirim, teknik bir dezavantaj (belki de çok fazla bir avantaj değil), ancak takım dinamikleri ve işe alma üzerinde büyük bir etki olabilir. Tabii ki alt sistemlerin çoğu herhangi bir dilde kolayca uygulanabilir olacak, bu yüzden bu uç noktayı görmeyi beklemem.
jk.

Bunun kötü bir fikir olduğu konusundaki açıklama haksızdır. JavaScript ile derlenebilecek çok sayıda dil ve Lisp de dahil olmak üzere sunucu tarafı bir dil var, aslında SICP kursunda Joel'in blog yazısı tarafından övülen dil.
back2dos

@ back2dos umarım açıklar
jk.

2

Bunun yararı, insanların uzmanlığını ve kodunu her iki tarafta da yeniden kullanabilmenizdir (bir dereceye kadar).

İnsanlar

Geliştiricilerin tek bir dile hakim olması ve tek bir havuz oluşturması gerekir. İki uzmanlık havuzu yerine. Bu, aralarında bilgi aktarımını kolaylaştırır ve ayrıca çalışmalarını istemci ve sunucu tarafı arasında daha kolay değiştirmelerini sağlar. Son olarak, aynı teknik altyapıyı paylaştıkları için teknik konuları tartışırken "diğer tarafın" ekip üyeleriyle iletişimi kolaylaştırır.

kod

Bazen istemci tarafında bazı durumlar, algoritmalar veya her ikisinin birden olması yararlı olabilir. Bazen aynı şey her iki tarafta da yapılır. Çok oyunculu bir oyun örneğini ele alalım: Oyun durumunu hem istemcide hem de sunucuda temsil etmelisiniz. Ayrıca, kuralları istemci tarafında (yanıt verme için) ve sunucu tarafında da (bir oyuncunun eylemlerini doğrulamak için) uygulamanız gerekir. Bu şeyler için kodu yeniden kullanabilmek büyük bir avantaj olabilir. ... diğer bazı uygulamalarda buna hiç ihtiyacınız olmazdı ... hepsi duruma göre değişir.

... tabii ki dezavantajları da var, ama bu başka bir yazı için;)

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.