Vibe.d ile ilk uygulama
Bu dersleri oldukça uzun süre önce hazırlamıştık.
Yararlı olabileceği düşüncesi ile elimizden geldiği kadar güncellemeye karar verdik.
D ile sunucu uygulamaları geliştirebilmek için, D derleyicisine ve dub isimli paket yazılımına ihtiyacımız olacak.
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 D derleyicisini bu bağlantıdan indirip, ekrandaki yönergeleri izleyerek kurabilirsiniz.
İlk önce kiraz
isimli bir dizin oluşturalım.
mkdir kiraz
Sonra bu dizinin içine giriniz.
cd kiraz
Kiraz dizininin içinde iken dub.sdl
isimli bir kütük oluşturunuz.
touch dub.sdl
İçine şunları giriniz :
name "kiraz"
dependency "vibe-d" version="~>0.9"
targetType "executable"
mainSourceFile "kaynak/ana.d"
Bu kütüğü kaydettikten sonra kaynak
isminde yeni bir dizin oluşturalım ve içine girelim.
mkdir kaynak
cd kaynak
Bu dizinin içinde iken ana.d
isimli bir kütük oluşturalım.
touch ana.d
İçine aşağıdakileri girip, kaydediniz.
import vibe.vibe;
void selam(HTTPServerRequest istek, HTTPServerResponse yanıt)
{
yanıt.writeBody("Selamun Aleyküm!");
}
void main()
{
auto ayarlar = new HTTPServerSettings;
ayarlar.port = 8080;
ayarlar.bindAddresses = ["::1", "127.0.0.1"];
listenHTTP(ayarlar, &selam);
logInfo("Lütfen tarayıcınızla http://127.0.0.1:8080/ adresini açınız.");
runApplication();
}
Tekrar bir üst dizin olan kiraz
dizinine geri dönüyoruz.
cd ..
Uygulamayı 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
Selamun Aleyküm!
yazdığını görmelisiniz.
Böylece ilk sunucu uygulamanızı geliştirmiş oldunuz.
Kaynak dizininde bulunan ana.d
kütüğünü değiştirelim.
import vibe.http.server : İstek = HTTPServerRequest;
import vibe.http.server : Yanıt = HTTPServerResponse;
import vibe.http.server : sunucuyuBaşlat = listenHTTP;
import vibe.http.server : SunucuAyarları = HTTPServerSettings;
import vibe.core.log : bilgiVer = logInfo;
import vibe.core.core: çalıştır = runApplication;
void selam(İstek istek, Yanıt yanıt)
{
yanıt.writeBody("Selamun Aleyküm!");
}
void main()
{
auto ayarlar = new SunucuAyarları;
ayarlar.port = 8080;
ayarlar.bindAddresses = ["::1", "127.0.0.1"];
sunucuyuBaşlat(ayarlar, &selam);
bilgiVer("Lütfen tarayıcınızla http://127.0.0.1:8080/ adresini açınız.");
çalıştır();
}
D dilinde bir işlev için takma isim kullanabiliyoruz.
Örneğin bilgiVer = logInfo;
komutuyla bu işleve bilgiVer
ismini verdik.
Kiraz dizininin içinde iken dub
komutu ile uygulamayı tekrar derleyip, çalıştırabilirsiniz.
Eğer uygulamayı Ctrl - Z tuşları ile sonlandırmayı denerseniz, bir dahaki sefere çalışmıyor.
Bunu çözmek için aşağıdaki komutu verebiliriz.
killall -9 kiraz
Ama her seferinde böyle uğraşmak istemeyiz.
Bu nedenle koş
isminde bir betik yazdık. Bunu ~/bin
dizinine kaydediniz ve chmod +x
ile çalıştırma hakları veriniz.
CALISIYORMU=$(pgrep "kiraz")
if [ -z "$CALISIYORMU" ]
then
echo "Çalışmıyor"
~/Programlar/kiraz/kiraz
else
echo "Çalışıyor"
kill -9 $CALISIYORMU
fi
Şimdi eğer iki tane pencere açar ve birisinden koş
komutunu başlatarak sunucuyu başlatabilirsiniz. Sunucuyu sonlandırmak için diğer pencereden tekrar ¨koş` komutu verebilirsiniz.
Eğer Gnome ya da Xfce gibi bir pencere yöneticisi kullanıyorsanız yazdığımız betik için bir kısayol oluşturabilirsiniz.
Kiraz dizininin içindeyken betiği çalıştırmak için koş
yazınız. Betiği sonlandırmak için ise kısayol kullanabilirsiniz.
Eğer Allah'ın izni ile geliştirdiğimiz Kaptan uygulamasını kullanıyorsanız, yollar.txt
kütüğüne aşağıdakine benzer bir ekleme yapabilirsiniz.
Koş, /home/erdem/bin/koş, Ctrl-Alt-K
Burada ismi kendi kullanıcı adınızla değiştiriniz.
Eğer betik çalışmazsa ve aşağıdaki komutu verdiğinizde
ps -ef | grep defunct
kiraz uygulamasını bu listede görürseniz, sonlandır uygulamasını aşağıdaki gibi veriniz.
kill -9 1237 1235
Bu komut hem süreci, hem de ana süreci sonlandırıyor.
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.
sudo update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.gold" 20
sudo update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.bfd" 10
İstersek elle de bağlayıcıyı seçebiliyoruz.
sudo update-alternatives --config ld
ld.gold bağlayıcısını seçtiğimizde bağlama süresi neredeyse yarı yarıya düşüyor.
Uygulamanın kaynağını buradan indirebilirsiniz.
Eğer git kullanarak indirmek indirmek isterseniz
git clone https://codeberg.org/erdem/kiraz.git --branch Ders1
komutu ile ilk dersi indirebilirsiniz.
Yorumlar