İletişim sayfası
Uygulamamıza İletişim sayfası ekleyerek devam edeceğiz. Öncelikle test rutinlerini ekleyelim.
test/controllers/static_pages_controller_test.rb
Uygulamamıza İletişim sayfası ekleyerek devam edeceğiz. Öncelikle test rutinlerini ekleyelim.
test/controllers/static_pages_controller_test.rb
Selam bu bölümde Rails uygulamalarımızın görselleriyle uğraşacağız biraz.
Yeni App (statik sayfalar) uygulamamızı yaparken stil dosyalarının yerini ve sayfalarımıza yerleşim dosyasında nasıl eklendiğini görmüştük. app/assets/stylesheets/application.css stil dosyamız şu anda boş. Bu bölümde bir CSS framework kullanarak uygulamamıza stiller ekleyeceğiz. Önce yerleşim dosyasında sayfalarımıza bağlantılar koyacağız. Bunları yaparken kısmi (partial) görselleri öğreneceğiz. Sass kütüphanesini kullanacağız.
Selam, WxRuby öğrenmeye kendi widget'larımızı üreterek devam ediyoruz.
GUI araç kitlerinde genelde button'lar, text widget'lar, scrollbar'lar, slider'lar gibi temel elemanlar olur. Her istediğimizi barındırmaları mümkün değil tabi ki. Daha gelişmiş elemanları programcı kendi üretir.
Kendi widget'ımızı iki yolla üretebiliriz. Ya mevcut bir nesneyi değiştiririz ya da sıfırdan yeni bir widget tanımlarız.
Selam Rails 7 denemelerine Ruby programlama temellerini göreceğimiz bir bölümle devam ediyoruz. Önceki bölümde yazdığımız "yeni_app" uygulamamız üzerinden devam edeceğiz.
Önceki bölümde Rails açısından önemli olan bazı Ruby programlama teknikleri kullandık. Ruby çok büyük bir programlama dili, neyse ki Rails uygulaması geliştirmek için bilmemiz gerekenler çok da fazla değil. Bu bölümde Rails'de kullanılan Ruby tekniklerine bir göz atacağız. İleride uygulamalar geliştirdikçe Ruby dili hakkında daha geniş bilgileri tekrarlarla öğrenmeye devam edeceğiz.
Selam WxRuby ile masa üstü uygulamalara gelişmiş widget'larla devam ediyoruz.
Bu bölümde Wx::ListBox, Wx::HTML::HtmlWindow ve Wx::ListCtrl widget'larını göreceğiz.
Wx kütüphanesinde gelişmiş elemanlar var, tree widget, bir HTML window, bir grid widget, bir listbox widget, bir list widget, veya gelişmiş stillendirme özelliklerine sahip editor widget gibi.
ListBox nesnesi bir liste olarak verilen değerleri göstermek için kullanılır. ListBox nesnesi iki farklı şekilde üretilebilir, tek seçimli ya da çoklu seçimli olarak. Default olan tek seçimli olandır.
Selam Rails 7 ile denemelerimize devam ediyoruz.
Bu seferki uygulamamızda biraz daha gelişmiş ve bundan sonraki uygulamalarımıza temel teşkil edecek bir uygulama planlıyoruz. Burada veri tabanına bağlı olmayan statik web sayfaları yapacağız. Statik web sayfalarını Rails yöntemiyle yapmak , bize Rails işleyişini anlamak için çok yararlı olacaktır.
Rails, veri tabanına dayalı web siteleri yapmak için geliştirilse bile , her uygulamanın statik sayfalara ihtiyacı vardır .Rails ile geliştirilen statik sayfalar ise her ne kadar statik dense de kolayca içlerine dinamik davranışlar eklenebilir. Bu uygulama da ayrıca otomatik testler için de bir giriş yapacağız.
Selam RubyOnRails versiyon 7 ile bazı denemeler yaparken framework özelliklerini öğrenmeyi amaçlıyorum.
Rails kullanarak uygulama geliştirirken kullandığımız Ruby ve Rails gem versiyonlarının stabil olması , ileride sıkıntılar yaşamamak için önemli. Bu yüzden kurulumları Ruby Version Manager - rvm ile yapacağız.
RVM Linux sistemlerde kuruluyor Windows'ta da WSL Ubuntu terminal kullanarak kurulabilir.
Öncelikle PPA kaynaklarını kullanmak için yüklenmesi gereken paket için konsolda
Bu baştaki $ işareti prompt'u ifade için kullanılan bir genel gösterim konsola onu yazmayacağız tabi ki.
Şimdi rvm kaynaklarını sisteme eklemek için konsolda şu iki satırı girelim.
Son olarak rvm kurulumunu yapalım.
Selam, Ruby temellerini öğrenmeye devam ediyoruz.
Ruby'de bir metod çağırdığımızda, o metodun mutlaka bir alıcısı (gönderildiği nesne) vardır. Eğer bu alıcı net olarak belirtilmiyorsa Ruby bu örtülü alıcıyı self değerinde saklar. class ve module deyimleri de self değerinin işaret ettiği nesneye göre değişir. Bu davranışları anlamak Ruby dilini anlamamızda çok yardımcı olacaktır.
Örneğin bir IRB oturumunu ilk açtığımızda,
Selam WxRuby3 GUI kütüphanesi denemelerimize widget'ları inceleyerek devam ediyoruz.
Wx::ToogleButton iki pozisyonu olan bir buton nesnesi: basılı ve basılı olmayan görünümleri var. Her tıkladığımızda bu iki durum arasında değişiyor. Bazen bu şekil çalışan butonlar lazım olur.
Wx::ToggleBuuton.new metodunun parametreleri.
parent, id ve label sıralı verilmek zorunda onları verdikten sonra diğerlerini sırası olmadan key parametre olarak verebiliriz.
Selam Ruby'nin temel tekniklerine kaldığımız yerden devam ediyoruz.
Bir Enımerator elemanlarına iterasyon uygulanabilen bir nesnedir. Bir koşul karşılanana kadar döngüye girmek yerine, nesne gerektiği gibi eleman değerlerini sıralar (enumerates).
Selam WxRuby3 GUI kütüphanesi denemelerimize olay işleme teknikleri ile devam ediyoruz.
Olaylar her GUI uygulamanın vazgeçilmez parçasıdır. Tüm GUI uygulamaları olay yönelimlidir. Bir uygulama çalıştığı müddetçe değişik olaylara tepki gösterir. Bir uygulamada olaylar genellikle kullanıcı tarafından oluşturulur. Ama başka şeyler de olay üretebilir, mesela internet bağlantısı, pencere yöneticisi veya zamanlama ile üretilen olaylar. Uygulamamızda run metodunu çalıştırdığımızda, uygulamamız olayların oluşmasını beklemeye başlar.
Selam Ruby ile masaüstü program yazmak üzerine neler yapabilirim bir göreyim dedim ve başladım denemelere. Denemelerimi Windows'ta yaptım. Windows üzerinde bende kurulu olan versiyon ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [x64-mingw-ucrt] olarak geliyor. Ruby installer sitesinden Ruby+Devkit 3.4.2-1 (x64) versiyonu indirip kurdum.
WxRuby3 GUI kütüphanesini yüklemek için komut isteminde
komutunu girdim ve sıkıntısız yüklendi. Sizde sorun olurssa bendeki versiyon Ruby ile deneme yaparsınız.
Hemen deneme yapmak için hello.rb adında bir dosya üretip içine şu kodu yazdım.
Selam, Ruby temel tekniklerine kaldığımız yerden devam ediyoruz.
Singleton (tekil) sınıfların sadece bir tane oluşum nesnesi olabilir.
Ruby'de 3 çeşit nesne vardır
Merhaba kaldığımız yerden devam edelim.
Deyim yapısı
Uzay gemisi operatörü (<=>) uyarlamasını yapar. Nesneleri sıralanabilir sınıflara karşılaştırma özelliği eklemekte kullanılır. Sınıfa metodun uyarlaması yapılır.
Aynı sınıf oluşumu olan x ve y nesnelerini alalım.
Selam , Ruby temel tekniklerine kaldığımız yerden devam ediyoruz.
Metodlar bir kısım aksiyonu tekrar tekrar kullanılması için isimlendirilmiş bloklar içine toplamaya yarar. Aynı şeyleri tekrar tekrar yazmanıza gerek kalmadan yapabilmenizi sağlayarak kodunuzun takibini kolaylaştırır. Bu başlık altında Ruby metodlarının tanımlaması, kullanılması, parametreleri, "yield" ifadelerini göreceğiz.
Merhaba, Ruby dilinin temel tekniklerini incelediğimiz yazımıza devam ediyoruz.
Merhaba, 3. bölümde sınıflarda kalıtım sistemi ile devam ediyoruz.
Selam,
Yazının 2. bölümünde sınıflarla devam ediyoruz.
Bu kısımla ilgili daha değişik bilgileri tercüme ettiğim Wikibooks/Ruby/Sınıflar sayfasında da bulabilirsiniz.
Bir sınıf tanımlamanın deyim yapısı.
Ruby'de sınıf isimleri, veri tipi olarak sabitlerdir, o yüzden büyük harfle başlamaları gerekir.
Ruby birçok platformda çalışan, açık kaynak, dinamik, nesne temelli, yorumlamalı bir dildir. Basit ve üretken olmak amaçlı geliştirilmiştir. 1995 yılında Yukihiro Matsumoto (Matz) tarafından geliştirilmiştir.
Bu yazıda Ruby'nin temel tekniklerini inceleyeceğiz. Ruby programlama dili hakkında bilgilendirme amaçlayan Wikibooks Ruby Tercümesi de tarafımdan büyük kısmı yapılmış bir tercüme olarak birçok bilgi içeriyor. Okumanızı tavsiye ederim.
Ruby programlama dilinin bilgisayarınızda kurulu olduğunu kabul ederek ilk programı yazmaya başlayalım. Ben genelde Ubuntu işletim sisteminde ve editör olarak da VSCode editör kullanıyorum.
Şimdi denemelerimizi yapacağımız bir klasör oluşturup içinde ilk programımız olan merhaba.rb dosyasını ekleyelim ve içine şu kodu yazalım:
Merhaba, bu yazımda Ubuntu Linux sistemde C# program geliştirmeyi çalışacağım. Daha önceleri Windows uygulamaları geliştirmek için C# programlama dilini birçok kez kullandım. Ama şimdi yeni bir ihtiyaç doğdu, RaspberyPi benzeri bir sisteme ekran bağlayıp oluşturulan terminallerle veri toplamak.
Amacımı gerçekleştirmek için daha önce duyduğum fakat hiç denemediğim Linux Mono kurulumu yaparak C# programlarımı Ubuntu sistem üzerinde çalıştırmayı deneyeceğim. Amacıma ulaşırken aynı programları hem Ubuntu hem de Windows üzerinde çalıştırarak her iki sistemde de çalıştığını görmek istiyorum.
Kurulumlarla başlayalım.
Selam bu yazımda Go programlama dili ile web uygulaması yazmasını inceliyorum.
Bu yazıda şunları görecekmişiz :