Ruby on Rails āļŦāļĢāļ·āļāļāļĩāđāļĢāļđāđāļāļąāļāļāļąāļāđāļāļāļ·āđāļ Rails āđāļāđāļāđāļāļĢāļĄāđāļ§āļīāļĢāđāļāđāļāļāļāļĨāļīāđāļāļāļąāļāđāļ§āđāļāđāļāļāđāļāđāļāđāļāļāļāļĢāđāļŠāđāļāļāļāļđāļĨāļŠāđāļāđāļ āļŠāļĢāđāļēāļāļāļķāđāļāđāļāļāļĩ 2004 āđāļāļĒ David Heinemeier Hansson āļŠāļĢāđāļēāļāļāļķāđāļāđāļāļĒāđāļāđāļ āļēāļĐāļēāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄ Ruby āđāļĨāļ°āđāļāđāļāđāļāļāļēāļĄāļŦāļĨāļąāļāļāļēāļĢāļāļāļāđāļāļ 'convention over configuration' āđāļĨāļ° 'don'tāļāļģāļāđāļģāļāļąāļ§āđāļāļ' (DRY) āļāļķāđāļāļŠāđāļāđāļŠāļĢāļīāļĄāļāļēāļĢāđāļāđāđāļāļ§āļāļēāļāļāļāļīāļāļąāļāļīāļāļĩāđāļāļĩāļāļĩāđāļŠāļļāļāđāļĨāļ°āļāļģāđāļŦāđāļāļąāļāļāļąāļāļāļēāļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļāđāļ§āđāļāđāļāļāļāļĨāļīāđāļāļāļąāļāđāļāđāļāļĒāđāļēāļāļĢāļ§āļāđāļĢāđāļ§āđāļĨāļ°āļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ Ruby on Rails āđāļāđāļĢāļąāļāļāļ§āļēāļĄāļāļīāļĒāļĄāļāļĒāđāļēāļāļāļ§āđāļēāļāļāļ§āļēāļāđāļāļŦāļĄāļđāđāļāļąāļāļāļąāļāļāļēāđāļāļ·āđāļāļāļāļēāļāļāļ§āļēāļĄāļāļĨāđāļāļāļāļąāļ§ āļāđāļēāļāļāđāļēāļĒ āđāļĨāļ°āđāļāđāļāļēāļāļāđāļēāļĒ
Ruby on Rails āđāļāđāļĢāļđāļāđāļāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄ Model-View-Controller (MVC) āļāļķāđāļāļŠāļāļąāļāļŠāļāļļāļāļāļēāļĢāđāļĒāļāļĢāļ°āļŦāļ§āđāļēāļāļāđāļāļĄāļđāļĨāļāļ·āđāļāļāļēāļ (āđāļĄāđāļāļĨ) āļāļēāļĢāļāļģāđāļŠāļāļāļāđāļāļĄāļđāļĨāļāļąāđāļ (āļĄāļļāļĄāļĄāļāļ) āđāļĨāļ°āđāļāļĨāļ§āđāļāļēāļĢāļāļ§āļāļāļļāļĄāļāļĩāđāļāļąāļāļāļēāļĢāļāļīāļāļāļļāļāļāļāļāļāļđāđāđāļāđ (āļāļąāļ§āļāļ§āļāļāļļāļĄ) āļāđāļ§āļĒāļāļēāļĢāļĢāļąāļāļĐāļēāļāļēāļĢāđāļĒāļāļāđāļāļāļąāļāļ§āļĨāļāļĒāđāļēāļāļāļąāļāđāļāļ Rails āļāđāļ§āļĒāļĨāļāļāļ§āļēāļĄāļĒāļļāđāļāļĒāļēāļāđāļāļāļēāļĢāļāļąāļāļāļēāđāļĨāļ°āļāļģāļĢāļļāļāļĢāļąāļāļĐāļēāđāļāļāļāļĨāļīāđāļāļāļąāļ āļāļģāđāļŦāđāļāļąāļāļāļąāļāļāļēāļŠāļĢāđāļēāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļĩāđāļāļĢāļąāļāļāļāļēāļāđāļāđāđāļĨāļ°āļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļāđāļāđāļēāļĒāļāļķāđāļāđāļāļĒāđāļāđāđāļāđāļāđāļĨāļ°āļāļ§āļēāļĄāļāļĒāļēāļĒāļēāļĄāđāļāļĩāļĒāļāđāļĨāđāļāļāđāļāļĒ
āļāļĢāļāļāļāļēāļ Rails āļĄāļĩāļāļļāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļĄāļēāļāļĄāļēāļĒāđāļĨāļ°āļŠāđāļ§āļāļāļĢāļ°āļāļāļāļŠāļģāđāļĢāđāļāļĢāļđāļāļāļĩāđāļāđāļ§āļĒāļāļĢāļąāļāļāļĢāļļāļāļāļĢāļ°āļāļ§āļāļāļēāļĢāļāļąāļāļāļēāđāļ§āđāļāđāļāļāđ āļāļļāļāļŠāļĄāļāļąāļāļīāļŦāļĨāļąāļāļāļēāļāļāļĢāļ°āļāļēāļĢ āđāļāđāđāļāđ āļāļēāļĢāļāļģāļŦāļāļāđāļŠāđāļāļāļēāļ āđāļĨāđāļĒāļāļĢāđāļāļēāļĄāļāļĢāļĢāļĄāļāļēāļāļāđāļāļĄāļđāļĨāļāļĩāđāļāļ§āđāļēāļāļāļ§āļēāļāļŠāļģāļŦāļĢāļąāļ ActiveRecord āļāļēāļĢāļĢāļāļāļĢāļąāļāļĢāļ°āļāļāļāļēāļāļāđāļāļĄāļđāļĨāļŦāļĨāļēāļĒāļĢāļ°āļāļ āļāļēāļĢāđāļāļāđāļāļāļąāļ§ āđāļĨāļ°āļāļēāļĢāļāļŠāļēāļāļĢāļ§āļĄāļāļąāļāđāļĨāļāļĢāļēāļĢāļĩ JavaScript āđāļāđāļ jQuery āđāļĨāļ° React āđāļāđāļāļĒāđāļēāļāļāđāļēāļĒāļāļēāļĒ Rails āļĒāļąāļāļĄāļĩāļāļĩāđāļāļāļĢāđāļāđāļēāļāđ āđāļāđāļ scaffolding āļāļķāđāļāļāđāļ§āļĒāđāļŦāđāļāļąāļāļāļąāļāļāļēāļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļāđāļāđāļāļŠāļģāļŦāļĢāļąāļāļāļąāļāļāđāļāļąāļ CRUD āļāļ·āđāļāļāļēāļāđāļāđāđāļāļĒāļāļąāļāđāļāļĄāļąāļāļī āļāļķāđāļāļāļ°āļāđāļ§āļĒāđāļĢāđāļāļāļĢāļ°āļāļ§āļāļāļēāļĢāļāļąāļāļāļēāđāļŦāđāđāļĢāđāļ§āļāļķāđāļāļāļĩāļ
Ruby on Rails āļāļąāļāļĨāļģāļāļąāļāļāļ§āļēāļĄāļŠāļģāļāļąāļāļāļēāļĄāđāļāļāđāļāļāļĄāļēāļāļāļ§āđāļēāļāļēāļĢāļāļģāļŦāļāļāļāđāļē āļāļķāđāļāļŦāļĄāļēāļĒāļāļ§āļēāļĄāļ§āđāļēāļĄāļĩāļāļēāļĢāļāļąāđāļāļāđāļēāđāļĢāļīāđāļĄāļāđāļāđāļĨāļ°āđāļāđāļēāđāļāļĢāļāļāļĩāđāđāļ§āđāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļŠāđāļ§āļāđāļŦāļāđāļāđāļāļāļāļēāļĢ āđāļāļ§āļāļēāļāļāļĩāđāļāđāļ§āļĒāļĨāļāļāļģāļāļ§āļāļāļąāļāļāļąāļāļāļēāđāļāđāļāļāļĩāđāļāđāļāļāđāļāļĩāļĒāļ āđāļĨāļ°āļĨāļāļāļ§āļēāļĄāļāļģāđāļāđāļāđāļāļāļēāļĢāđāļāđāđāļāļĨāđāļāļēāļĢāļāļģāļŦāļāļāļāđāļēāļāļģāļāļ§āļāļĄāļēāļ āļāļģāđāļŦāđāđāļāļĢāļĄāđāļ§āļīāļĢāđāļāđāļĢāļĩāļĒāļāļĢāļđāđāđāļĨāļ°āđāļāđāļāļēāļāđāļāđāļāđāļēāļĒāļāļĒāđāļēāļāđāļŦāļĨāļ·āļāđāļāļ·āđāļ āļāļĢāļąāļāļāļēāļāļēāļĢāļāļāļāđāļāļāļāļēāļĄāđāļāļāđāļāļāļāļāļ Rails āļĒāļąāļāļāđāļ§āļĒāđāļŦāđāļĄāļąāđāļāđāļāđāļāđāļ§āđāļēāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļĩāđāļŠāļĢāđāļēāļāļāļķāđāļāļāđāļ§āļĒāđāļāļĢāļĄāđāļ§āļīāļĢāđāļāļāļ°āđāļāđāļāđāļāļāļēāļĄāđāļāļ§āļāļēāļāļāļāļīāļāļąāļāļīāļāļĩāđāļāļĩāļāļĩāđāļŠāļļāļāļāļāļāļāļļāļāļŠāļēāļŦāļāļĢāļĢāļĄāđāļĨāļ°āļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļŠāļāļāļāļĨāđāļāļāļāļąāļāđāļāđāļāļĢāļāļāļēāļĢāļāđāļēāļāđ āļāļģāđāļŦāđāļāļĩāļĄāļŠāļēāļĄāļēāļĢāļāļāļģāļāļēāļāļĢāđāļ§āļĄāļāļąāļāđāļĨāļ°āļĢāđāļ§āļĄāļāļēāļāļāļąāļāļāļąāļāļāļąāļāļāļēāļĢāļēāļĒāđāļŦāļĄāđāđāļāđāļāļĒāđāļēāļāļāđāļēāļĒāļāļēāļĒ
āļāđāļāļāļĩāļāļĩāđāļŠāļģāļāļąāļāļāļĩāđāļŠāļļāļāļāļĒāđāļēāļāļŦāļāļķāđāļāļāļāļ Ruby on Rails āļāļ·āļāļāļļāļĄāļāļāļāļąāļāļāļąāļāļāļēāļāļĩāđāļāļĢāļ°āļāļ·āļāļĢāļ·āļāļĢāđāļāđāļĨāļ°āđāļŦāđāļāļēāļĢāļŠāļāļąāļāļŠāļāļļāļ āļāļąāļāļāļąāđāļāđāļāđāļāđāļāļāļąāđāļ Rails āđāļāđāļĢāļąāļāļāļēāļĢāļĒāļāļĄāļĢāļąāļāļāļēāļāļāļąāļāļāļąāļāļāļēāļŦāļĨāļēāļĒāļāļąāļāļĢāļēāļĒāļāļąāđāļ§āđāļĨāļ āđāļĨāļ°āļāļļāļĄāļāļāļāļĩāđāđāļāđāļāđāļāļĢāđāļāļāđāđāļāđāļāđāļāļāļąāļ§āļāļķāđāļāđāļāļĒāļĢāļāļ āļāļļāļĄāļāļāļāļĩāđāđāļāđāļāļāļąāļāļāļ§āļēāļĄāļĢāļđāđāļāļĒāđāļēāļāļāđāļāđāļāļ·āđāļāļ āļāļąāļāļŦāļēāļāļĢāļąāļāļĒāļēāļāļĢāļāļąāļāļĄāļĩāļāđāļē āđāļĨāļ°āļĄāļĩāļŠāđāļ§āļāļĢāđāļ§āļĄāđāļāđāļāđāļāđāļāļŠāļāļāļ Rails āļŠāđāļāļāļĨāđāļŦāđāđāļāļīāļāļĢāļ°āļāļāļāļīāđāļ§āļĻāļāļĩāđāļŠāļĄāļāļđāļĢāļāđāļāļāļāđāļĨāļāļĢāļēāļĢāļĩ āļāļĨāļąāđāļāļāļīāļ āđāļĨāļ°āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāļāļģāđāļŦāđāļāļąāļāļāļąāļāļāļēāļŠāļēāļĄāļēāļĢāļāļāļĒāļēāļĒāļāļąāļāļāđāļāļąāļāļāļēāļĢāļāļģāļāļēāļāļāļāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļāļāļāļāđāļāđāļāļĒāđāļēāļāļāđāļēāļĒāļāļēāļĒ
āļāļĢāļīāļĐāļąāļāđāļĨāļ°āļāļĨāļīāļāļ āļąāļāļāđāļāļĩāđāļĄāļĩāļāļ·āđāļāđāļŠāļĩāļĒāļāļāļĩāđāđāļāđ Ruby on Rails āđāļāđāđāļāđ Airbnb, GitHub, Shopify āđāļĨāļ° Twitter āļāļķāđāļāđāļāđāļāđāļāļĢāļ·āđāļāļāļāļīāļŠāļđāļāļāđāļāļķāļāļāļĨāļąāļāđāļĨāļ°āļāļ§āļēāļĄāļĒāļ·āļāļŦāļĒāļļāđāļāļāļāļāđāļāļĢāļĄāđāļ§āļīāļĢāđāļ Rails āđāļāđāļĢāļąāļāļāļēāļĢāļāļīāļŠāļđāļāļāđāđāļĨāđāļ§āļ§āđāļēāđāļāđāļāđāļāļĨāļđāļāļąāļāļāļĩāđāļāļĢāļąāļāļāļāļēāļāđāļāđāļŠāļģāļŦāļĢāļąāļāļāļąāđāļāđāļāļĢāļāļāļēāļĢāļāļāļēāļāđāļĨāđāļāđāļĨāļ°āļāļāļēāļāđāļŦāļāđ āđāļāļ·āđāļāļāļāļēāļāļāļąāļāļāļąāļāļāļēāļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļĩāđāļāļīāļŠāļđāļāļāđāđāļāļ§āļāļīāļāđāļāđāļāļĒāđāļēāļāļāđāļēāļĒāļāļēāļĒ āļāļķāđāļāļŠāļēāļĄāļēāļĢāļāļāļĒāļēāļĒāđāļāļŠāļđāđāđāļāļāļāļĨāļīāđāļāļāļąāļāļĢāļ°āļāļąāļāļāļāļāđāļāļĢāļāļĩāđāļĄāļĩāļāļļāļāļŠāļĄāļāļąāļāļīāļāļĢāļāļāđāļ§āļāđāļāđ
āđāļĄāđāļ§āđāļē AppMaster āļāļ°āļĄāļļāđāļāđāļāđāļāđāļāļāļĩāđāļāļēāļĢāļŠāļĢāđāļēāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāđāļ§āļĒ Go, Vue3, Kotlin āđāļĨāļ° SwiftUI āđāļāđāļāļēāļĢāļāļģāļāļ§āļēāļĄāđāļāđāļēāđāļ Ruby on Rails āļāļēāļāđāļāđāļāļāļĢāļ°āđāļĒāļāļāđāļŠāļģāļŦāļĢāļąāļāļāļąāļāļāļąāļāļāļēāđāļ§āđāļāļāļĩāđāļāđāļāļāļāļēāļĢāļŠāļģāļĢāļ§āļāđāļāļĨāļđāļāļąāļāļāļĢāļāļāļāļēāļāđāļ§āđāļāļāļēāļāđāļĨāļ·āļāļ āļŠāļīāđāļāļŠāļģāļāļąāļāļāļĩāđāļāļ§āļĢāļāļĢāļēāļāļāđāļāļ·āļ Ruby on Rails āđāļāđāļāđāļāļĩāļĒāļāļŦāļāļķāđāļāđāļāđāļāļĢāļĄāđāļ§āļīāļĢāđāļāđāļ§āđāļāļāļĩāđāļĄāļĩāļāļĒāļđāđāļĄāļēāļāļĄāļēāļĒ āđāļĨāļ°āđāļĄāđāđāļāđāđāļāļĨāļđāļāļąāļāļāļāļēāļāđāļāļĩāļĒāļ§āļāļĩāđāđāļŦāļĄāļēāļ°āļāļąāļāļāļļāļāļāļ āļāļķāđāļāļāļĒāļđāđāļāļąāļāļāļĢāļāļĩāļāļēāļĢāđāļāđāļāļēāļ āļāđāļāļāļģāļŦāļāļ āđāļĨāļ°āļāļēāļĢāļāļąāđāļāļāđāļēāđāļāļāļēāļ° āļāļąāļāļāļąāļāļāļēāļāļēāļāļĢāļēāļĒāļāļēāļāļāļāđāļāļĢāļĄāđāļ§āļīāļĢāđāļāļāļ·āđāļāđ āđāļāđāļ Django, Laravel āļŦāļĢāļ·āļ Express.js āļāļķāđāļāđāļŦāļĄāļēāļ°āļŠāļĄāļāļąāļāļāļ§āļēāļĄāļāđāļāļāļāļēāļĢāļāļāļāļāļāļĄāļēāļāļāļ§āđāļē
āđāļāļĒāļŠāļĢāļļāļ Ruby on Rails āđāļāđāļāđāļāļĢāļĄāđāļ§āļīāļĢāđāļāđāļāļāļāļĨāļīāđāļāļāļąāļāđāļ§āđāļāđāļāđāļĄāļĢāļđāļāđāļāļāļāļĩāđāļāļĢāļāļāļĨāļąāļ āļāļķāđāļāļāđāļ§āļĒāđāļŦāđāļāļąāļāļāļąāļāļāļēāļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļĩāđāļŦāļĨāļēāļāļŦāļĨāļēāļĒāđāļāļāļļāļāļŠāļēāļŦāļāļĢāļĢāļĄāļāđāļēāļāđ āļāļąāđāļāđāļāđāļŠāļāļēāļĢāđāļāļāļąāļāđāļāļāļāļāļķāļāļāļāļāđāļāļĢāļāļāļēāļāđāļŦāļāđ āļāļēāļĢāļāļāļāđāļāļāļāļĩāđāļŠāļ°āļāļēāļāļāļē āļāļēāļĢāđāļāđāļāđāļāļāđāļāļāļĄāļēāļāļāļ§āđāļēāļāļēāļĢāļāļģāļŦāļāļāļāđāļē āļāļļāļĄāļāļāļāļĩāđāđāļāđāļāļēāļāļāļĒāļđāđ āđāļĨāļ°āļĢāļ°āļāļāļāļīāđāļ§āļĻāļāļĩāđāļāļ§āđāļēāļāļāļ§āļēāļ āļāļģāđāļŦāđāđāļāđāļāļāļąāļ§āđāļĨāļ·āļāļāļĒāļāļāļāļīāļĒāļĄāļŠāļģāļŦāļĢāļąāļāļāļąāļāļāļąāļāļāļēāđāļ§āđāļāļāļĩāđāļāđāļāļāļāļēāļĢāļŠāļĢāđāļēāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļĩāđāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āļāļĢāļąāļāļāļāļēāļāđāļāđ āđāļĨāļ°āļāļģāļĢāļļāļāļĢāļąāļāļĐāļēāļāđāļģ āļāļĒāđāļēāļāđāļĢāļāđāļāļēāļĄ āļāļēāļĢāļ§āļīāļāļąāļĒāđāļāļĢāļĄāđāļ§āļīāļĢāđāļāļāļ·āđāļāđ āđāļĨāļ°āļāļīāļāļēāļĢāļāļēāļāđāļāļāļģāļŦāļāļāļāļāļāđāļāļĢāđāļāđāļāļāđāđāļĄāļ·āđāļāļāļąāļāļŠāļīāļāđāļāđāļĨāļ·āļāļāļāļĨāļļāđāļĄāđāļāļāđāļāđāļĨāļĒāļĩāļāļĩāđāđāļŦāļĄāļēāļ°āļŠāļĄāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļąāļāļāļēāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļāļāļāļļāļāļāļ·āļāđāļāđāļāļŠāļīāđāļāļŠāļģāļāļąāļ āđāļāļāļĢāļīāļāļāļāļĩāđ āđāļāļĨāļāļāļāļĢāđāļĄ AppMaster āļāļģāđāļŠāļāļāđāļāļĨāļđāļāļąāļāļāļĩāđāļĒāļāļāđāļĒāļĩāđāļĒāļĄāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļĢāđāļēāļāđāļāđāļāđāļāļāļāđ āđāļ§āđāļ āđāļĨāļ°āđāļāļāļāļĨāļīāđāļāļāļąāļāļĄāļ·āļāļāļ·āļāđāļāļĒāđāļāđāđāļāļāđāļāđāļĨāļĒāļĩāļŠāļĄāļąāļĒāđāļŦāļĄāđ āđāļāđāļ Go, Vue3, Kotlin āđāļĨāļ° SwiftUI āļāļķāđāļāļāļģāđāļŦāđāļāļĢāļ°āļāļ§āļāļāļēāļĢāļāļąāļāļāļēāļāđāļēāļĒāļāļķāđāļ āđāļĨāļ°āļāļģāđāļŦāđāļāļļāđāļĄāļāđāļēāđāļĨāļ°āļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļĄāļēāļāļāļķāđāļ