Ruby Kod Parçacıkları - 12 (Lambda) 30 Ağustos 2015 Burak-Selim-Senyurt Ruby Daha önceki kod parçacıklarımızda Block ve Proc kavramlarına değinmiştik. Benzer kavramlardan üçüncüsü de Lambda' dır. Hatırlayacağınız gibi kod parçalarını Block şeklinde tanımlayıp metodlara parametre olarak geçirebiliyorduk. Bununla birlikte tekrardan kullanılabilirliğin öne çıktığı ve kod parçasının bir değişken olarak kullanılmasının istendiği durumlarda Proc örneklerinden yararlanıyoruz. [Daha fazla]
Ruby Kod Parçacıkları - 11 (Procs) 25 Ağustos 2015 Burak-Selim-Senyurt Ruby Bir önceki kod parçacığımızda Ruby dilinin önemli özelliklerinden birisi olan Block kavramına değinmiştik. Bu kod parçacığında ise Proc kullanımını anlamaya çalışacağız. Kod parçalarını metodlara taşımanın yollarından sadece birisi Block' lardır. Ancak block' lar bir nesne olarak ifade edilemezler. Oysa ki Ruby dilinde her şeyin bir nesne olduğu öne sürülür. İşte bu noktada devreye Proc ve Lambda enstrümanları girer. [Daha fazla]
Ruby Kod Parçacıkları - 10 (Yield ve Block Kullanımı) 20 Ağustos 2015 Burak-Selim-Senyurt Ruby Ruby' nin güçlü olmasını sağlayan pek çok özellik vardır. block' lar bu güçlü özelliklerden birisidir. (Block' lar dışında Proc ve Lambda kavramları da mevcuttur ki bu konuları ve aralarındaki temel farklılıkları sonraki kod parçacıklarında ele alacağız) [Daha fazla]
Ruby Kod Parçacıkları - 9 (Operator Overloading) 17 Ağustos 2015 Burak-Selim-Senyurt Ruby Neredeyse her programlama dilinin öğrenilirken çalışana sıkıcı gelen bölümleri muhakkak vardır. Sanıyorum o dildeki operatörler bunların başında gelir. Ancak nesne yönelimli bir dil öğreniyorsak, kullanıcı tanımlı tipler için operatörlerin yeniden programlanması gerektiğini de er geç fark ederiz. Bu nedenle operatorlerin kendi tiplerimiz(User Defined Class) olması halinde yeniden nasıl yükleneceğini bilmemiz gerekir. [Daha fazla]
Ruby Kod Parçacıkları - 8 (Kalıtım/Inheritance) 16 Ağustos 2015 Burak-Selim-Senyurt Ruby Ruby, nesne yönelimli(Object Oriented) bir dil olduğu için kalıtım(Inheritance) ilkesi karakteristiklerini de taşımaktadır. En temel haliyle var olan bir tipin özelliklerini ve fonksiyonelliklerini alt sınıflara taşıyabildiğimiz(alt sınıfta kullanabildiğimiz ve hatta gerekirse ezebildiğimiz) kalıtım ilkesinin Ruby tarafındaki uygulanış biçimi oldukça kolaydır. Gelin basit bir kod parçacığı ile konuyu anlamaya çalışalım. [Daha fazla]
Ruby Kod Parçacıkları - 7 (Object Method, Class Method, Public, Private, Protected) 13 Ağustos 2015 Burak-Selim-Senyurt Ruby Ruby sınıflarında farklı amaçlarla kullanılan metodlar mevcuttur. Serimiz boyunca pek çok çeşidini kullandık. Nesne örneklerini oluşturmak için initialize metodundan, sınıf varlığını String olarak yazmak için ezdiğimiz(override) to_s metodundan, sınıfa ait durum bilgisini taşıyan nitelikler(Attributes) için accessor' lardan vb... [Daha fazla]
Ruby Kod Parçacıkları - 6 (Sınıflarda Accessor, Setter ve Attribute Kullanımları) 12 Ağustos 2015 Burak-Selim-Senyurt Ruby Nesne yönelimli dillerde sınıfların birer varlık(Entity) olarak düşünüldüğüne sıklıkla şahit oluruz. Bu sayede bir Domain' e özgü gerçek dünya varlıklarının tasarlanması ve örneklenerek kullanılması mümkün hale gelir. Üstelik Domain içinde dolaşımda olacak anlamlı nesneler ortaya çıkar. Çok doğal olarak her bir varlığın karakteristik özellikleri bulunur. Nitelik(attribute) olarak da düşünebileceğimiz bu özellikler ilgili varlığın çalışma zamanı(Runtime) durumu hakkında bilgiler taşır. Aslında .Netçi gözüyle bakıldığında sınıf ve özelliklerinden bahsettiğimizi anlamışsınızdır. [Daha fazla]
Ruby Kod Parçacıkları - 5 (Sınıf Kavramına Giriş) 10 Ağustos 2015 Burak-Selim-Senyurt Ruby Bilindiği üzere Ruby nesne yönelimli bir programlama dilidir. Bu yüzden Ruby dilinde her şey bir nesne olarak düşünülür. Dolayısıyla OOP dillerin Kalıtım(Inheritance), Encapsulation(Kapsülleme), Çok Biçimlilik(Polymorphism) gibi temel özelliklerini bünyesinde barındırır. Elbette en küçük yapı taşı sınıflardır(Class). İzleyen kod parçacığında basit olarak bir sınıfın nasıl tanımlandığına yer verilmektedir. Bu anlamda değişken türlerinden(Instance,Class ve Global Variable), sınıf yapıcılarından(initialize), nesne örnekleme operasyonlarından(new), standart sınıf içi metod tanımlamalarından(def) ve metod ezme(overriding) gibi işlemlerden kısaca bahsedilmektedir. [Daha fazla]
Ruby Kod Parçacıkları - 4 (Control Statements, Loops, Statement Modifiers) 09 Ağustos 2015 Burak-Selim-Senyurt Ruby Her programlama dilinde olduğu gibi Ruby içinde kontrol ifadeleri(Control Statements) ve döngüler(Loops) söz konusudur. Tabi Ruby dili özellikle yazımsal kolaylık açısından pek çok geliştiriciyi gülümseten betiklere de sahiptir. İlerleyen kod parçasında bu konudaki en temel kullanımları inceliyoruz. [Daha fazla]
Ruby Kod Parçacıkları - 3 (Range Kullanımı) 06 Ağustos 2015 Burak-Selim-Senyurt Ruby Range sınıfı ile başlangıç ve bitiş değerleri belli olan aralıklar tanımlanabilir. Bu aralığa ait değerler sayısal veya metinsel olabileceği gibi kullanıcı tanımlı sınıf örnekleri de olabilir(Bu benim için de henüz ileri seviye bir konu olduğundan ilerleyen günlerde değinmeye çalışacağım) Gelin bu aralıkların Ruby programlama dilinde nasıl kullanıldığına kısaca bakalım. [Daha fazla]
Ruby Kod Parçacıkları - 2 (Hashes) 05 Ağustos 2015 Burak-Selim-Senyurt Ruby Ruby programlama dilinde de veri yapıları(Data Structures) oluşturmak için kullanılan tiper vardır. Dictionary benzeri koleksiyon olarak kabul edebileceğimiz Hash sınıfı bunlardan birisidir. Benzersiz anahtar(key) ve değer(value) çiftlerinden oluşan Hash nesne örneklerinin kullanımı oldukça kolaydır. [Daha fazla]
Ruby Kod Parçacıkları - 1 02 Ağustos 2015 Burak-Selim-Senyurt Ruby Bir programlama dilini öğrenmenin en iyi yolu elbetteki bol bol kod yazmaktan geçer. En azından belirli bir seviyeye gelene kadar basit IDE' ler ile mümkünse Console ekranları üzerinden çalışarak ilerlemekte yarar vardır. Hazır bu aralar Ruby ile haşır neşir iken hem basit kod parçaları paylaşayım hem de bu eğlenceli dili birlikte öğrenelim istedim. İşte ilk kod parçacığımız. Konumuz, diziler(Arrays). [Daha fazla]