Daha önce yazı çevirilerim kendimce olmuştu ama kimsenin huzura açmamıştım. Bir süre önce okuduğum ve oldukça hoşuma giden “Want to learn to code? Start here” başlıklı Zack Shapiro’ya ait yazıyı, yazarında iznini alarak Türkçe’ye çevirdim. Evet bir takım hatalarım olabilir. Eğer hataları fark eder ve bana ulaşırsanız, yazıyı daha iyi bir hale birlikte sokabiliriz. Ayrıca yazarı @zackshapiro Twitter adresinden takip edebiliriniz. İşte orjinali burada olan yazının çevirisi;
Ruby Kod Düzenleyici: Rubocop
Kod yazmanın ayrı bir yetenek olduğuna ben de katılıyorum. Üstünde uğraştığınız programlama dilinin özelliklerini biliyor olabilirsin. Özelliklerden kastım, kullanım şekilleri gibi. Ancak temiz ve anlaşılır kod yazmanın genel olarak olmasa bile programlama dillinden diline değişen bazı durumları olduğunu unutmamak gerek. Ayrıca bu gibi özellikleri dikkate almak, kodu sonradan okuyan insan için müthiş kolaylık olacaktır. Çünkü bu tarz tanımlamalar, kodu daha verimli hale getirmek için hazırlanmıştır.
Ruby ile çalışanlar bilir ki Ruby zaten kendi içinde siz istemesiniz bile sizi güzel ve düzgün kod yazmaya doğru götürür. Ancak gene bilen bilir ki “süper” kod yazmakta her programlama dilinde olduğu gibi Ruby’de de mevcuttur. Önceki zamanlarımda benimle paylaşılan ve zaman zaman yardımına ihtiyaç duyduğum Ruby Style Guide kodunuzu güzelleştirmeniz için hazırlanmış bir rehber. Ancak durup durup bu rehbere bakmak bazı zamanlar kafa karışıklıklarına neden olabiliyor. Zaten dikkatli yazdıktan bir süre sonra sizde rehber gibi olabiliyorsunuz. Ama hepimiz insanız ve şaşarız beşeriz. O yüzden kodumuzu tekrardan bir kontrol ettirmek isteyebiliriz. Bu durum da rehbere dönüp tek tek bakmak sanırım biraz zaman kaybı olacaktır. Tek çözüm kodu analiz eden bir kütüphanenin olması.
5 Dakika Daha
Herkesin annesi ya da babası demiştir, “Akşam yatmak bilmezsin, sabah kalkmak bilmezsin.” Akşamları bilmem de sabah kalkışları cidden hep mi rötarlı olur?
Bir çoğumuz alarm ile uyanıyoruz. Hep istemişimdir, alarmım vücudum olsun ama olmuyor, yapamıyorum. E tabi geceleri geç yatıp, gündüzleri erken kalkmak gerekirce alarma köle oluyor insan. Ancak alarmaların erteleme tuşları ile normal kalkmamız gereken zamandan daha da geç vakitte kalkıyoruz ve bu durum da bize belki 10-15 dakika daha fazla uyutsa bile bizden aldıkları da oluyor. İşte durumu güzel özetleyen bir video.
Uyandırılma Yöntemleri
Uyumak güzeldir ve kimse uyanmak istemez. Hele ki kendileri dışında gerçekleşen olaylardan ötürü uyandırılmak genelde insanları deliye döndürür. Ancak durumu bazen abartan arkadaşlar vardır. O arkadaşlar işte öpülesidir. Ama arkadaşlar iyidir.
ImageMagick Hatası
Özellikle resim yükleme gibi işlerle uğraşırken karşımıza çok çıkan bir problemden bahsetmek istiyorum. Gerçi öncelikli çözüm basit ancak versiyon yükselmesi ile ortaya derlenememe gibi problemler çıkıyor.
Eğer sizde OSX kullanıyor ve dosya yüklemek için CarrierWave gem’ini seçiyorsanız, bilgisayarınıza yüklemeniz gereken öncelikle brew üzerinden imagemagick olmalı
1
| |
Umut Satanlar
Bazı insanlar diğerlerine umut satarlar. Onların görmek ve duymak istediklerini gösterirler onlara. Hayatlarına adeta başka bir hayat katarlar. Ama herşey bir ilizyondan ibarettir.
Rails Routing
Kendi projelerim üzerine çalışırken bir çok zorlukla karşılaşıyorum. Tabi ki insan kendini hep zora yönlendirirse karşılaştığı problemlerde bir o kadar zor olabiliyor. Aslında zor diye bir kanı oluşturmuyorum kafam da ama yapmak istediklerim ve daha önce yapılmış olanlardan farklı işler çıkartmak istemek bazen insanı zora sokabiliyor.
Bugün anlatcaklarım o kadar zor olmasa da daha önce Rails ile geliştirme yaparken karşılaşmadığım sorunlardan. Küçük bir araştırma ile çözüme ulaştım. Öncelikle sorun bende değil sanıyordum ancak bendeymiş. Klasik davranışın dışına çıkmam gerekiyormuş.
Normal bir routes.rb dosyasında şu satırları görmek mümkün.
1
| |
Evet hepimizin nickleri yani takma adları içinde herhangi bir noktalama işareti olmazsa durum güzel. Peki olursa? Olursa, Rails, yukarıda routes file’daki kodu çalıştırdığında takma adın noktalama işaretli kısmına kadar olanını alıyor. Misal takma adım ender_yurt ise url de görünecek olan ../users/ender oluyor ve bu da doğal olarak sayfa bulunamadı hatasına neden oluyor. Çünkü o isim de bir kullanıcı mevcut değil. Çözüm ise basit,
1
| |
Regex ile parametremizin kısıtlamlarını belirtiyoruz. Takma adlar artık noktalama işareti içerse bile sorunsuz şekilde işliyor. ender_yurt kullanıcı adımı alıp, controller’a gönderiyor ve doğru kişiyi bulup bize istediğimiz sayfayı dönüyor.
Referanslar
Wicked PDF
Bir süredir işim gereği HTML ile oluşturulmuş bir dosyayı PDF’e çevirme yolları arıyorum. Ruby on Rails ile geliştirme yaptığım için gem’leri kullanmak daha çok işime geliyor. Gerekli olan sadece yazılmış olan bir HTML dosyasını direk PDF’e dönüştüren bir gem. Ruby Tool Box‘da bu duruma çözüm olabilecek bir çok gem bizler için bulunuyor. Yaklaşım tarzınıza göre istediğinizi kullanabilirsiniz. Ben bir kaç araştırma ile kendime ait bir gem buldum. Adı WickedPDF.
Markup Language’de Yeni Bir Bakış HAML
Bu konuda Türkçe fazla yayın olmadığı için eski bir yazımı tekrar buradan paylaşıyorum.
Türkiye’de web alanında kıpırdaşmalar var ancak bu konuda hala Dünya’yı yakalayabildiğimizi sanmıyorum. Biz bence millet olarak yeni şeyler denemekten korkuyoruz. Eski olanı tutmak ve onun üstüne bir şeyler inşaa etmek daha çok işimize geliyor. Yeni olan bize hep itici geliyor. Neyse uzatmadan bahsetmek istediğim konuya değineyim. Yıllarca metin tabanlı görüntüleme dili olarak HTML kullandık. Son zamanlarda HTML5 ile kendini iyiden iyiye aşmış bir teknoloji olsa da Ruby on Rails ile çalışanlar bilir ki görüntüleme dil sadece HTML’den ibaret değil.
Sayın Yolcularımız..
“Sayın yolcularımız, lütfen sarı çizgiyi geçmeyiniz.” Sinir bozucu değil mi? Koca koca insanlara şunu bunu yapmayın diyen bir kadın ya da kibar erkek sesi. Gerçi tam olarak emir gibi yok bir kibarlık var ama genede insan alınıyor. “Ben mi geçicem sarı çizgiyi? Canıma mı susadım ayol ben?”