Blog

  • Ruby ve Temiz Kod Yazimi
    Bu yazımızda türkçe isimler kullanarak değişken ve metod isimleri kullandık, buradaki amacımız detaylı biçimde anlatım sağlayabilmek. Gerçek hayatta siz ingilizce olarak bu isimleri kullanırsanız hem geçerli bir standart ta yazmış olursunuz hemde programlama dilinin kendi diline uygun biçimde anlamlandırabilirsiniz. 1.Değişken İsimleri Anlamlı ve telaffuz edilebilir değişken adları kullanın; Kötü: İyi: Aynı değişken türü için aynı kelimeleri kullanın. Konsept için bir kelime seçin ve ona bağlı kalın. Kötü: İyi: Kapalı haritalamadan kaçının. Açık, kapalı olmaktan daha iyidir. Kötü: İyi: Gereksiz bağlam eklemeyin. Sınıf/nesne adınız size bir şey söylüyorsa, bunu değişken adınızda tekrarlamayın. Kötü: İyi: Koşullu ifadeler yerine varsayılan argümanları kullanın. Varsayılan argümanlar genellikle kısa devreden daha temizdir. Bunları kullanırsanız, yönteminizin yalnızca tanımsız bağımsız değişkenler için varsayılan değerler sağlayacağını unutmayın. false ve nil gibi diğer “sahte” değerler, varsayılan bir değerle değiştirilmeyecektir. Kötü: İyi: 2.Methodlar Yöntemler sadece bir şey yapmalı, Bu, yazılım mühendisliğinde açık ara en önemli kuraldır. Metotlar birden fazla şey yaptığında, oluşturması, test etmesi ve üzerinde akıl yürütmesi daha zordur. Bir yöntemi yalnızca bir eyleme ayırabildiğinizde, kolayca yeniden düzenlenebilirler ve kodunuz çok daha temiz okunur. Bu yazimizdan bunun dışında başka bir şey almazsanız, birçok geliştiricinin önünde olacaksınız. Kötü: İyi: Metod adları ne yaptıklarını söylemelidir, Kötü adlandırılmış metodlar, en iyi ihtimalle kod gözden geçirenin bilişsel yüküne katkıda bulunur ve en kötü ihtimalle kod gözden geçireni yanıltır. Metodlari adlandırırken kesin amacı yakalamaya çalışın. Kötü: İyi: Kapsülleme koşulları; Kötü: İyi: Kullanılmayan kodu kaldırın. Kullanılmayan kod, yinelenen kod kadar kötüdür. Kod tabanınızda tutmanız için hiçbir neden yok. Çağrılmıyorsa, ondan kurtulun! Hala ihtiyacınız varsa, sürüm geçmişinizde hala güvende olacaktır. 3.Nesneler ve Veri Yapıları Getter ve setter kullanın, Nesneler üzerindeki verilere erişmek için getter ve setter kullanmak, bir nesne üzerinde bir özellik aramaktan daha iyi olabilir. Kötü: İyi: Alternatif olarak, getter ve setter tanımlamak için attr_accessor kullanmalısınız. Bu, özellikle verileri sistemin diğer bölümlerine (örneğin, ActiveRecord nesneleri, uzak…

    Devamini Oku
  • Rspec ve Ruby on Rails kullanarak Test Odaklı Geliştirme (TDD).
    Test Odaklı Geliştirme (TDD) nedir? Yazdığınız testler ile kodunuzun geliştirilmesinin ileriye taşındığı bir yazılım geliştirme sürecidir. Karşıt-sezgisel görünebilir, ancak TDD ile başarısız olacak testler yazarsanız ardından bu testleri geçecek kod yazarsınız. Burada aslinda iki kural vardir. İlk önce başarısız bir otomatik testiniz olmadıkça bir satır yeni kod yazmayın. Yinelemeyi Ortadan Kaldirin Bu kurallar bizi TDD’nin Red / green / refactor yöntemine götürür. Oluşturduğunuz ilk test başarısız olacak ve ardından testi geçmek için gerekli kodu yazacaksınız. Kırmızı, başarısız olduğunu ve yeşil, geçtiğinizi gösterir. Ancak, yeşil işinizin bittiği anlamına gelmez. Testi geçtikten sonra, yazdıklarınızı yeniden düzenlemeniz gerekecek. Neden önce test etmelisiniz? İlk önce test etmek, hataları ve kod tabanınızın boyutu ve karmaşıklığı arttıkça yeniden düzenleme ihtiyacını en aza indirebilir. İyi yazılmış ve test edilmiş kodla başlamak, maliyet ve zamandan da tasarruf sağlayabilir. Testler ayrıca bir uygulamadaki özelliğiniz için belge görevi görebilir. Takımdaki diğer geliştiriciler testlerinizi okuyabilir ve kodunuzun neyi başarmak istediğini kolayca anlayabilir. Önce testleri oluşturarak, test ettiğiniz işlevin çalışmasının amaçlandığı şekilde çalıştığından ve hattın ilerisindeki sürprizlerden kaçınıldığından emin olabilirsiniz. Rspec nedir? Ruby’de yazılmış, alana özgü bir dildir ve özellikle test yazımı için tasarlanmıştır. Ruby uygulamalarını test etmek için kullanılır. Bununla birlikte, RSpec-rails olarak adlandırılan Ruby on rails uygulamalarını test etmek için bir gem’de vardır. Bu eğitimde, Rspec’in rails test sürümünü kullanacağız. Kurulum Yeni bir rails uygulaması oluşturalım. Terminali açalım ve uygulamayı oluşturmak istediğiniz dizinde bu komutu çalıştıralım -T eklentisini kullanmamızın nedeni, bu yazimizda Rspec kullanacağımızdan, rails’in Mini-testinin yüklenmesini önlemektir. Rspec Gem’ini, gem dosyasının geliştirme ve test bölümüne eklediğinizden emin olun. Gem rpsec-rails sürümünüz farklı olabilir. Bundan sonra, terminalde asagidaki komutu çalıştırmaniz gerekecektir. Bu kod ile ekledigimiz gem’i kullandigimiz ruby surum dizinine yukleyecegiz. Gem’i yukledigimize gore simdide Rspec-rails icin gerekli dosyalari olusturmak icin asagidaki komutu girelim; Artık test için ayarlandığımıza göre, RSpec sözdizimlerinin bazılarının üzerinden geçelim. Önemli anahtar kelimeler describe context it…

    Devamini Oku
  • Rails 6.1 ve Webpacker ile Datatables Kurulumu (Bootstrap 5 temasina uygun style/js dosyasi ile)
    Oncelikle datatables’in core kodlarini iceren paketimizi yarn aracigiliyla yukliyelim: Bu paket sadece basit haliyle datatables’i yukleyecektir her hangi bir tus, form, responsive paketleri icinde bulunmuyor ek paketler icin buradaki link ten orneklere bakabilirsiniz: https://datatables.net/download/npm Datatables Jquery ile calismakta oldugu icin onceki dersimizde Jquery kurulumunu takip ederek Jquery’i de kurmamiz gerekcektir. Datatables paket halinde bootstrap 5 temasiyla suanda gelmedigi icin biz tema css dosyamizi direk kendimiz ekliyecegiz asagidaki kodu alin ve yeni bir css dosyasinin icine yapistirin adinda datatables-bs5.css diyebilirsiniz (bootstrap5 temasini istemeyen arkadaslar bu asamayi atliyabilirler): Ve yeni dosyamizi app/javascript/stylesheets/ klasoru icine kayit edebiliriz. Bu sayede webpacker’a tanitacagiz. Ayrica bu temanin js olarak calisabilmesi icinde asagidaki kodu kopyalayin ve datatables-bs5.js olarak kayit edebilirsiniz bu dosyamizida app/javascript/js/ klasoru icine koyacagiz: Simdi ise webpacker’a tanitalim app/javascript/packs/application.js dosyamizi aciyoruz ve icine asagidaki kodu ekliyoruz (dosya adiniz degisikse burada ismini ona gore degistiriniz benim datatables-bs5.js): Ayrica style dosyamizi tanitmak icin de app/javascript/stylesheets/application.scss dosyasini acalim ve icine asagidaki kodu ekliyelim (dosya adiniz degisikse burada ismini ona gore degistiriniz benim datatables-bs5.css): Ve herhangi bir HTML sayfamiza gelip tablo olusturursak ornegin: Ardindan bu tablomuzu datatables olarak calistirmak istiyorsak asagidaki basit js kodunu sayfamiza eklememiz gerekiyor: Bu kodumuz Jquery kullanilarak #example id tanimlanmis tablomuzu en basit .DataTable(); formatina cevirecektir. Eger daha gelismis ozellikler eklemek istiyorsaniz datatables’in kendi websayfasindan orneklere bakabilirsiniz ornegin: https://datatables.net/examples/basic_init/filter_only.html Ve sayfamizi yeniledigimizde artik tablomuzun filtreli, siralamali bir hal aldigini goreceksinizdir. Eger Boostrap 5 temasini istemiyor iseniz datatables’in kendi tema paketini yukliyebilirsiniz bunun icinde tekrar yarn araciligiyla paketi yuklememiz gerekiyor: ve Bu tema dosyasini yukledikten sonra bunu app/javascript/stylesheets/application.scss dozyasinin icine tanimlamamiz gerekiyor: Bu durumda temamiz eklenmis olacaktir, fakat dosyalarda .png .img hatalari alanlar icin paket datatables’in kullandigi resimleri kullanamadigi icin kendimiz bunlari app/javascript/images klasoru icine eklememiz gerekli. ornegin sort_desc_disabled.png dosyasi gibi bu paketi olustur olusturmaz Bu yazimizin icine ekleyecegim.
  • Rails 6.1 ve Webpacker ile Jquery Kurulumu
    Bu yazimizda en hizli sekilde nasil Jquery kutuphanesini rails 6.1 uygulamamiza ekliyecegimizi gorecegiz: Oncelikle terminalden yarn ile Jquery paketimizi yukliyelim: Jquery’i simdi webpacker’a tanitmak icin bir kac yol var fakat burada ben en hizli seklini yazacagim, app/javascript/packs/application.js dosyamizi acalim ve icine asagidaki kodlari ekliyelim: Jquery’i paket icine cagirip ardindan window.$ sayesinde uygulama icinde de kullanabilecegiz. Artik Jquery JS kutuphanesini Rails uygulamamizda kullanabiliriz.
  • Rails 6.1 ve Webpacker ile Fullcalendar Kurulumu
    Bu yazimizda cok kullanilan takvim paketini Rails 6.1 uygulamamiza webpacker araciligiyla nasil entegre edecegimizi gorecegiz: https://fullcalendar.io Fullcalendar’in en yeni surumu sayesinde artik Jquery ihtiyaci olmadan tamamen vanilla js ile yazilmis paketi kullanmak mumkun bunun icinde yarn araciligiyla gerekli paketleri yuklemeye basliyabiliriz: Takvim uygulamalari kullanabilmek icin tarih manipulasyonlari gerceklestirebilecegimiz paketide yukleyebiliriz moment.js paketlerimizi yukledigimize gore artik Rails uygulamamiza bunlari ekliyebiliriz, oncelikle app/javascript/packs/application.js dosyasini acalim ve icine asagidaki kodlari ekliyelim: window.paket kodlari sayesinde paketlerimizi HTML dosyamizin icindede js kodu calistirarak kullanabiliyoruz. Webpacker ile stylesheet dosyalarimizi kullanabilmek icin stil dosyalarimizi artik paket halinde tanitmamiz gerekiyordu eger yapmadiysak, app/javascript klasoru icine stylesheets adinda bir klasor olusturalim ve bu klasorun icine application.scss adinda bir dosya olusturalim Rails tarafindan bu degisikligin taninmasi icin app/views/layouts/application.html.erb dosyasini acalim ve stylesheet_link_tag kodunu stylesheet_pack_tag ile degistirelim son goruntu su sekilde olacaktir: Bunun ardindan app/javascript/stylesheets/application.scss dosyasini acabiliriz ve icine full calendar in stil dosyalarini ekliyebiliriz: Takvimi ana sayfamiza eklemek istersek kisaca HTML dosyamizi acalim ve icine asagidaki kodu ekliyelim: Takvimin calisabilmesi icin javascript ile aktif hale getirmemiz gerekiyor, javascript kodumuzu sayfanin sonuna </body> bitmeden once ekliyebiliriz: webpacker/rails serverlimizi tekrar baslatalim ve artik takvimimiz ekranda gozukecektir.
  • Rails 6.1 Webpacker 5 ile Resimleri Paketleme
    Bu yazimizda Webpacker 5 in Rails uygulamalari icinde kullanim yapisina bakacagiz: https://github.com/rails/webpacker Webpackerin yapisi uygulama icinde asagidaki gibi olacaktir bu sayede kullandigimiz butun js, css, ve resim dosyalarimizi webpacker sayesinde bir paket halinde derliyebiliriz: app/javascript/images icine webpacker in paketlemesini istedigimiz resimleri koyalim bunlar logo olabilir yada ornegin tarayicidaki kucuk icon olabilir. Ardindan resimleri pakete tanitabilmek icin application.js dosyasinin icine asagidaki kodu ekliyelim: Bu sayede images/ klasoru altindaki resimler webpacker tarafindan algilanacaktir. Bu resimleri rails uygulamamizda kullanabilmek icin asagidaki kodu: yada sirf bunun icin olusturulmus yardimci araciligiyla: kolayca resimleri kullanabiliriz. Tarayici iconu icin ise asagidaki kodu <head></head> araligina eklememiz yeterli olacaktir: Eger paket icindeki resimleri css icinde kullanmak istiyorsaniz asagidaki gibi kullanabilirsiniz:
  • Rails 6.1 ve Webpacker ile Fontawesome Kurulumu
    Daha onceki yazimizda boostrap 5 kurulumunu gerceklestirmistik. https://erimicel.com/2021/04/20/rails-6-1-ve-webpacker-ile-bootstrap-5-kurulumu/ Bu yazimizda ise yaygin olarak kullanilan font icon paketi fontawesome paketini nasil yukleyecegimizi gorecegiz. Konsolu acalim ve uygulamamizin icine girelim ardindan asagidaki kodu calistirarak fontawesome paketini yukleyelim: javascript/packs/application.js dosyasini acalim ve icine asagidaki kodu ekliyelim: Aslinda kurulum bukadar basit artik Rails uygulamamizda fontawesome icon larini kullanabiliriz. Icon galeriye buradan ulasabilirsiniz: https://fontawesome.com/icons?d=gallery
  • Rails 6.1 ve Webpacker ile Bootstrap 5 kurulumu
    Bu yazimizda Rails 6.1 uygulamamiz icin webpacker araciligiyla nasil bootstrap 5 temasini yukleyecegimizi gorecegiz. Ayrica Webpacker kullanimina ornek olusturacak Rails icin gerekli degisiklikleri bu yazimizda da gerceklestirecegiz. Webpacker cogu arkadasin Rails uzerinde kafasini karistirmakta. Yeni Rails Uygulamasi Olusturalim Baslangic sayfasi olmasi icin hosgeldin adinda bir tane controller ve index adinda sayfa olusturalim: config/routes.rb dosyasini acalim ve asagidaki gibi varsayilan baslangic sayfasini degistirelim: Rails uygulamamizi baslatalim: ve localhost:3000 sayfasini actigimizda karsimiza hosgeldin#index icindeki HTML dosyamizin geldigini goreceksinizdir. Dosyaya buradan ulasarak degisiklikler yapabilirsiniz: app/views/hosgeldin/index.html Suanda herhangi bir stil yerlestirmedik. Gelin bootstrap 5beta3.0 i yuklemeye basliyalim. Bunun icin terminale: Yazarak yarn araciligiyla bootstrap paketlerimizi yukluyoruz. Webpacker ile kullanabilmek icin bazi klasor ve dosya olusturalim: Bu kodumuz app/javascript icinde js adinda bir klasor ve o klasorun icinde ise bootstrap_js_files.js adinda bos bir dosya olusturacaktir. bootstrap_js_files.js dosyasini acalim ve icine asagidaki kodlari yazalim bu kodlar bootstrap paketinde gelen ayri ayri pluginleri eklememize ve eger istemedigimiz bir plugin varsa inaktif etmemize yaracaktir. Simdi app/javascript/packs/application.js dosyasini acalim ve icine asagidaki kodu ekliyelim: Bu sayede webpacker bootstrap js dosyalarini artik derliyecektir. Webpacker ile kullanabilmek icin style css dosyalarimizida tanitmamiz gerecektir. Bunun icin varsayilan bir Rails uygulamasiyla gelen style semasi isimize yaramayacak. O zaman asagidaki komutu girerek kendi stylesheet imizi paket halinde olusturalim: ve olusturdugumuz bu dosyayi acarak icine bu kodu girelim: Simdi bu degisikligi yaptigimiz icin Rails’a stil dosyamizin nerede oldugunu belirtmemiz gerekiyor. app/views/layouts/application.html.erb dosyasini acalim ve stylesheet_link_tag yerine stylesheet_pack_tag ile degistirelim son gorunum bu sekilde olacaktir: Artik bootstrap 5 Rails uygulamamizla sorunsuz calisacaktir. Bunu denemek ve derlemek icin Webpackeri kullanabiliriz: Ve Rails uygulamamizi baslatalim: Artik bootstrap 5 temasini kullanabiliriz. https://getbootstrap.com/docs/5.0/getting-started/introduction/
  • Ruby 3.0.0 ve Ruby on Rails 6.1 MacOS Kurulumu
    Merhaba Arkadaslar, Bu yazimizda MacOS 11.0 Big Sur icin Ruby on Rails kuracağız. Terminalinizde ZSH kullanma MacOS Catalina, Bash olan varsayılan terminali ZSH olarak değiştirdi. Sonuç olarak, geçmişte kullandığımız gibi ~ / .bash_profile yerine ~ / .zshrc’ye yapılandırmalar ekleyeceğiz. Aşağıdaki komutu çalıştırarak istediğiniz zaman Bash’den ZSH’ye manuel olarak geçiş yapabilirsiniz: Homebrew Kurulumu Öncelikle Homebrew’u kurmamız gerekiyor. Homebrew, yazılım paketlerini kaynaktan kolayca kurmamızı ve derlememizi sağlar. Homebrew, çok basit bir kurulum betiği ile birlikte gelir. XCode CommandLine Araçlarını kurmanızı istediğinde, evet deyin. Terminal’i açın ve aşağıdaki komutu çalıştırın: Ruby Kurulumu (3.0.1) Artık Homebrew’u kurduğumuza göre, Ruby’yi kurmak için kullanabiliriz. Ruby sürümlerimizi kurmak ve yönetmek için rbenv kullanacağız. Bunu yapmak için, Terminalinizde aşağıdaki komutları çalıştırın: Rails Kurulumu (6.1.3.1) Rails’i kurmak, Terminalinizde aşağıdaki komutu çalıştırmak kadar basittir: Rails artık kuruldu, ancak kullanabilmemiz için rbenv’e onu görmesini söylememiz gerekiyor: Veritabanı Kurmak Rails, varsayılan veritabanı olarak sqlite3 ile birlikte gelir. Muhtemelen onu kullanmak istemeyeceksiniz çünkü diskte basit bir dosya olarak saklanıyor. MySQL veya PostgreSQL gibi daha sağlam bir veritabani isteyeceksiniz. Fakat yinede sqlite3 kullanmak isteyenler icin Homebrew ile yerleşik gelen sqlite3’ü kurabiliriz: MySQL MySQL sunucusunu ve istemcisini Homebrew’den kurabilirsiniz: Bu komut bittiğinde, çalıştırmanız için size birkaç komut verir. Talimatları izleyin ve çalıştırın: Varsayılan olarak mysql kullanıcısı şifresiz root‘tur. PostgreSQL PostgreSQL sunucusunu ve istemcisini Homebrew’den kurabilirsiniz: Bu komut bittiğinde, çalıştırmanız için size birkaç komut verir. Talimatları izleyin ve çalıştırın: Varsayılan olarak postgresql kullanıcısı, şifresiz mevcut OS X kullanıcı adınızdır. Örneğin, OS X kullanıcımın adı erimicel yani bu kullanıcı adıyla postgresql’de oturum açabiliyorum. Rails Uygulamasi Olusturmak İlk Rails uygulamanızı oluşturalım: Artık yeni web sitenizi görüntülemek için http://localhost:3000‘i ziyaret edebilirsiniz! Artık makine kurulumunuzu yaptigimiza göre, bazı Rails uygulamaları oluşturmaya başlamanın zamanı geldi. ‘Root’ @ ‘localhost’ kullanıcısı için Erişim reddedildi şeklinde bir hata aldıysanız, o zaman veritabanı kullanıcı adı ve şifresiyle eşleşecek şekilde config/database.yml dosyanızı güncellemeniz gerekir.