Ruby چیست؟ آموزش کامل و جامع Ruby
فهرست مطالب
Ruby چیست؟
Ruby یک زبان برنامهنویسی سطح بالا، پویا و شیگرا است که توسط یوکیهیرو ماتسوموتو طراحی و پیادهسازی شده است. این زبان با تمرکز بر برنامهنویسی شیگرا و سادگی، محبوبیت زیادی در توسعه وب و اتوماسیون پیدا کرده است.
# برنامه ساده Ruby
class Greeting
def initialize(name)
@name = name
end
def say_hello
puts "سلام #{@name}!"
end
end
greeting = Greeting.new("دنیا")
greeting.say_hello # خروجی: سلام دنیا!
تاریخچه Ruby
Ruby در سال ۱۹۹۵ توسط یوکیهیرو ماتسوموتو (معروف به Matz) در ژاپن ایجاد شد. هدف او ایجاد زبانی بود که قدرت برنامهنویسی شیگرا را با سادگی و لذت برنامهنویسی ترکیب کند.
ساختار پایه Ruby
برنامههای Ruby از اجزای مختلفی تشکیل شدهاند. ساختار پایه یک برنامه Ruby شامل موارد زیر است:
#!/usr/bin/env ruby
# تعریف یک کلاس
class Person
# متغیر کلاس
@@count = 0
# متد initialize (سازنده)
def initialize(name)
@name = name
@@count += 1
end
# متد instance
def say_name
puts "من #{@name} هستم!"
end
# متد کلاس
def self.count
@@count
end
end
# استفاده از کلاس
person = Person.new("علی")
person.say_name
puts Person.count
ویژگیهای اصلی Ruby
۱. همه چیز شی است
در Ruby، همه چیز یک شی است – حتی اعداد و کلاسها. این ویژگی باعث یکپارچگی و سازگاری در برنامهنویسی میشود.
۲. انعطافپذیری
Ruby اجازه میدهد کلاسهای موجود را تغییر دهید و متدهای جدید اضافه کنید.
class String
def reverse_and_upcase
self.reverse.upcase
end
end
puts "ruby".reverse_and_upcase # خروجی: YBUR
شیگرایی در Ruby
Ruby یک زبان کاملاً شیگرا است که در آن همه چیز یک شی محسوب میشود. درک مفاهیم شیگرایی در Ruby بسیار مهم است.
کلاسها و اشیاء
class Animal
def initialize(name, species)
@name = name
@species = species
end
def introduce
puts "من یک #{@species} به نام #{@name} هستم"
end
end
# ایجاد شی جدید
cat = Animal.new("پیشی", "گربه")
cat.introduce # خروجی: من یک گربه به نام پیشی هستم
وراثت
class Pet < Animal
def play
puts "#{@name} در حال بازی کردن است"
end
end
متغیرها و انواع داده در Ruby
Ruby انواع مختلفی از متغیرها و دادهها را پشتیبانی میکند:
# متغیرهای محلی
name = "علی"
# متغیرهای نمونه
@age = 25
# متغیرهای کلاس
@@count = 0
# متغیرهای سراسری
$config = { debug: true }
# ثابتها
MAXIMUM_USERS = 100
انواع داده اصلی
# اعداد
number = 42 # Integer
float = 3.14 # Float
# رشتهها
string = "سلام"
interpolated = "عدد: #{number}"
# آرایهها
array = [1, 2, 3, 4, 5]
# هشها
hash = { name: "علی", age: 25 }
# نمادها
status = :active
متدها در Ruby
متدها در Ruby بسیار انعطافپذیر هستند و میتوانند به روشهای مختلفی تعریف و استفاده شوند.
# متد ساده
def greet(name)
puts "سلام #{name}!"
end
# متد با مقدار پیشفرض
def calculate_price(amount, discount = 0)
amount - (amount * discount)
end
# متد با تعداد نامشخص پارامتر
def sum(*numbers)
numbers.reduce(0, :+)
end
# متد با بلوک
def repeat_twice
yield
yield
end
بلوکها و پراکها
بلوکها و پراکها از ویژگیهای قدرتمند Ruby هستند که امکان برنامهنویسی تابعی را فراهم میکنند.
# بلوک با do...end
[1, 2, 3].each do |number|
puts number * 2
end
# بلوک با آکولاد
[1, 2, 3].map { |n| n * 2 }
# پراک
square = Proc.new { |x| x * x }
numbers.map(&square)
# لامبدا
multiply = ->(x, y) { x * y }
کتابخانهها (Gems) در Ruby
Gemها پکیجهای Ruby هستند که میتوانند کد، مستندات و فایلهای پیکربندی را شامل شوند.
# نصب یک gem
gem install rails
# در Gemfile
source 'https://rubygems.org'
gem 'rails', '~> 7.0.0'
gem 'pg'
gem 'puma'
فریمورکهای محبوب Ruby
Ruby on Rails
محبوبترین فریمورک وب Ruby که از معماری MVC پیروی میکند. مناسب برای ساخت اپلیکیشنهای وب مقیاسپذیر است.
Sinatra
یک فریمورک سبک و ساده برای ساخت اپلیکیشنهای وب و APIها.
ابزارهای مفید برای کار با Ruby
برای توسعه بهتر با Ruby، ابزارهای مفید زیر را در نظر بگیرید:
محیطهای توسعه
- RubyMine
- Visual Studio Code با افزونه Ruby
- Sublime Text با پکیجهای Ruby
ابزارهای تست
- RSpec
- Minitest
- Capybara
ابزارهای مدیریت نسخه Ruby
- RVM
- rbenv
- asdf