D ile günlük

Merhaba Dünya

Bu derste ilk vibe.d uygulamamızı nasıl geliştirebileceğimizi öğreneceğiz.

Giriş

Öncelikle kısaca oluşturacağımız günlük uygulaması hakkında bilgi vermek istiyorum.

Ağ uygulaması geliştirmeyi iki bölüme ayırabiliriz. Sunucu tarafında geliştirme, istemci tarafında geliştirme.

Sunucu tarafında geliştirme derken bir programlama dili ile birlikte vibe.d, Flask, Django gibi bir ağ kütüphanesi kullanarak sunucu uygulamaları geliştirmeyi kast ediyoruz.

İstemci tarafında ise genelde Javascript dili ile birlikte JQuery, Ajax gibi kütüphaneler kullanılıyor.

İstemci uygulamaları derken kullanıcının bilgisayarında, tarayıcıda çalışan uygulamalardan bahsediyoruz.

Bunların dışında bir de sayfanın tasarımı var. Sayfa tasarımı için Css ya da hazır bir tasarım deseni kullanabilirsiniz.

Artık bildiğiniz üzere örüt ağa bağlanan farklı genişlikte cihazlar var. Bu nedenle yaptığınız sayfa tasarımının sadece masa üstü bilgisayarlarda değil farklı cihazlarda da güzel görünmesi, eksiksiz olması önem taşıyor.

Eğer sayfa tasarımı ve istemci tarafında geliştirmeyi de kendiniz yapacaksanız, özellikle kullanacağınız tasarım deseninin çok karışık olmamasına dikkat edin.

Kendi deneyimlerime göre asıl zorluk sunucu tarafında geliştirmede değil, sayfa tasarımında ortaya çıkıyor.

Eğer sayfa tasarımı konusunda çok iyi değilseniz Bootstrap gibi karmaşık bir tasarım deseni kullanmanızı tavsiye etmiyorum.

Bu nedenle günlüğün tasarımında Pure Css tasarım desenini kullanacağız. Veritabanı olarak ise anahtar değer türünde bir veritabanı olan MongoDB kullanacağız.

D derleyicisi ve DUB paket yöneticisi kurulumu

D ile sunucu uygulamaları geliştirebilmek için herşeyden önce D derleyicisine ve D'nin paket yöneticisi olan DUB isimli yazılıma ihtiyacımız olacak.

Bunun yanında yazılım geliştirme sürecini takip etmek için git yazılımını da kurmanızı tavsiye ediyorum.

Ubuntu ve Debian altında kurulum

1- Bir tane terminal açarak ilk önce gerekli yazılım kaynağını ekliyoruz.

sudo wget https://netcologne.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list

2- Paket listesini güncelliyoruz.

sudo apt-get update --allow-insecure-repositories

3- Yazılım kaynağının anahtarını kuruyoruz.

sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring

4 - Son olarak da d derleyicisi ve paket aracını kuruyoruz.

sudo apt-get update && sudo apt-get install dmd-compiler dub git

Windows için kurulum

Windows için D derleyicisini bu bağlantıdan indirip, ekrandaki yönergeleri izleyerek kurabilirsiniz.

D paket yöneticisini 32 bitlik bir işletim sistemi için buradan, eğer 64 bitlik bir işletim sistemi kullanıyorsanız bu adresten indirip, kurabilirsiniz.

Git sürüm yönetim sistemini ise buradan kurabilirsiniz.

vibed ile ilk uygulama

D'nin vibed kütüphanesini kullanarak ilk uygulamamızı yazmak için komut istemini / terminal açıp içine şunları girelim.

$ dub init kiraz --type=vibe.d

En baştaki $ işaretini yazmıyorsunuz. Bu sadece komutun terminalde yazıldığını göstermek için kullanılıyor. Gelen ekrana isterseniz bilgiler girebilirsiniz, ya da Enter tuşuna basarak geçebilirsiniz.

$ cd kiraz

komutuyla dizinin içine girebiliriz. Oluşturulan kiraz dizininin içinde source klasöründe app.d isimli bir kütük olacak.

Bu dosyayı herhangi bir metin düzenleyici ile açalım. Ben Emacs kullandım. Farklı bir metin düzenleyici de kullanabilirsiniz.

$ emacs source/app.d

İçindekileri silip yerine şu bilgileri girelim.

import vibe.vibe;

void merhaba(HTTPServerRequest istek, HTTPServerResponse yanıt)
{
    yanıt.writeBody("Merhaba, Dünya!");
}

void main()
{
    auto ayarlar = new HTTPServerSettings;
    ayarlar.port = 8080;
    ayarlar.bindAddresses = ["::1", "127.0.0.1"];
    listenHTTP(ayarlar, &merhaba);

    logInfo("Lütfen tarayıcınızla http://127.0.0.1:8080/ adresini açınız.");
    runApplication();
}

Burada kaynak kodu incelediğimizde ayarlar, sunucu ayarlarını belirtiyor. Örneğin hangi iletişim köprüsünü kullanacağımızı, bu örnekte 8080 olarak belirledik.

listenHTTP ise sunucuya gelen tüm istekleri merhaba isimli bir işleve aktarıyor. Bu işlev ise basitçe ekrana Merhaba Dünya yazıyor.

logInfo ile komut satırına bazı bilgiler yazdırıyoruz. Bu özellik özellikle hata yakalamak için çok faydalı olacak.

En son olarak da runApplication() sunucu uygulamasını çalıştırıyor.

Yazdığımız programı derlemek ve çalıştırmak için basitçe dub komutunu veriyoruz.

$ dub

Bu aşamada kendinize bir çay koymaya gidebilirsiniz ;-)

Kütüphane ilk kez derlendiği için bu aşama biraz uzun sürüyor.

Eğer işlem başarılı olduysa http://127.0.0.1:8080 adresini tarayıcınızla açın. Ekranda

Merhaba, Dünya!

yazdığını görmelisiniz.

Böylece ilk sunucu uygulamanızı geliştirmiş oldunuz.

Git kullanımı

Yazdığımız yazılımın gelişimini takip etmek için isteğe bağlı olarak git kullanmak isteyebilirsiniz.

Halen kiraz dizininin içindeyken yeni boş bir git deposu oluşturmak için şu komutu veriyoruz.

$ git init .

Şimdi git'in takip etmesini istediğimiz kütükleri ekliyoruz.

$ git add source/app.d

Son olarak da yaptığımız değişikle ilgili kısa bir açıklama yapıp, değişiklikleri gönderiyoruz. İsterseniz siz farklı bir açıklama da yazabilirsiniz.

$ git commit -m "Merhaba Dünya"

Aşağıdaki komut ile son durumu, hangi kütüklerin izlenip izlenmediğini görebiliriz.

$ git status

Bu komutlar geliştireceğimiz uygulama için yeterli. Ancak git kullanırken kullanışlı bir ipucu vermek istiyorum.

Diyelim ki bir uygulamanın kaynak kodunda zamanla değişiklik yaptınız. Bir tane kütüğün belirli bir zaman dilimindeki halini görmek istiyorsunuz.

Bu durumda ilk önce günlük kayıtlarına bakıyoruz.

$ git log

Çıktısı da şuna benzer uzun bir şey oluyor.

commit 5d1569542a9e54c0d9a860633fe465bc0ea43e50

Kaynak dosyasının bu zaman dilimindeki sürümünü görmek istersek :

$ git show 5d15695:source/app.d

komutunu verebiliriz. Görebileceğiniz üzere yukarıdaki rakam ve sayıların tamamını değil, sadece bir kısmını yazmamız yeterli olacaktır.

Linux altında bağlama işlemini hızlandırma

Kaynak kodu yazdıktan sonra derleyici yazılım parçaları oluşturuyor. Bağlayıcı ise bu yazılım parçalarını birleştirerek, yazılımın çalıştırılabilir sürümünü oluşturuyor.

İşte Linux altında bu bağlama işlemi varsayılan bağlayıcı ile oldukça uzun sürüyor.

Aşağıdaki komut ile bağlayıcılar arasında geçiş yapıyoruz.

update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.gold" 20
update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.bfd" 10

İstersek elle de bağlayıcıyı seçebiliyoruz.

update-alternatives --config ld

ld.gold bağlayıcısını seçtiğimizde bağlama süresi neredeyse yarı yarıya düşüyor.

Yorumlar

yorum yaz

Yorum yaz

Henüz yorum yok.