Play Framework Sinir Stresleri – 1

Herkese merhaba,

Uzun aradan sonra play framework kullanarak birşeyler yapmam gerekti ki, yeni bir versiyonu çıkmış ve arkadaşlar  base versiyonu güncellemişler. Bunun sonucu olarak hepinizin eninde sonunda alacağı bir hata olan aşağıdaki güzellikle karşılaştım:

[error] (*:update) sbt.ResolveException: download failed: org.slf4j#slf4j-api;1.6.6!slf4j-api.jar
[info] Updating {file:/path/to/your/workspace/}asante...
[warn]  [NOT FOUND  ] org.slf4j#slf4j-api;1.6.6!slf4j-api.jar (0ms)
[warn] ==== local: tried
[warn]   /path/to/your/play/home/play-2.1.1/repository/local/org.slf4j/slf4j-api/1.6.6/jars/slf4j-api.jar
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::              FAILED DOWNLOADS            ::
[warn]  :: ^ see resolution messages for details  ^ ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.slf4j#slf4j-api;1.6.6!slf4j-api.jar
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
 İnternette aradığımda karşıma saçma sapan blog yazıları çıktı. Bu sebeple bu yazıyı yazma ihtiyacı duydum. Arkadaşlar bu hatanın sebebi, makinanıza kurulu olan Play versiyonu ile projenin Play versiyonunun farklı olmasıdır!!!! Bunu plugins.sbt den düzelttiğinizde sorun ortadan kalkacak.
Satir atlama
Örneğin sizde 2.1.1 vardı ve uygulama 2.1.3 kullanıyorsa bu hatayla karşılaşacaksınız demektir. Versiyonunuzu güncelleyin ve ilerlemeye devam edin.
Satir atlama : )
Web’de de karşınıza çıkan yok efendim 2.0.7 yap geçer, 2.1.5 te bu sorun yok gibi izansız ifadelere de önem vermeyin.
Satir atlama
İyi kodlamalar!

Scala 101 gibi bir yazı

Selam arkadaşlar,

İşyerinde yine bir teknolojik atılım gerçekleştirdik ve JVM üzerinde çalışan fonksiyonel ve nesne yönelimli dil olan Scala’yı projelerimizde kullanmaya başladık.

Açıkçası ne zamandır fonksiyonel dilleri kullanmak istiyordum ama fırsatım olmuyordu, javascriptte jquery kullanmaktan öteye gidememiştik. Sonuç olarak Scala kullanmaya başlayarak zihinsel haritamızda büyük bir atılım yapmış olduk.

Peki fonksiyonel programlama nedir? Çok kısa bir tanımla açıklama gerekirse, programlarınızı statementlar yerine fonksiyonlar olarak düşünmektir. Yani mümkün olduğu kadar en küçük birimlerin fonksiyonlardan oluşması olarak adlandırabiliriz. Bu tanımdan hareketle fonksiyonel dillerin bunu sağlayabilmesi için fonksiyonları temel veri yapılarından sayması gerekir. Bu sağlandığında fonksiyonları parametre olarak kullanabilir, değişkenlere atayabilir, gerektiğinde çağırabilirsiniz. Bir diğer gerekli özellik ise, fonksiyonların sadece aldığı parametrelere göre dönüş değerleri üretmesidir. Yani gönderdiğiniz parametrelerde değişiklik yapılmamalıdır.

Bunlardan yola çıkarak Scala’daki (diğer fonksiyonel dillerde de kullanılmakta olan) bir kaç temel özellikten bahsedeyim.

  1. Fonksiyon literalleri : Scala da sadece fonksiyon tanımlamak zorunda değilsiniz, şunu da yapabilirsiniz: val ekle = (x: Int, y: Int) => x + y . Bu aşamada fonksiyonu istediğiniz zaman çağırabilir, diğer fonksiyonların içinde kullanabilirsiniz, parametre olarak geçebilirsiniz.
  2. map fonksiyonu : Bir liste üzerindeki tüm elemanlar üzerinde çalışıp, yeni bir liste üreten fonksiyon.
  3. filter fonksiyonu : Bir liste üzerindeki tüm elemanlar üzerinde çalışıp, verilen teste uygun olanlardan yeni bir liste üreten fonksiyon.

Bu 3 temel özellik ile yazdığınız programlar hem çok kısalır hem de anlaşılması daha kolay olur. Ufak tefek fonksiyonları birbirleriyle kullanarak çok anlamlı ve işlevsel programlar yazabilirsiniz. (Tıpkı Unix command line araçları gibi)

Map ve fonksiyon literallerine bir örnek :

scala> val l = List(1,2,3,4,5)

scala> l.map( x => x*2 )

res60: List[Int] = List(2, 4, 6, 8, 10)

Bunların üzerine daha çok gideceğiz ilerideki yazılarda, takibe devam!