2015-06-25 6 views
11

Java'da sunucu tarafında uygulama geliştirmeye aşina olduğumu biliyorum, ancak şimdi Scala'yı kullanmaya başlamak istiyorum. ? Burada bir cevap çerçevesini belirlemeye yardımcı olabilecek birkaç soru vardır:Java/C++ arkaplanım varsa "Scala'da Düşünmek"

  1. nasıl yaparım mimar ve farklı tasarım web uygulamaları nelerdir en büyük fark
  2. kullanıyorum/yapıyor durdurmak gerekenler; ne yapmalıdır?
  3. yerine kullanmaya/yapmaya başladım. İstemci tarafıyla ilgili herhangi bir kısıtlama var mı?

Java ve Scala arasında ayrıntılı bir karşılaştırma arıyorum.

+2

http://meta.stackoverflow.com/questions/297592/why-are-there-so-many-upvotes-for-this-question – aProgrammer

+1

Diğer dillerden farklarla dil öğrenmeyi denedim ve Benim için hiç çalışmadım. Şimdi öğrendiğim dilde yeni başlayan bir kitap ile bir başlangıç. Bu, her şeyi yeni dil için düşünmeniz gereken şekilde açıklar. –

+0

@PatriciaShanahan Yorumunuz için teşekkür ederiz .. Ama yine de bu soruya detaylı bir cevap vermenin mümkün ve mümkün olduğunu düşünüyorum ve bu kesinlikle gelecekte gelen ziyaretçilere yardımcı olacaktır .. – aProgrammer

cevap

5

Scala ve Java arasındaki temel fark Scala'nın işlevsel programlama kullanımıdır.

  1. Web uygulamaları için farklı çerçeveler kullanırsınız. Oyun şu anda en popüler lezzet. Diğer çerçevelerde MVC çalışmasına benzer, ancak işlevsel saflığa doğru daha fazla eğilir (çoğu Play uygulaması saf olmaktan uzaktır)
  2. Bellekte mutasyona uğramış alanlar açısından düşünmeyi bırakmalı ve değişmez değerlerin veri akışlarını düşünmelisiniz. val ile yapabileceğiniz zaman var kullanmayın. Döngüler çoğunlukla map ve fold gibi daha yüksek sipariş yapılarıyla değiştirilecektir. Boş değerlerden kaçının ve bunun yerine Option s kullanın.
  3. Bir web istemci tarafı varsayarsak, no. Scala'yı JS'ye derlemek istemediğiniz sürece. Sonra aynı şeyler geçerlidir. Eğer, kitabı Functional Programming in Scala öneririz grok kez akıllıca Öğrenme

, o zaman, Twitter Scala school ile başlamak istiyorum. Yeni sözdizimi ile Java stili programların yazılmasının aksine, bu iki kaynağın sizi FP doğrultusunda yönlendireceğini düşünüyorum. Ardından, eldeki probleme uygun OOP/FP ölçeğinde doğru yeri bulun.

+0

Ayrıca Scala için kurs kursları ve daha sonra Reaktif Programlama (Scala'da) bulunmaktadır. – experquisite

+0

İlginçtir ki, Scala, kalbinde, tamamen nesne tabanlı bir dil, Java'dan çok daha fazla nesne yönelimli ve çok daha saftır. İşlevsel programlamaya odaklanmak aslında dilde değil, kütüphanelerde ve (en önemlisi) toplulukta. –

+0

Dil, yalnızca fonksiyonel programda bulunan fikirleri doğrudan desteklemek için birçok özelliğe sahiptir. Monadlar, daha iyi nazik türler, vb. Scala'daki FP desteği kasıtlı değil, topluluğun bir yan etkisi değildir. OO ve işlevsel programlama ortogonaldir ve scala birlikte çalışmayı destekler. AMA bir çok mutabakata dayalı OO uygulamaları ve desenleri ortadan kalkıyor – triggerNZ