19 Şubat 2019 Salı

Limnor ile Kodsuz Programlama

Giriş

Bu yazıda herkesin program yazabilmesi amacı güden Limnor programlama ortamını inceleyeceğiz. Bu yazıda Limnor programlama dilinin kendi sitesindeki dökümanlardan örnek alınmıştır.

Amacımız görsel olarak ve kod yazmadan windows programları geliştirmek. Mümkün olduğunca az sayıda teknik terim kullanacağız ve programlamaya eğlenceli bir yöntemle başlamaya çalışacağız.

Nesne Temelli Programlama (Object-based Programming)

Bir bilgisayar dili komut kelimeleri (if, else, ...) , semboller (+, -, ...) ve deyim yapılarından (gramer) oluşur.

Bilgisayar dili yeni başlayanlar için her bilgisayara istediği her şeyi yaptırabilmek gibi görünür, ama gerçek böyle değildir.
  • Değişik bilgisayarlar, değişik donanım yapısına sahiptir ve değişik görevler için yapılmıştır. İlk başlarda bilgisayar üreticileri bilgisayarlarını programlamak için gereken dilleri de bilgisayar ile birlikte verirlerdi. Örneğin çoğunda "Basic" programlama dilinin değişik versiyonları olurdu. Siz birini kullandığınızda başka markada öğrendiklerinizin çoğu işe yaramazdı.
  • Mevcut bilgisayarınıza yeni bir donanım eklediğinizde , donanım üreticisi bu donanımı programlama dilleri tarafından yönetebilmek için yazılım kütüphaneleri verir. SDK (software development kit) adı verilen bu kütüphaneler kullanılan programlama dilinin bir parçası değildir.

Gerçekte birçok gelişmiş programlama dilinde işlevler bir komut kelimesiyle değil kütüphaneler yardımıyla gerçekleştirilir. Modern programlama dillerinde yazılım kütüphaneleri nesnelere işlevsellik kazandırır. Örneğin bir konsol nesnesinin yazıları gösterme , klavyeden yapılan girişi okuma gibi işlevleri vardır. 

Nesne temelli programlamada amacımızı karşılayacak işlevlere sahip nesneleri kütüphanelerden bulur ve onları kullanırız. 

Bu kadar şimdilik yeter hızlı ilerleyelim.



Kodsuz Programlama

Nesne temelli programlamada kullanılan programlama dili nesneleri yazılıma şekilvermek için birleştiren bir yapıştırıcı gibi işlev görür. Bu ayrıca Lego bloklarını birleştirip bir eser oluşturmaya da benzetilebilir. Limnor ile nesneleri basit mouse ve klavye hareketleri ile birbirine bağlayarak programımızı oluştururuz, bu diğer yazılı dillere göre çok daha kolay öğrenilebilen bir süreçtir.

Burada göreceğimiz şekilde yazılı bir programlama dili öğrenmeden nesneleri birbirine bağlayıp kolayca uygulamamızı oluşturacağız.



Programlama Girdisi Olarak Nesneler

Nesne Nedir

 Biz dünyayı nesneler olarak görürüz. Ağaç bir nesnedir, ev bir nesnedir, televizyon bir nesnedir. Nesne temelli programlamada her şey nesne olarak görülür. Bir buton nesnedir, ama bir sayı da nesnedir, uygulama penceresi bir nesnedir vs. Sürekli nesneler ile uğraşırız.

Teknik olarak nesne temelli programlamadaki nesneler üç nitelikten oluşur: Özellikler (Properties), Metodlar (Methods) ve Olaylar (Events).

Bir nesnenin işlevselliğini anlamamız için onun Özellikleri , Metodları ve  Olaylarını öğrenmemiz gerekir. 

Nesne temelli program yazmak demek , yeni nesneleri uygulamaya ekleyip onların niteliklerini ayarlamak demektir.

Nesneleri Eklemek

Burada sıkılmamak için örneklerle devam edeceğiz. Nesnelere örnek vermek amacıyla yeni bir Windows Form uygulaması üretelim. 

Menüden "File | New Project" seçelim. Açılan pencerede "Windows Application" seçelim.


Projenin adını ve saklanacağı konumu belirledikten sonra OK düğmesine tıklayalım. Windows Form projesi üretildi. Bu projenin içerisinde iki tane nesne var. Birisi uygulamayı temsil eden WinFormApp1 diğeri de uygulamanın açacağı pencereyi temsil eden Form1 nesneleri.


Run butonuna tıklayıp uygulamayı çalıştıralım.


Uygulama çalışır ve penceremiz görünür.


Bu pencere bizim Form1 nesnesinin ta kendisi. WinFormApp1 nesnesi görünmüyor çünkü onun görünür bir kullanıcı arayüzü yok. Gerçekte buna benzer bir çok nesneyi sadece Limnor geliştirme ortamında görürken uygulamayı çalıştırınca göremeyiz. 

Form1 penceresini kapattığımızda uygulamamız da son bulur ve Limnor geliştirme ortamına geri dönülür , çünkü Form1 nesnesi uygulamamızdaki yegane penceredir. 

Limnor Studio uygulamasını nesneleri görsel olarak yönetmek için kullanırız. Örneğin penceremize bir "Button" nesnesi ekleyelim.


Sol tarafta Toolbox sekmesi içindeki Common Controls bölümünden "Button" nesnesini sürükleyip formumuz üzerine bırakalım. 


Button nesnesi Button1 ve Form1 nesnemiz birbirlerine lego parçaları gibi bağlandılar. 

Özellikler (Properties)

Örneğin bir ağaç nesnesinin yüksekliğini bilmek istiyoruz. O zaman yükseklik ağaç nesnesinin özelliklerinden biridir. 

Bir nesne için bir özellik onun görünüş ya da karakteristiği hakkında bilgi veren bir değerdir. 

Bir nesne seçildiğinde özellik pencereciğinde özellikleri görünür ayrıca nesne ağacında da görünür. 


Örneğin button nesnesinin "Text" özelliği butonun üzerinde yazan yazıyı belirler. Bu özelliğin değerini "Kapat" yaparak butonumuzun yazısını değiştirelim.


Diğer özellikleri incelediğimizde boyutu, rengi, form içindeki yeri gibi daha birçok bilgilerin bulunduğunu görebiliriz. Görsel tasarımda butonun yerini değiştirdiğimizde "Location", boyutunu değiştirdiğimizde "Size" özelliği değişmektedir aslında. Bu şekilde özellikleri üzerinden nesnelerin görünüş ve karakteristikleri yönetilir. 

Ne yaptık? Uygulamamızın Form1 nesnesine buton nesnesi ekleyerek onu modifiye ettik. Daha sonra Form1 üzerindeki Button1 nesnesinin başlığını değiştirdik. İşte bu işlemler görsel programlamanın parçaları.

Metodlar (Methods)

Bir nesnenin bir metodu, o nesnenin yapabileceği bir şeyi temsil eder. 

Örneğin şarkıcı şarkı söyler. "Şarkı Söyle" şarkıcı nesnesinin bir metodudur. 

Metod konsepti ve aksiyon konsepti çok yakın anlamlar ifade eder. Metod bir işi yapmak olurken aksiyon o işi belirli bir şekilde yapmaktır. Yani "Şarkı Söyle" bir metodken "Kış Güneşi Şarkısını Söyle" bir aksiyondur. 

Metod bir işin yapılmasını ifade ederken, aksiyon metodun nasıl yapılacağını tarif eder. Nesne ağacında seçili olan nesnenin metodlarını görebiliriz.


Aksiyonlar metodları kullanarak üretilir. Şimdi formun kapatma metodundan formu kapatmamızı (yani "x" düğmesine basınca olan işlem) sağlayacak bir aksiyon üretelim. Bunun için form üzerine sağ tıklayıp "Create Action | Close" seçelim. 


Karşımıza üreteceğimiz aksiyonun özelliklerinin girildiği bir soru penceresi çıkacaktır. Burada isterseniz aksiyon adını vs. değiştirebilirsiniz.


Aksiyonların işlenme şekliyle ilgili parametreler varsa bu ekranda girilebilir. Close metodunun parametresi yoktur, OK butona tıklayıp aksiyonu uygulamamıza ekleyelim. Aksiyonumuz nesne ağacında Form1 altında Actions bölümüne eklenecektir. 

Aksiyonumuzu ürettik de bu aksiyon ne zaman çalışıp da form penceresini kapatacak?

Bu sorunun cevabı için "Olaylar" konseptine bakacağız.

Olaylar (Events)

Bir olay bir nesnede şartlar gerçekleşince oluşan bir andır. Örneğin "havalanmak" bir uçak için bir olaydır, uçak yerden ayrıldığında oluşur. 

Bir nesneye ait tüm olaylar nesne ağacında görülebilir. 


Limnor Studio'da kodsuz program oluştururken bir aksiyonları olaylara bağlarız. Uygulamayı çalıştırdığımızda olaylar oluşunca aksiyonlar çalışarak programımızda istediğimiz işlemleri gerçekleştiririz. 

Son bölümde "Close" aksiyonu oluşturmuştuk. Diyelim kullanıcı butona tıkladığında bu aksiyonun gerçekleşmesini istiyoruz. 

Tasarım ekranında butona sağ tıklayıp "Assign Action" altında "Click" olayını seçelim.


Hangi aksiyona olayı bağlayacağımızı seçebileceğimiz bir ekran çıkar. "Close" aksiyonumuzu seçelim ve Next butonu tıklayalım.


Aksiyonu olaya bağladık ve artık nesne ağacında bu bağlatıyı görebiliyoruz. Ayrıca olay haritasında butonun Click olayından forma doğru bir bağlantı da görsel olarak ifade edilmiştir.


Of ne program yazdık. Şimdi çalışmasını test edelim, Run butonuna tıklayıp uygulamamızı çalıştırdığımızda artık "Kapat" butonuna tıkladığımızda uygulamadan çıkılıyor. 

Genel olarak program yapısı hep benzer olacaktır, bir aksiyon oluşturulacak sonra bu aksiyon bir olay gerçekleştiğinde çağırılacaktır. Tabi bu aksiyon ve olayların programımızın büyüklüğüne göre binlerle ifade edilebileceğini kullandığınız Windows programlarından tahmin edersiniz. Artık kullandığınız programlara bakarken "hmm bu aksiyonu şu olaya bağlamışlar" falan diyerek deşmeye başladınız mı olgunlaşmaya başladınız demektir.

Şimdilik ilginizi çekebildiysem ne ala, kalın sağlıcakla..







Hiç yorum yok:

Yorum Gönder