{"id":1459,"date":"2025-01-15T12:31:03","date_gmt":"2025-01-15T09:31:03","guid":{"rendered":"https:\/\/kamp.linux.org.tr\/2025-kis\/?page_id=1459"},"modified":"2025-01-20T12:12:34","modified_gmt":"2025-01-20T09:12:34","slug":"rails-ve-hotwire-ile-modern-web-mobil-uygulamalari","status":"publish","type":"page","link":"https:\/\/kamp.linux.org.tr\/2025-kis\/kurslar\/rails-ve-hotwire-ile-modern-web-mobil-uygulamalari\/","title":{"rendered":"Rails ve Hotwire ile Modern Web\/Mobil Uygulamalar\u0131"},"content":{"rendered":"\n<p>E\u011fitmenler: <a href=\"https:\/\/kamp.linux.org.tr\/2025-kis\/egitmenler\/tayfun-erikan\/\" data-type=\"page\" data-id=\"1591\">Tayfun Erikan<\/a>, <a href=\"https:\/\/kamp.linux.org.tr\/2025-kis\/egitmenler\/huseyin-biyik\/\" data-type=\"page\" data-id=\"1594\">H\u00fcseyin B\u0131y\u0131k<\/a>, <a href=\"https:\/\/kamp.linux.org.tr\/2025-kis\/egitmenler\/guven-karabulut\/\" data-type=\"page\" data-id=\"1712\">G\u00fcven Karabulut<\/a>, <a href=\"https:\/\/kamp.linux.org.tr\/2025-kis\/egitmenler\/azim-can-kuruca\/\" data-type=\"page\" data-id=\"1714\">Azim Can Kuruca<\/a><\/p>\n\n\n\n<p class=\"mb10\"><a class=\"btn btn-lyk\" href=\"https:\/\/kayit.linux.org.tr\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kurslara kay\u0131t olmak i\u00e7in t\u0131klay\u0131n<\/a><\/p>\n\n\n\n<p>Ruby on Rails&#8217;i \u00f6\u011frenirseniz neler in\u015fa edebilece\u011finizi bir hayal edin\u2026<\/p>\n\n\n\n<p>Bu yeni y\u0131la Ruby on Rails \u00f6\u011frenerek ba\u015flayabilirsiniz. B\u00f6ylece tam donan\u0131ml\u0131 (full-stack) bir web geli\u015ftirici olarak daha mutlu, \u00fcretken, zahmetsiz ve h\u0131zl\u0131 \u015fekilde web uygulamalar\u0131 hayata ge\u00e7irmenin keyfini ya\u015fayabilirsiniz.<\/p>\n\n\n\n<p>Peki nas\u0131l m\u0131?<\/p>\n\n\n\n<p>Modern bir web uygulamas\u0131 olu\u015fturmay\u0131 \u00f6\u011frenmek \u00e7o\u011fu zaman g\u00f6z korkutucu olabilir. Ruby on Rails bunu \u00e7ok daha kolay ve e\u011flenceli bir hale getirmektedir. Harika web uygulamalar\u0131 olu\u015fturmak i\u00e7in ihtiyac\u0131n\u0131z olan her \u015feyi (hatta daha fazlas\u0131n\u0131) b\u00fcnyesinde bar\u0131nd\u0131ran Rails; model-view-controller (MVC), kendini tekrar etme (don\u2019t repeat yourself &#8211; DRY), convention over configuration (CoC) yakla\u015f\u0131mlar\u0131n\u0131 temel al\u0131r.<\/p>\n\n\n\n<p>Kampta Rails d\u00fcnyas\u0131 ile tan\u0131\u015farak bu ara\u00e7larla web uygulamas\u0131 geli\u015ftirme, kapsam belirleme ve kapsamlar\u0131 par\u00e7alara b\u00f6lme, proje y\u00f6netimi, uzaktan \u00e7al\u0131\u015fma k\u00fclt\u00fcr\u00fc, s\u00fcr\u00fcm kontrol sistemleri, versiyonlama, MVC, ORM, RESTful, test odakl\u0131 geli\u015ftirme, s\u00fcrekli entegrasyon (CI) ve uygulamalar\u0131n web sunucusuna yay\u0131nlanmas\u0131 gibi a\u015famalarda bilgi sahibi olman\u0131z ama\u00e7lanmaktad\u0131r.<\/p>\n\n\n\n<p>Ayr\u0131ca, Basecamp\u2019in ekosisteme hediye etti\u011fi Ruby on Rails ile birlikte sunulan HOTWIRE, Stimulus, Turbo ve Hotwire Native (iOS\/Android) gibi JavaScript ve Hybrit uygulama geli\u015ftirme ara\u00e7lar\u0131n\u0131n Rails ile birlikte nas\u0131l harikalar yaratt\u0131\u011f\u0131n\u0131 g\u00f6rme f\u0131rsat\u0131 bulacaks\u0131n\u0131z. Bu ara\u00e7lar sayesinde bir \u00e7ok katmana b\u00f6l\u00fcnm\u00fc\u015f, karma\u015f\u0131k, kendini tekrar eden, mikroservis yakla\u015f\u0131ml\u0131 \u201cJavaScript uygulamalar\u0131n\u0131n\u201d (SPA) aksine sunucu taraf\u0131nda olu\u015fturulmu\u015f HTML&#8217;leri bar\u0131nd\u0131ran, benzer kullan\u0131c\u0131 deneyimini ya\u015fatmak i\u00e7in JavaScript&#8217;i sadece \u201cbir ara\u00e7\u201d olarak g\u00f6ren ve ihtiyac\u0131 kadar kullanarak tek par\u00e7adan olu\u015fan (Monolithic) modern uygulamalar\u0131n web, mobil ve masa\u00fcst\u00fc platformlar i\u00e7in ba\u015far\u0131s\u0131 kan\u0131tlanm\u0131\u015f bu tekniklerle ne kadar h\u0131zl\u0131 bir \u015fekilde hayata ge\u00e7irilebilece\u011fini \u00f6\u011frenebileceksiniz.<\/p>\n\n\n\n<p>Hadi \u015fimdi siz de Ruby on Rails \u00f6\u011frenin ve bu harika ekosisteme dahil olarak web uygulamas\u0131 geli\u015ftirmenin alt\u0131n \u00e7a\u011f\u0131n\u0131 tekrar ya\u015fay\u0131n\u2026<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Kat\u0131l\u0131mc\u0131lar i\u00e7in \u00f6n-\u015fartlar<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bu kamp ana hatlar\u0131 ile Rails Guides i\u00e7eri\u011fine sad\u0131k kal\u0131narak haz\u0131rlanm\u0131st\u0131r.<\/li>\n\n\n\n<li>Kampta ba\u015far\u0131l\u0131 olmak ve kamp\u0131n sizin i\u00e7in daha verimli ge\u00e7mesini istiyorsan\u0131z mutlaka gelmeden \u00f6nce Rails Guides&#8217;a <a href=\"https:\/\/guides.rubyonrails.org\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/guides.rubyonrails.org<\/a> adresinden bir g\u00f6z atmal\u0131s\u0131n\u0131z.<\/li>\n\n\n\n<li>Temel Ruby bilgisine sahip olmal\u0131s\u0131n\u0131z.<\/li>\n\n\n\n<li>Web teknolojileri konusunda bilgi sahibi olmal\u0131s\u0131n\u0131z (HTTP, HTML, CSS, JS, SSL, GET\/POST, Session, Cookie, vs).<\/li>\n\n\n\n<li>OOP: Object-oriented programming \u2013 Nesne y\u00f6nelimli programlama bilgisine sahip olmal\u0131s\u0131n\u0131z.<\/li>\n\n\n\n<li>Ba\u015fka bir dilde MVC, ORM tasar\u0131m \u015fablonlar\u0131n\u0131 kullanan frameworkler kullanm\u0131\u015f olmal\u0131s\u0131n\u0131z.<\/li>\n\n\n\n<li>Herhangi bir VCS kullanm\u0131\u015f olmak ve tercihen Git biliyor olmal\u0131s\u0131n\u0131z.<\/li>\n\n\n\n<li>Gitlab, Github ya da benzeri bir Git servisinde hesaba sahip olmal\u0131s\u0131n\u0131z.<\/li>\n\n\n\n<li>SQL biliyor olmak ve PostgreSQL veri taban\u0131 hakk\u0131nda fikir sahibi olmal\u0131s\u0131n\u0131z.<\/li>\n\n\n\n<li>GNU\/Linux Sistem Y\u00f6netimi 0.5 E\u011fitimi konular\u0131na hakim olmal\u0131s\u0131n\u0131z.<\/li>\n<\/ul>\n\n\n\n<br \/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Kat\u0131l\u0131mc\u0131lar\u0131n kampta kullanmas\u0131 gereken donan\u0131m\/yaz\u0131l\u0131m:<\/strong><\/h3>\n\n\n\n<p>Geli\u015ftirme ortamlar\u0131n\u0131n haz\u0131rlanmas\u0131. Bu i\u015flem i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 takip edebilirsiniz.<br>Ubuntu GNU\/Linux da\u011f\u0131t\u0131m\u0131n\u0131 <a href=\"http:\/\/www.ubuntu.com\/download\/desktop\">http:\/\/www.ubuntu.com\/download\/desktop<\/a> adresinden bilgisayar\u0131n\u0131za kurabilirsiniz.<br>E\u011fer Ubuntu kuracaksan\u0131z, performans problemleri ya\u015famamak i\u00e7in i\u015fletim sistemini, sanal makine yerine, bilgisayar\u0131n\u0131z\u0131n herhangi bir b\u00f6l\u00fcm\u00fcne kurman\u0131z \u00f6nerilir.<br>Ubuntu veya macOS i\u00e7in <a href=\"https:\/\/github.com\/lab2023\/builder\">https:\/\/github.com\/lab2023\/builder<\/a> adresinde bulunan bash kurulum scripti\u2019ni kullanabilirsiniz yada <a href=\"https:\/\/guides.rubyonrails.org\/install_ruby_on_rails.html\">https:\/\/guides.rubyonrails.org\/install_ruby_on_rails.html<\/a> adresinden faydalanabilirsiniz.<br>Ayr\u0131ca DHH taraf\u0131ndan yay\u0131nlanan <a href=\"https:\/\/omakub.org\">https:\/\/omakub.org<\/a> &#8220;An Omakase Developer Setup for Ubuntu 24.04+ by DHH&#8221; inceleyip ihtiyac\u0131n\u0131za uygun kurulumlar\u0131 ger\u00e7ekle\u015ftirebilirsiniz.<br>Kimler Kat\u0131lmal\u0131:<br>Temel programlama bilgisine sahip, web\/mobil geli\u015ftirme alan\u0131nda kendini geli\u015ftirmek ve tam donan\u0131ml\u0131 bir geli\u015ftirici olmak isteyenler<br>Ruby on Rails ekosistemine ad\u0131m atmak isteyenler ve toplulukla tan\u0131\u015fmak isteyenler<br>Rails yeniliklerini \u00f6\u011frenerek modern web\/mobil projeleri geli\u015ftirmek isteyenler<br>Rails al\u0131nda deneyimi olup eksiklerini gidermek veya Rails&#8217;in hen\u00fcz kullanmad\u0131klar\u0131 i\u015flevlerini deneyerek ufkunu geni\u015fletmek isteyenler<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>E\u011fitim i\u00e7eri\u011fi<\/strong><\/h2>\n\n\n\n<p><strong>Giri\u015f<br><\/strong>Bu b\u00f6l\u00fcmde Rails&#8217;in ilke ve g\u00f6r\u00fc\u015flerini anlayarak Rails felsefesini ve ekosistemini tan\u0131yaca\u011f\u0131z.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rails Doktrini: Ruby on Rails \u0130lke ve G\u00f6r\u00fc\u015flerini Anlamak (Bkz: <a href=\"https:\/\/speakerdeck.com\/tayfunoziserikan\/rails-doktrini\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/speakerdeck.com\/tayfunoziserikan\/rails-doktrini<\/a>)<\/li>\n\n\n\n<li>Rails nedir \/ ne de\u011fildir?<\/li>\n\n\n\n<li>Rails kimler i\u00e7indir?<\/li>\n\n\n\n<li>Rails ekosistemininin tan\u0131t\u0131m\u0131<\/li>\n<\/ul>\n\n\n\n<p><strong>Temel Bilgiler<br><\/strong>Bu b\u00f6l\u00fcmde Rails&#8217;i daha verimli kullanabilmek i\u00e7in gerekli temel bilgileri edinece\u011fiz ve partik yapaca\u011f\u0131z.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Terminal kullanmak<\/li>\n\n\n\n<li>Text edit\u00f6r ve\/veya IDE kullanmak<\/li>\n\n\n\n<li>Git, Gitflow, Semver ile versiyonlama ve s\u00fcr\u00fcm kontrol\u00fc<\/li>\n\n\n\n<li>Kod rewiew k\u00fclt\u00fcr\u00fc<\/li>\n\n\n\n<li>CI\/CD s\u00fcre\u00e7leri<\/li>\n\n\n\n<li>Test yazma k\u00fclt\u00fcr\u00fc<\/li>\n\n\n\n<li>HTTP ya\u015fam d\u00f6ng\u00fcs\u00fc ve temel kavramlar\u0131<\/li>\n\n\n\n<li>Ruby \u0130\u00e7in Gereken Temel Bilgiler\n<ul class=\"wp-block-list\">\n<li>\u00a0Ruby&#8217;nin genel \u00f6zellikleri<\/li>\n\n\n\n<li>IRB konsol ile Ruby kullan\u0131m\u0131 (alternatif olarak PRY)<\/li>\n\n\n\n<li>Ruby Paket Y\u00f6neticisi (RubyGems ve Bundler)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Rails \u0130\u00e7in Gereken Temel Bilgiler\n<ul class=\"wp-block-list\">\n<li>MVC<\/li>\n\n\n\n<li>REST ve RESTful<\/li>\n\n\n\n<li>DAO ve ORM<\/li>\n\n\n\n<li>Rack Middleware<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><strong>Rails\u2019e H\u0131zl\u0131 Ba\u015flang\u0131\u00e7<br><\/strong>Bu b\u00f6l\u00fcmde Rails Guides \u00fczerinden Rails&#8217;e h\u0131zl\u0131ca g\u00f6z at\u0131p \u00e7ok k\u0131sa bir s\u00fcrede \u00e7al\u0131\u015fan bir uygulama haz\u0131rlayaca\u011f\u0131z.<\/p>\n\n\n\n<p>Rails\u2019e Giri\u015f ve \u0130lk Uygulama ve deneyimler;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ruby on Rails\u2019e Giri\u015f\n<ul class=\"wp-block-list\">\n<li>Rails nedir ve neden tercih edilmelidir?<\/li>\n\n\n\n<li>MVC (Model-View-Controller) Mimarisi<\/li>\n\n\n\n<li>Rails felsefesi<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Rails Kurulumu ve \u0130lk Uygulama\n<ul class=\"wp-block-list\">\n<li>Rails&#8217;in kurulumu ve \u00e7al\u0131\u015fma ortam\u0131n\u0131n haz\u0131rlanmas\u0131<\/li>\n\n\n\n<li>\u0130lk Rails projenizin ba\u015flat\u0131lmas\u0131<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Rails Uygulama Dizini Yap\u0131s\u0131\n<ul class=\"wp-block-list\">\n<li>Uygulama dizinlerinin i\u015flevleri ve temel bile\u015fenler<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u00d6rnek \u00dcr\u00fcn Y\u00f6netimi Uygulamas\u0131n\u0131n \u0130lk Ad\u0131mlar\u0131\n<ul class=\"wp-block-list\">\n<li>Yeni bir Rails uygulamas\u0131 olu\u015fturma<\/li>\n\n\n\n<li>Scaffold komutuyla ba\u015flang\u0131\u00e7 noktas\u0131 kurma<\/li>\n\n\n\n<li>Rails sunucusunu \u00e7al\u0131\u015ft\u0131rma ve uygulama yap\u0131s\u0131n\u0131 inceleme<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><strong>HOTWIRE<br><\/strong>Bu b\u00f6l\u00fcmde web uygulaman\u0131zda daha h\u0131zl\u0131 gezinmenizi sa\u011flayan ve istemci taraf\u0131 JavaScript \u00e7er\u00e7evelerinin ek karma\u015f\u0131kl\u0131\u011f\u0131 olmadan tek sayfal\u0131k bir uygulaman\u0131n performans avantajlar\u0131ndan yararlanabilece\u011finiz HOTWIRE ara\u00e7lar\u0131 ile tan\u0131\u015facak ve bu ara\u00e7lar\u0131n ne i\u015fe yarad\u0131\u011f\u0131 hakk\u0131nda sahibi olacaks\u0131n\u0131z. Rails ile nas\u0131l etkile\u015fime girdi\u011fini g\u00f6recek, mobil veya masa\u00fcst\u00fc platformlar i\u00e7in hibrit uygulamalar\u0131 nas\u0131l olu\u015fturabilece\u011finizi anlayacaks\u0131n\u0131z.<\/p>\n\n\n\n<p>Al\u0131nt\u0131; &#8220;Hotwire, modern web uygulamalar\u0131 geli\u015ftirmek i\u00e7in fazla JavaScript kullanmadan, JSON yerine HTML g\u00f6ndererek \u00e7al\u0131\u015fan alternatif bir yakla\u015f\u0131md\u0131r. Bu y\u00f6ntem, h\u0131zl\u0131 ilk y\u00fckleme sayfalar\u0131 sa\u011flar, \u015fablonlar\u0131n sunucuda i\u015flenmesini devam ettirir ve herhangi bir programlama dilinde daha basit ve verimli bir geli\u015ftirme deneyimi sunar. Geleneksel tek sayfa uygulamalar\u0131n\u0131n h\u0131z ve duyarl\u0131l\u0131\u011f\u0131ndan \u00f6d\u00fcn vermez.&#8221;<\/p>\n\n\n\n<p>Referans kaynak: <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/hotwired.dev\">https:\/\/hotwired.dev<\/a><\/p>\n\n\n\n<p><strong>Turbo<br><\/strong>Kendi sayfas\u0131nda da belirtildi\u011fi \u00fczere HOTWIRE&#8217;\u0131n kalbi Turbo&#8217;dur.&nbsp; Turbo sayfa de\u011fi\u015fikliklerini ve form g\u00f6nderimlerini h\u0131zland\u0131rmak i\u00e7in sayfa i\u00e7eriklerini Frame ad\u0131 verilen k\u00fc\u00e7\u00fck par\u00e7alara b\u00f6lerek sunucu taraf\u0131ndan JavaScript kullanmadan g\u00fcncellemenize olanak tan\u0131r. Bu g\u00fcncellemeleri asenkron olarak WebSoket \u00fczerinden de ger\u00e7ekle\u015ftirebilirsiniz.&nbsp; Ayn\u0131 zamanda Hotwire iOS ve Android adapt\u00f6rleri ile hibrit uygulama geli\u015ftirmenize olanak tan\u0131r.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Turbo Handbook\n<ul class=\"wp-block-list\">\n<li>Introduction<\/li>\n\n\n\n<li>Navigate with Turbo Drive<\/li>\n\n\n\n<li>Smooth page refreshes with morphing<\/li>\n\n\n\n<li>Decompose with Turbo Frames<\/li>\n\n\n\n<li>Come Alive with Turbo Streams<\/li>\n\n\n\n<li>Go Native on iOS &amp; Android<\/li>\n\n\n\n<li>Building Your Turbo Application<\/li>\n\n\n\n<li>Installing Turbo in Your Application<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Rerefence\n<ul class=\"wp-block-list\">\n<li>Drive<\/li>\n\n\n\n<li>Frames<\/li>\n\n\n\n<li>Streams<\/li>\n\n\n\n<li>Events<\/li>\n\n\n\n<li>Attributes<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><strong>Stimulus<br><\/strong>Bu b\u00f6l\u00fcmde m\u00fctevazi istekleri olan bir JavaScript \u00e7ercevesi olan Stimulus ile tan\u0131\u015facak ve bu ara\u00e7\u0131n ne i\u015fe yarad\u0131\u011f\u0131 hakk\u0131nda sahibi olacaks\u0131n\u0131z. Stimulus kullanarak bir tutam JavaScript kullanarak uygulaman\u0131za nas\u0131l daha fazla etkile\u015fim kazand\u0131raca\u011f\u0131n\u0131z\u0131 \u00f6\u011freneceksiniz. Ayr\u0131ca Stimulus&#8217;u Rails ile nas\u0131l daha efektif bir \u015fekilde kullanabilece\u011fiz hakk\u0131nda fikir sahibi olacaks\u0131n\u0131z.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stimulus Handbook\n<ul class=\"wp-block-list\">\n<li>Introduction<\/li>\n\n\n\n<li>Hello, Stimulus<\/li>\n\n\n\n<li>Building Something Real<\/li>\n\n\n\n<li>Designing For Resilience<\/li>\n\n\n\n<li>Managing State<\/li>\n\n\n\n<li>Working With External Resources<\/li>\n\n\n\n<li>Installing Stimulus in Your Application<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Reference\n<ul class=\"wp-block-list\">\n<li>Lifecycle\u00a0<\/li>\n\n\n\n<li>Callbacks\u00a0<\/li>\n\n\n\n<li>Actions\u00a0<\/li>\n\n\n\n<li>Targets\u00a0<\/li>\n\n\n\n<li>Outlets\u00a0<\/li>\n\n\n\n<li>Values\u00a0<\/li>\n\n\n\n<li>CSS Classes\u00a0<\/li>\n\n\n\n<li>Using Typescript<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><strong>Native<br><\/strong>Hotwire Native, mobil web i\u00e7eri\u011finizi Android ve iOS&#8217;ta yerel bir deneyimle sunar. Sunucu taraf\u0131ndan olu\u015fturulan HTML ve CSS i\u00e7eri\u011fini yerel bir kabuk i\u00e7inde g\u00f6r\u00fcnt\u00fcler, platforma \u00f6zg\u00fc animasyonlar ve gezinme \u00f6zellikleri sa\u011flar. Yerel kodla (Swift veya Kotlin) entegre edilebilir ve uygulama ma\u011fazalar\u0131na yeniden g\u00f6nderim yapmadan g\u00fcncellemeler an\u0131nda kullan\u0131ma sunulabilir.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Overview\n<ul class=\"wp-block-list\">\n<li>How it Works<\/li>\n\n\n\n<li>Basic Navigation<\/li>\n\n\n\n<li>Path Configuration<\/li>\n\n\n\n<li>Bridge Components<\/li>\n\n\n\n<li>Native Screens<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>iOS &amp; Android\n<ul class=\"wp-block-list\">\n<li>Getting Started<\/li>\n\n\n\n<li>Path Configuration<\/li>\n\n\n\n<li>Bridge Components<\/li>\n\n\n\n<li>Native Screens<\/li>\n\n\n\n<li>Configuration<\/li>\n\n\n\n<li>Reference<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Reference\n<ul class=\"wp-block-list\">\n<li>Navigation<\/li>\n\n\n\n<li>Path Configuration<\/li>\n\n\n\n<li>Bridge Installation<\/li>\n\n\n\n<li>Bridge Components<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><strong>Temel Rails Bile\u015fenleri<br><\/strong>Bu b\u00f6l\u00fcde Rails i\u00e7erisinde ihtiyac\u0131n\u0131z olan en temel bile\u015fenler hakk\u0131nda bilgi sahibi olacak, bu bile\u015fenleri kullanarak Rails uygulaman\u0131z\u0131 nas\u0131l in\u015faa edece\u011finizi \u00f6\u011freneceksiniz. Bu b\u00f6l\u00fcm\u00fc tamamlad\u0131\u011f\u0131m\u0131zda ba\u015ftan uca \u00e7al\u0131\u015fan bir Rails uygulamas\u0131 hayata ge\u00e7irecek temel bilgilere eri\u015fmi\u015f olacaks\u0131n\u0131z.<\/p>\n\n\n\n<p><strong>Veritaban\u0131 Y\u00f6netimi ve Model Katman\u0131<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Active Record ve Veritaban\u0131 \u0130li\u015fkileri<\/strong>\n<ul class=\"wp-block-list\">\n<li>Active Record ile ORM (Object-Relational Mapping)<\/li>\n\n\n\n<li>Migrations ile veritaban\u0131 tablolar\u0131 olu\u015fturma ve g\u00fcncelleme<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>CRUD \u0130\u015flemleri<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u00dcr\u00fcnler i\u00e7in Create, Read, Update, Delete i\u015flemlerini uygulama<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Validasyonlar ve \u0130li\u015fkiler<\/strong>\n<ul class=\"wp-block-list\">\n<li>Verilerin do\u011frulu\u011funu sa\u011flamak i\u00e7in model validasyonlar\u0131<\/li>\n\n\n\n<li>Model ili\u015fkilerinin (has_many, belongs_to) tan\u0131mlanmas\u0131<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Views (View Katman\u0131)<\/strong>\n<ul class=\"wp-block-list\">\n<li>Action View Overview<\/li>\n\n\n\n<li>Layouts &amp; Rendering in Rails<\/li>\n\n\n\n<li>Action View Form Helpers<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Controllers (Kontrol\u00f6r Katman\u0131)<\/strong>\n<ul class=\"wp-block-list\">\n<li>Action Controller Overview<\/li>\n\n\n\n<li>Rails Routing from the Outside In<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><strong>Di\u011fer Rails Bile\u015fenleri<br><\/strong>Bu b\u00f6l\u00fcde Rails ile birlikte gelen harika bile\u015fenleri g\u00f6recek ve bu bile\u015fenleri kullanarak uygulaman\u0131z\u0131 nas\u0131 daha zengin ve kullan\u0131\u015fl\u0131 hale getirebilece\u011finizi \u00f6\u011freneceksiniz.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Active Support Core Extensions<\/li>\n\n\n\n<li>Action Mailer Basics<\/li>\n\n\n\n<li>Action Mailbox Basics<\/li>\n\n\n\n<li>Action Text Overview<\/li>\n\n\n\n<li>Active Job Basics<\/li>\n\n\n\n<li>Active Storage Overview<\/li>\n\n\n\n<li>Action Cable Overview<\/li>\n<\/ul>\n\n\n\n<p><strong>Yeni Rails GEM&#8217;ler<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Importmaps for Rails<\/li>\n\n\n\n<li>Tailwind CSS for Rails<\/li>\n\n\n\n<li>JavaScript Bundling for Rails<\/li>\n\n\n\n<li>CSS Bundling for Rails<\/li>\n\n\n\n<li>Request.JS for Rails<\/li>\n\n\n\n<li>Dart Sass for Rails<\/li>\n<\/ul>\n\n\n\n<p><strong>Derinlemesine Rails<br><\/strong>Bu b\u00f6l\u00fcde Rails&#8217;in derinlerine inerek geli\u015ftirme s\u0131ras\u0131nda ihtiyac\u0131n\u0131z olacak t\u00fcm ara\u00e7 ve kavramlarla tan\u0131\u015facaks\u0131n\u0131z.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rails Internationalization (I18n) API<\/li>\n\n\n\n<li>Testing Rails Applications<\/li>\n\n\n\n<li>Debugging Rails Applications<\/li>\n\n\n\n<li>Configuring Rails Applications<\/li>\n\n\n\n<li>The Rails Command Line<\/li>\n\n\n\n<li>The Asset Pipeline<\/li>\n\n\n\n<li>Working with JavaScript in Rails<\/li>\n\n\n\n<li>Autoloading and Reloading<\/li>\n\n\n\n<li>Using Rails for API-only Applications<\/li>\n\n\n\n<li>Multiple Databases<\/li>\n\n\n\n<li>Composite Primary Keys<\/li>\n<\/ul>\n\n\n\n<p><strong>\u00dcretim Ortam\u0131na Ge\u00e7i\u015f (Deploy to Production)<br><\/strong>Bu b\u00f6l\u00fcmde, Rails uygulamalar\u0131n\u0131z\u0131 \u00fcretim ortam\u0131na ta\u015f\u0131mak, performans iyile\u015ftirmeleri yapmak, g\u00fcvenli\u011fi sa\u011flamak, \u00f6nbellekleme y\u00f6ntemlerini kullanmak ve hata raporlama ara\u00e7lar\u0131yla uygulaman\u0131z\u0131 kararl\u0131 hale getirmek i\u00e7in ihtiyac\u0131n\u0131z olan t\u00fcm temel ara\u00e7lar ve kavramlarla tan\u0131\u015facaks\u0131n\u0131z.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tuning Performance for Deployment<\/li>\n\n\n\n<li>Caching with Rails: An Overview<\/li>\n\n\n\n<li>Securing Rails Applications<\/li>\n\n\n\n<li>Error Reporting in Rails Applications<\/li>\n<\/ul>\n\n\n\n<p><strong>Rails&#8217;i Geni\u015fletme<br><\/strong>Bu b\u00f6l\u00fcde Rails uygulaman\u0131z\u0131 geni\u015fletmeniz veya kendinize g\u00f6re \u00f6zelle\u015ftirmeniz yada kendi bile\u015fenlerinizi tasarlaman\u0131z i\u00e7in gereken ara\u00e7lar\u0131 tan\u0131yacaks\u0131n\u0131z.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The Basics of Creating Rails Plugins<\/li>\n\n\n\n<li>Rails on Rack<\/li>\n\n\n\n<li>Creating and Customizing Rails Generators &amp; Templates (\u00d6zet)<\/li>\n\n\n\n<li>Getting Started with Engines (\u00d6zet)<\/li>\n\n\n\n<li>Threading and Code Execution in Rails\u00a0 (\u00d6zet)<\/li>\n<\/ul>\n\n\n\n<p><strong>Baz\u0131 Faydal\u0131 Ruby Gem&#8217;lerin Tan\u0131t\u0131lmas\u0131<br><\/strong>Bu b\u00f6l\u00fcde Ruby ve Rails d\u00fcnyas\u0131ndaki pop\u00fcler Ruby Gem&#8217;ler hakk\u0131nda bilgi sahibi olacaks\u0131n\u0131z.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ruby Toolbox servisi ve ihtiya\u00e7 duyulabilecek baz\u0131 Gem&#8217;lerin tan\u0131t\u0131m\u0131<\/li>\n\n\n\n<li>Kebab Project (<a href=\"https:\/\/github.com\/kebab-project\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/kebab-project<\/a>) GEM\u2019lerinin tant\u0131lmas\u0131<\/li>\n\n\n\n<li>Daha fazlas\u0131 i\u00e7in bkz: <a href=\"https:\/\/github.com\/lab2023\/playbook\/blob\/master\/development\/ruby.md#ruby-gems\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/lab2023\/playbook\/blob\/master\/development\/ruby.md#ruby-gems<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>Uygulaman\u0131z\u0131n Yay\u0131nlanmas\u0131 (Deployment)<br><\/strong>Bu b\u00f6l\u00fcde Rails uygulamalar\u0131n\u0131z\u0131n Heroku servisine veya bir VPS sunucuna nas\u0131l yay\u0131nlanaca\u011f\u0131n\u0131 \u00f6\u011freneceksiniz.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kamal Deploy<\/li>\n\n\n\n<li>Heroku\n<ul class=\"wp-block-list\">\n<li>Heroku CLI kurulumu<\/li>\n\n\n\n<li>\u00dccretsiz Heroku hesab\u0131 a\u00e7\u0131lmas\u0131<\/li>\n\n\n\n<li>Heroku y\u00f6netim konsolunun tan\u0131t\u0131lmas\u0131<\/li>\n\n\n\n<li>Heroku\u2019ya deploy<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>VPS (Standart bir VPS\u2019e deploy i\u00e7in <a href=\"https:\/\/github.com\/lab2023\/playbook\/blob\/master\/development\/server.md\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/lab2023\/playbook\/blob\/master\/development\/server.md<\/a> kayna\u011f\u0131ndan bahsedilecektir.)<\/li>\n<\/ul>\n\n\n\n<p><strong>Topluluk<br><\/strong>Bu b\u00f6l\u00fcmde \u00f6zg\u00fcr yaz\u0131l\u0131m, a\u00e7\u0131k kaynak ve topluluklar hakk\u0131nda bolca sohbet ederek Ruby, Rails d\u00fcnyas\u0131n\u0131 daha yak\u0131ndan tan\u0131yacak ve Ruby T\u00fcrkiye toplulu\u011fu olarak T\u00fcrkiye&#8217;de ger\u00e7ekle\u015ftirilen etkinlikler hakk\u0131nda bilgilendirileceksiniz.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ruby T\u00fcrkiye toplulu\u011fu<\/li>\n\n\n\n<li>\u00d6zg\u00fcr yaz\u0131l\u0131m felsefesi<\/li>\n\n\n\n<li>Rails\u2019in geli\u015fimi ve toplulu\u011fun katk\u0131s\u0131<\/li>\n\n\n\n<li>Rails\u2019e nas\u0131l katk\u0131 sa\u011flars\u0131n\u0131z?<\/li>\n\n\n\n<li>Birlikte neler geli\u015ftirebilirsiniz ve \u00f6zg\u00fcr yaz\u0131l\u0131m projelerine nas\u0131l katk\u0131 sa\u011flars\u0131n\u0131z?<\/li>\n\n\n\n<li>Rails belgeleri ve topluluklar\u0131 ile s\u00fcrekli \u00f6\u011frenme ve kendini geli\u015ftirme f\u0131rsatlar\u0131<\/li>\n<\/ul>\n\n\n\n<p><strong>\u00d6rnek Uygulamalar<\/strong><\/p>\n\n\n\n<p>Bu b\u00f6l\u00fcmde \u00f6\u011frendiklerimizi peki\u015ftirmek i\u00e7in bir Rails projesi nas\u0131l hayata ge\u00e7irilir \u00f6\u011frenece\u011fiz. Bu projeyi Rails ile birlikte, HOTWIRE, Turbo ve Hotwire Native kullanarak web ve mobil platformlarda nas\u0131l yay\u0131nlayaca\u011f\u0131m\u0131z\u0131 \u00f6\u011frenece\u011fiz.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Shape-up ile proje \u015fekillendirme s\u00fcre\u00e7leri<\/li>\n\n\n\n<li>Modelleme ve sistem gereksinimlerinin tespiti<\/li>\n\n\n\n<li>D\u00f6ng\u00fcn\u00fcn planlanmas\u0131<\/li>\n\n\n\n<li>Web platformunda uygulamay\u0131 geli\u015ftirme<\/li>\n\n\n\n<li>Mobil platformda uygulamay\u0131 geli\u015ftirme<\/li>\n\n\n\n<li>Heroku&#8217;ya deploy ve canl\u0131ya ge\u00e7i\u015f<\/li>\n<\/ul>\n\n\n\n<p><strong>Ba\u015fvuru Yap ve Rails D\u00fcnyas\u0131na Ad\u0131m\u0131n\u0131 At!<\/strong><br>Ruby on Rails d\u00fcnyas\u0131na h\u0131zl\u0131 bir giri\u015f yaparak modern web uygulamalar\u0131 geli\u015ftirme becerileri kazanmak i\u00e7in bu kursa kat\u0131l\u0131n! Hemen ba\u015fvurarak yerinizi ay\u0131rt\u0131n ve Ruby on Rails d\u00fcnyas\u0131na ad\u0131m\u0131n\u0131z\u0131 at\u0131n.<\/p>\n\n\n\n<p>Kaynaklar:<\/p>\n\n\n\n<p><a href=\"https:\/\/hotwired.dev\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/hotwired.dev<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/rubyonrails.org\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/rubyonrails.org<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/guides.rubyonrails.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/guides.rubyonrails.org\/<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>E\u011fitmenler: Tayfun Erikan, H\u00fcseyin B\u0131y\u0131k, G\u00fcven Karabulut, Azim Can Kuruca Kurslara kay\u0131t olmak i\u00e7in t\u0131klay\u0131n Ruby on Rails&#8217;i \u00f6\u011frenirseniz neler in\u015fa edebilece\u011finizi bir hayal edin\u2026 Bu yeni y\u0131la Ruby on Rails \u00f6\u011frenerek ba\u015flayabilirsiniz. B\u00f6ylece tam donan\u0131ml\u0131 (full-stack) bir web geli\u015ftirici olarak daha mutlu, \u00fcretken, zahmetsiz ve h\u0131zl\u0131 \u015fekilde web uygulamalar\u0131 hayata ge\u00e7irmenin keyfini ya\u015fayabilirsiniz. Peki [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":362,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1459","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kamp.linux.org.tr\/2025-kis\/wp-json\/wp\/v2\/pages\/1459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kamp.linux.org.tr\/2025-kis\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kamp.linux.org.tr\/2025-kis\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kamp.linux.org.tr\/2025-kis\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kamp.linux.org.tr\/2025-kis\/wp-json\/wp\/v2\/comments?post=1459"}],"version-history":[{"count":6,"href":"https:\/\/kamp.linux.org.tr\/2025-kis\/wp-json\/wp\/v2\/pages\/1459\/revisions"}],"predecessor-version":[{"id":1790,"href":"https:\/\/kamp.linux.org.tr\/2025-kis\/wp-json\/wp\/v2\/pages\/1459\/revisions\/1790"}],"up":[{"embeddable":true,"href":"https:\/\/kamp.linux.org.tr\/2025-kis\/wp-json\/wp\/v2\/pages\/362"}],"wp:attachment":[{"href":"https:\/\/kamp.linux.org.tr\/2025-kis\/wp-json\/wp\/v2\/media?parent=1459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}