İçeriğe geç

Ruby on Rails Haftası #3 | Rails Dizin Yapısı

Tahmini Okuma Süresi: 6 dakika

Önceki makalemizde, Rails MVC Framework yapısından bahsetmiş, hem framework hakkında hem de MVC (Model-View-Controller) yapısı hakkında önemli bilgileri ele almıştık. Bugün ise Rails’de klasör/dizin yapısını, hangi dizinde hangi dosyayı ve özellikleri bulabileceğimizi gözden geçireceğiz. Yarın ki yazımızda ise küçük örneklerle Ruby on Rails’in tadına bakacağız : )

Ruby on Rails Haftası #2 | Rails MVC Framework

 

Ruby on Rails Dizin Yapısı

Eğer ‘Rails helper script’ yapısı ile uygulamanızı oluşturursanız, tüm dizin yapısını uygulamanıza uygun şekilde hazırlayabilirsiniz. Bu yapı sayesinde Rails ihtiyacı olan şeyleri nereden bulabileceğini bilir, bu nedenle herhangi bir girdi sağlamak zorunda olmazsınız. Ki bu zaten işimizi en kolay hale getiren şey olabilir.

Kurulum sonrasında ‘rails new demo’ komutu ile bir demo uygulama oluşturursanız, ‘helper script’ sayesinde ihtiyacınız olan dosya/dizin düzenini oluşturmuş olursunuz.  Versiyonlar arasında ufak değişiklikler olsa da, her Rails uygulaması neredeyse aynı düzen ve isimlendirmeye sahip olur.

Bu tutarlı yapı, her seferinde sistemi yeniden öğrenmenize gerek olmadan farklı projeler ve güncellemelerle rahatlıkla çalışmanızı sağlar.

Şimdi bu dizin mimarisinin ana başlıklarını öğrenmek için, oluşturduğumuz ‘demo’  uygulamanın dizin yapısını inceleyelim.

Öncelikle demo uygulamamızın kök dizinine şu komutu kullanarak gidelim:

emre> cd demo
ruby\demo> dir

İşte tam şu anda aşağıdaki gibi bir dizin yapısı bulacaksınız.

 

Şimdi bu dizinlerin amacından, emelinden bahsedelim biraz:

  • app: Uygulama bileşenlerinizin yapısının organize edildiği dizin burası. Meşhur MVC mimarisinin dizinleri de ‘app’ dizini içerisindedir.
  • app/controllers: ‘Controllers’ alt dizini, Rails’in denetleyici yani sistem yönlendiricilerini bulmak için baktığı dizindir. Controller, kullanıcıdan gelen web isteğini (Web Request) kaydeder ve işler.
  • app/helpers: ‘Helpers’ dizininde, MVC sınıflarının ihtiyacı olan yardımcı sınıflar bulunur. Bu kısım MVC yapısına ait kodların, küçük, sıkıştırılmış ve düzenli olarak çalışmasına yardımcı olur.
  • app/models: ‘Models’ alt dizini, veri tabanında depolanan verilerin model yapısını ve paketlerini içerir. Aslında çoğu frameworke baktığımızda bu kısım, uygulamamızın en dağınık, sıkıcı, ayrıntılı ve hataya en meyilli kısmıdır. Ancak Rails bunu son derece basitleştirmiştir. (Uygulama örneklerimizde daha net göreceğiz.)
  • app/view: ‘View’ alt dizini, verileri doldurmak için ekran şablonlarını tutar. Uygulamamızın, HTML yapısını oluşturur ve kullanıcının tarayıcısında çalışmaya hazır hale getiririz.
  • app/view/layouts: Tarayıcı görünümünde kullanacağımızı layout yapılarının şablonlarını kaydedeceğimiz dizindir. ‘Layouts’ dizininde genellikle ortak olarak uygulamamızın genelinde bulunan ‘header/footer’ gibi alanların şablonunu tutarız. View alanınızda ‘<tt>layout:default</tt>’ kodunu kullanarak varsayılan şablonu oluşturun ve adını ‘default.rhtml’ olarak kaydedin. ‘default.rhtml’ dosyamızın içinde şablonlarımızı göstermek için de <% yield %> kodunu kullanırız. Bu bize dinamik verileri göstermemizi sağlar.
  • components: Bu dizinde bileşenleri, modeli, görünümü ve denetleyiciyi paketleyen kendi kendine yeten küçük paketler bulunur.
  • config: Bu dizin, veritabanı yapılandırması (database.yml), Rails ortam yapınız (environment.rb) ve gelen web isteklerinin yönlendirilmesi (routes.rb) dahil olmak üzere, uygulamanızın ihtiyaç duyacağı yapılandırma kodlarını içerir. Testler, geliştirme ve dağıtım için üç Rails ortamının davranışını ortamlar dizininde bulunan dosyalarla da uyarlayabilirsiniz.
  • db: Genellikle, Rails uygulamanız ilişkisel veritabanı tablolarına erişen model nesnelerine sahip olacaktır. Ancak ihtiyaç halinde ilişkisel veri tabanını, oluşturduğunuz ve bu dizinde yerleştirdiğiniz komutlarla yönetebilirsiniz.
  • doc: Ruby, oluşturduğunuz kod için dokümantasyon oluşturabilen RubyDoc adlı bir frameworke sahiptir. RubyDoc’a kodunuzda yorum satırlarıyla yardım edebilirsiniz. Bu dizin, tüm RubyDoc tarafından oluşturulan Rails ve uygulama belgelerine sahiptir.
  • lib: Kullanacağınız kütüphanelerinizi bu dizine yerleştirerek erişime açabilirsiniz.
  • log: Hata kayıtlarınız bu dizinde tutulacaktır, Rails ‘log’ dizininde, çeşitli hata kayıtlarını düzenlemeniz için komutlar oluşturarak size yardımcı olur. Sunucu (server.log) ve her Rails ortamı (development.log, test.log ve production.log) için ayrı kayıtları bulabilirsiniz.
  • public: JavaScript dosyaları (public / javascripts), grafikler (public / images), stil sayfaları (public / stylesheets) ve HTML dosyaları (public) gibi bir web sunucusunun genel dizini gibi bu dizinde değişmeyen web dosyaları bulunur.
  • script: Bu dizinde, Rails ile birlikte kullanacağınız çeşitli araçları başlatmak ve yönetmek için komut dosyaları bulunur. Örneğin, kod üretmek (üretmek) ve web sunucusunu (sunucu) başlatmak için komut dosyaları vardır.
  • test: Rails için otomatik oluşturulan testler ve sizin yazdığınız testler tümüyle bu dizinde kayıt altına alınır. Mocks (mocks), unit tests (unit), fixtures (fixtures), ve functional tests (functional) gibi test yapılarını görebilirsiniz.
  • tmp: Rails bu dizini ara işlemler sırasında geçici dosyaları tutmak için kullanır.
  • vendor: Üçüncü taraf sağlayıcıların sağladığı kütüphaneleri (güvenlik kütüphaneleri veya temel Rails dağıtımının ötesinde veritabanı araçları gibi) bulmak için bu dizine göz atın.Bu dizinlerin dışında, demo dizininde iki dosya daha mevcut olacak.
  • README: Bu dosyada ise Rails uygulamanız ve onun dizin yapısı hakkında açıklamalar yer almaktadır.
  • Rakefile: Bu dosya Unix Makefile’ye benzer; bu da Rails kodunun oluşturulması, paketlenmesi ve test edilmesine yardımcı olur.

Bugünkü yazımız, Rails’in varsayılan dizin yapısı hakkında temel bilgileri içermesi bakımından anlaşılması son derece önemli olan bir yazıydı. Bu dizin yapısını öğrenmek geliştirme sırasında hız kazanmanıza, hata olan kısımları daha çabuk bulup çözmenize yardımcı olacaktır.

Lütfen takıldığınız kısımları sormaktan çekinmeyin. Ve en önemlisi, paylaşarak destek olmayı unutmayın. Okuduğunuz için teşekkür ederim, iyi çalışmalar 🙂

 

Kaynaklar

http://www.lauyou.com/wp-content/uploads/2016/12/00-Ruby-on-rails-Directory-structure.jpg

https://www.tutorialspoint.com/ruby-on-rails/

Tek Yorum

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir