Ruby هي لغة برمجة ديناميكية شهيرة ومعروفة بسهولتها وقوتها في نفس الوقت. تعتبر خيارًا ممتازًا للمبتدئين الذين يرغبون في دخول عالم البرمجة، وللمحترفين الذين يبحثون عن أداة فعالة لتطوير التطبيقات. في هذا المقال، سنقدم لك دورة تدريبية شاملة لتعلم أساسيات Ruby.

مقدمة عن Ruby
مقدمة عن Ruby: Ruby هي لغة برمجة ديناميكية عالية المستوى تم إنشاؤها بواسطة Yukihiro “Matz” Matsumoto في منتصف التسعينيات. تُعرف Ruby ببساطتها وسهولة قراءتها وكتابتها، مما يجعلها مناسبة للمبتدئين والمحترفين على حد سواء. تهدف Ruby إلى جعل البرمجة ممتعة وإنتاجية من خلال تقديم بناء نحوي (Syntax) بديهي ومرن، يشبه اللغة الطبيعية. تتميز Ruby بدعمها الكامل للبرمجة الكائنية (Object-Oriented Programming)، مما يسهل تنظيم الكود وإعادة استخدامه. بالإضافة إلى ذلك، تتمتع Ruby بمجتمع نشط ومجموعة واسعة من المكتبات والإضافات (Gems) التي تعزز إمكانياتها وتجعلها أداة قوية لتطوير التطبيقات المتنوعة.
إعداد البيئة لتطوير Ruby: دليل خطوة بخطوة
إعداد البيئة لتطوير Ruby يتطلب بعض الخطوات الأساسية لتثبيت اللغة وإعداد محرر النصوص المناسب. اتبع هذا الدليل البسيط للبدء:
- تثبيت Ruby على نظامك:
- قم بزيارة الموقع الرسمي لـ Ruby لتحميل النسخة المناسبة لنظام التشغيل الخاص بك (Windows، macOS، أو Linux).
- للمستخدمين المتقدمين، يمكنك استخدام أدوات إدارة النسخ مثل RVM أو rbenv لتسهيل عملية التثبيت وإدارة إصدارات Ruby المختلفة.
- تثبيت Ruby باستخدام RVM:
- افتح سطر الأوامر (Terminal) وأدخل الأوامر التالية لتثبيت RVM:
\curl -sSL https://get.rvm.io | bash -s stable
Rubyبعد التثبيت، قم بإعادة تشغيل سطر الأوامر وأدخل الأمر التالي لتثبيت Ruby:
rvm install ruby
Rubyتحقق من تثبيت Ruby باستخدام:
ruby -v
Ruby- إعداد محرر النصوص المناسب:
- اختر محرر نصوص يدعم البرمجة بـ Ruby. من المحررات الشهيرة Visual Studio Code، Sublime Text، وAtom.
- قم بتثبيت الإضافات الخاصة بـ Ruby لتحسين تجربة البرمجة، مثل Ruby وRuby Solargraph لـ Visual Studio Code.
- تثبيت وإعداد Bundler:
- Bundler هو أداة لإدارة الإضافات (Gems) في مشاريع Ruby. قم بتثبيته باستخدام الأمر التالي:
gem install bundler
Rubyلإنشاء مشروع جديد، يمكنك استخدام الأمر:
bundle init
Rubyكتابة أول برنامج في Ruby:
- افتح محرر النصوص واكتب الكود التالي:
puts "Hello, World!"
Rubyاحفظ الملف بامتداد .rb
، ثم قم بتشغيله باستخدام الأمر التالي في سطر الأوامر:
ruby yourfile.rb
Rubyباتباع هذه الخطوات، ستكون قد أعددت البيئة لتطوير Ruby بشكل صحيح وجاهز للبدء في كتابة وتشغيل برامجك الخاصة.
كتابة أول برنامج في Ruby
كتابة أول برنامج في Ruby هي خطوة بسيطة وممتعة لتعريف نفسك بأساسيات هذه اللغة البرمجية. اتبع الخطوات التالية لكتابة وتشغيل برنامجك الأول:
- فتح محرر النصوص:
- استخدم محرر نصوص مفضل لديك مثل Visual Studio Code أو Sublime Text أو Atom.
- كتابة كود البرنامج:
- في محرر النصوص، اكتب السطر التالي:
puts "Hello, World!"
Rubyهذا السطر من الكود يستخدم الدالة puts
لطباعة النص “Hello, World!” على الشاشة.
- حفظ الملف:
- احفظ الملف بامتداد
.rb
. على سبيل المثال، يمكنك تسميتهhello_world.rb
.
- احفظ الملف بامتداد
- تشغيل البرنامج:
- افتح سطر الأوامر (Terminal) وانتقل إلى المجلد الذي حفظت فيه الملف باستخدام الأمر
cd
. - لتشغيل البرنامج، اكتب الأمر التالي في سطر الأوامر:
- افتح سطر الأوامر (Terminal) وانتقل إلى المجلد الذي حفظت فيه الملف باستخدام الأمر
ruby hello_world.rb
Rubyسترى النص “Hello, World!” مطبوعًا على الشاشة، مما يعني أن برنامجك الأول في Ruby قد تم تشغيله بنجاح. هذه الخطوات البسيطة تعتبر مقدمة رائعة لفهم كيفية عمل Ruby وتنفيذ البرامج بها.
الأساسيات في Ruby
الأساسيات في Ruby تشمل مجموعة من المفاهيم الأساسية التي يجب على كل مبتدئ معرفتها لفهم كيفية البرمجة باستخدام هذه اللغة.
- المتغيرات وأنواع البيانات:
- يمكن تعريف المتغيرات في Ruby بدون تحديد نوع البيانات، حيث يقوم المفسر بتحديد النوع تلقائيًا. تتضمن أنواع البيانات الشائعة النصوص (Strings)، الأرقام الصحيحة (Integers)، الأرقام العشرية (Floats)، والقوائم (Arrays). على سبيل المثال:
name = "Alice"
age = 30
is_student = true
numbers = [1, 2, 3, 4, 5]
Rubyالعمليات الأساسية:
- تدعم Ruby العمليات الرياضية مثل الجمع، الطرح، الضرب، والقسمة، بالإضافة إلى العمليات المنطقية مثل AND و OR. مثال:
sum = 5 + 3
product = 4 * 2
is_equal = (sum == product) # يعيد false
Rubyالتعليقات:
- تستخدم التعليقات لتوضيح الكود وجعل قراءته أسهل. في Ruby، تبدأ التعليقات المفردة بعلامة
#
، بينما تستخدم التعليقات المتعددة الأسطر=begin
و=end
. مثال:
# هذا تعليق مفرد السطر
=begin
هذا تعليق
متعدد الأسطر
=end
Rubyالجمل الشرطية:
- تسمح الجمل الشرطية بتنفيذ كود معين بناءً على شرط محدد باستخدام
if
وelse
. مثال:
if age > 18
puts "You are an adult."
else
puts "You are a minor."
end
Rubyالحلقات التكرارية:
- تستخدم الحلقات لتنفيذ كود عدة مرات. تشمل أنواع الحلقات
while
وfor
و.times
. مثال:
3.times do
puts "Hello!"
end
Rubyالدوال:
- تسمح الدوال بإعادة استخدام الكود، وتعريف الدوال يتم باستخدام الكلمة المفتاحية
def
. مثال:
def greet(name)
puts "Hello, #{name}!"
end
greet("Alice") # يعيد "Hello, Alice!"
Rubyفهم هذه الأساسيات يمكن أن يساعدك على بناء أساس قوي للبرمجة بـ Ruby والانتقال إلى مفاهيم أكثر تعقيدًا بسهولة.
التحكم في التدفق
التحكم في التدفق في Ruby يشير إلى كيفية توجيه وتنفيذ الكود بناءً على شروط معينة أو تكرارات. يشمل ذلك استخدام الجمل الشرطية والحلقات التكرارية لتحقيق ذلك.
- الجمل الشرطية:
- الجمل الشرطية تسمح بتنفيذ كود معين بناءً على تحقق شرط معين. الكلمات المفتاحية الرئيسية هي
if
،elsif
، وelse
. على سبيل المثال:
- الجمل الشرطية تسمح بتنفيذ كود معين بناءً على تحقق شرط معين. الكلمات المفتاحية الرئيسية هي
age = 20
if age >= 18
puts "You are an adult."
elsif age < 18 && age > 12
puts "You are a teenager."
else
puts "You are a child."
end
Rubyالحلقات التكرارية:
- الحلقات تستخدم لتنفيذ كود عدة مرات. تشمل الحلقات التكرارية في Ruby
while
وuntil
وfor
بالإضافة إلى التكرارات باستخدام.times
و.each
.
مثال على حلقة while
:
count = 0
while count < 5
puts "Count is #{count}"
count += 1
end
Rubyمثال على استخدام .times
:
3.times do
puts "Hello, World!"
end
Rubyمثال على استخدام .each
مع قائمة:
numbers = [1, 2, 3, 4, 5]
numbers.each do |number|
puts "Number: #{number}"
end
Rubyجمل التحكم الإضافية:
- Ruby توفر جمل تحكم إضافية مثل
break
لإنهاء الحلقة، وnext
لتخطي جزء من التكرار الحالي، وredo
لإعادة تنفيذ التكرار بدون التحقق من الشرط.
مثال على استخدام break
وnext
:
(1..10).each do |i|
next if i % 2 == 0 # تخطي الأرقام الزوجية
puts i
break if i >= 7 # إنهاء الحلقة إذا كان i أكبر من أو يساوي 7
end
Rubyباستخدام هذه الأدوات، يمكن للمبرمجين التحكم في تدفق البرامج بفاعلية، مما يمكنهم من كتابة كود أكثر مرونة وفعالية.
البرمجة الكائنية في Ruby
البرمجة الكائنية في Ruby تعتمد على مفهوم الكائنات والفئات، مما يجعلها لغة قوية ومرنة في تصميم التطبيقات. البرمجة الكائنية (Object-Oriented Programming – OOP) تسهل تنظيم الكود، إعادة استخدامه، وتوسيع المشاريع البرمجية بفعالية.
- الكائنات والفئات:
- في Ruby، يمكن تعريف الكائنات باستخدام الفئات (Classes). الفئة هي مخطط يمكن من خلاله إنشاء كائنات متعددة تشترك في نفس الخصائص والوظائف.
class Person
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age = age
end
def introduce
puts "Hello, my name is #{@name} and I am #{@age} years old."
end
end
person1 = Person.new("Alice", 30)
person1.introduce
Rubyالوراثة (Inheritance):
- الوراثة تسمح بإنشاء فئات جديدة تعتمد على فئات موجودة، مما يمكن من إعادة استخدام الكود وتوسيع الوظائف.
class Student < Person
attr_accessor :grade
def initialize(name, age, grade)
super(name, age)
@grade = grade
end
def study
puts "#{@name} is studying."
end
end
student1 = Student.new("Bob", 20, "A")
student1.introduce
student1.study
Rubyالتعددية (Polymorphism):
- التعددية تسمح للفئات المختلفة باستخدام نفس الواجهة البرمجية مع تنفيذات مختلفة، مما يعزز من مرونة الكود.
class Animal
def speak
puts "Animal speaks"
end
end
class Dog < Animal
def speak
puts "Woof!"
end
end
class Cat < Animal
def speak
puts "Meow!"
end
end
animals = [Dog.new, Cat.new]
animals.each { |animal| animal.speak }
Rubyالتغليف (Encapsulation):
- التغليف يعني إخفاء تفاصيل التنفيذ الداخلية للكائنات وحماية بياناتها باستخدام واجهات عامة للوصول إليها.
class BankAccount
def initialize(balance)
@balance = balance
end
def deposit(amount)
@balance += amount
end
def display_balance
puts "Your balance is $#{@balance}"
end
end
account = BankAccount.new(100)
account.deposit(50)
account.display_balance
Rubyباستخدام البرمجة الكائنية، يمكنك إنشاء برامج أكثر تنظيمًا وقابلية للتوسيع في Ruby، مما يجعل إدارة الكود وصيانته أسهل وأكثر فاعلية.
المكتبات والإضافات في Ruby
المكتبة / الإضافة | التفاصيل |
---|---|
RSpec | مكتبة لاختبار الكود في Ruby باستخدام نهج BDD (Behavior-Driven Development)، تساعد على كتابة اختبارات واضحة وقابلة للقراءة. |
Rails | إطار عمل شهير لتطوير تطبيقات الويب باستخدام Ruby، يوفر مجموعة من الأدوات والمكتبات لبناء تطبيقات ويب قوية وسريعة. |
Pry | بديل تفاعلي للـ IRB (Interactive Ruby Shell)، يوفر قدرات متقدمة للتنقيح والتحليل التفاعلي للكود البرمجي. |
Sinatra | إطار عمل خفيف لتطوير تطبيقات الويب، مناسب للمشاريع الصغيرة والـ APIs. |
Nokogiri | مكتبة قوية لتحليل ومعالجة ملفات XML وHTML، تستخدم للـ web scraping ومعالجة البيانات. |
Devise | إضافة تستخدم لإدارة عمليات التحقق والدخول والتسجيل في تطبيقات Rails، توفر حلولًا جاهزة للمصادقة وإدارة المستخدمين. |
Capybara | مكتبة لاختبار التطبيقات على مستوى المستخدم (end-to-end)، تساعد في محاكاة التفاعل مع صفحات الويب وتأكد من عملها بشكل صحيح. |
Sidekiq | إطار عمل لمعالجة المهام الخلفية (background jobs) في تطبيقات Rails، يعتمد على Redis لتخزين وإدارة المهام. |
CarrierWave | مكتبة لتحميل وإدارة الملفات في تطبيقات Rails، تدعم التخزين المحلي والتخزين السحابي مثل Amazon S3. |
ActiveRecord | مكتبة ORM (Object-Relational Mapping) توفر واجهة برمجية للتفاعل مع قواعد البيانات بشكل كائني في تطبيقات Rails. |
تقدم Ruby مجموعة واسعة من المكتبات والإضافات التي تسهل تطوير التطبيقات وتضيف قدرات متقدمة لمشاريعك البرمجية. باستخدام هذه الأدوات، يمكنك تحسين الإنتاجية وتبسيط العمليات المعقدة في تطوير البرمجيات.
مشروع عملي بسيط
مشروع عملي بسيط في Ruby يمكن أن يكون طريقة رائعة لتطبيق ما تعلمته من أساسيات البرمجة الكائنية والتحكم في التدفق والمكتبات. سنقوم بإنشاء تطبيق بسيط لحساب العمر بناءً على سنة الميلاد.
- إنشاء ملف Ruby جديد:
- افتح محرر النصوص الخاص بك وأنشئ ملفًا جديدًا يسمى
age_calculator.rb
.
- افتح محرر النصوص الخاص بك وأنشئ ملفًا جديدًا يسمى
- كتابة الكود:
- اكتب الكود التالي في الملف:
# يطلب من المستخدم إدخال سنة الميلاد
puts "Enter your birth year:"
birth_year = gets.chomp.to_i
# الحصول على السنة الحالية
current_year = Time.now.year
# حساب العمر
age = current_year - birth_year
# عرض العمر على الشاشة
puts "You are #{age} years old."
Ruby- شرح الكود:
- طلب المدخلات: نستخدم
puts
لعرض رسالة تطلب من المستخدم إدخال سنة الميلاد، وgets.chomp.to_i
لقراءة المدخل وتحويله إلى عدد صحيح. - الحصول على السنة الحالية: نستخدم
Time.now.year
للحصول على السنة الحالية. - حساب العمر: نطرح سنة الميلاد من السنة الحالية لحساب العمر.
- عرض النتائج: نستخدم
puts
لعرض العمر على الشاشة.
- طلب المدخلات: نستخدم
- تشغيل البرنامج:
- احفظ الملف، ثم افتح سطر الأوامر وانتقل إلى المجلد الذي يحتوي على الملف.
- شغّل البرنامج باستخدام الأمر:
ruby age_calculator.rb
Ruby- التفاعل مع البرنامج:
- عند تشغيل البرنامج، سيطلب منك إدخال سنة ميلادك، وسيقوم بحساب وعرض عمرك.
هذا المشروع البسيط يساعدك على ممارسة الأساسيات في Ruby مثل التعامل مع المدخلات والمخرجات، الحسابات الرياضية، واستخدام الوقت والتاريخ. يمكنك توسيع هذا المشروع بإضافة ميزات جديدة مثل التحقق من صحة المدخلات أو التعامل مع سنوات الميلاد المستقبلية.
أسئلة متكررة حول Ruby
ما هي Ruby؟ Ruby هي لغة برمجة ديناميكية عالية المستوى تركز على البساطة وسهولة الاستخدام، وتدعم البرمجة الكائنية بالكامل.
كيف يمكنني البدء باستخدام Ruby؟ يمكنك تثبيت Ruby من الموقع الرسمي وكتابة برامج بسيطة باستخدام محرر نصوص وتشغيلها عبر سطر الأوامر.
ما هي ميزات Ruby الرئيسية؟ تشمل ميزات Ruby سهولة القراءة والكتابة، المرونة، ودعم البرمجة الكائنية واستخدام المكتبات والإضافات المتعددة.
ما هي التطبيقات الشائعة لـ Ruby؟ تشمل تطوير الويب باستخدام Ruby on Rails، أتمتة المهام، وتحليل البيانات باستخدام مكتبات مثل SciRuby.
كيف يمكنني إدارة الإضافات في Ruby؟ يمكنك استخدام gem
لتثبيت وإدارة الإضافات (Gems) التي تضيف وظائف مختلفة لمشاريعك.
روابط مفيدة حول Ruby
- الموقع الرسمي لـ Ruby – زيارة الموقع
- دليل تثبيت Ruby – قراءة المزيد
- دليل Ruby on Rails – زيارة الموقع
- أفضل الممارسات لكتابة الكود في Ruby – قراءة المزيد
- دليل SciRuby لتحليل البيانات – زيارة الموقع
هذه الروابط توفر معلومات شاملة ودعمًا إضافيًا حول كيفية البدء في تعلم Ruby واستخدامها بفعالية في مشاريع البرمجة المختلفة.