ruby چیست؟
ruby زبان برنامه نویسی پویا و شی گرا و زبانی Open Ssource (متن باز) است. ruby شبیه زبانهای برنامه نویسی perl و Smalltalk است که این زبانها نیز شی گرا و پویا هستند. ruby در سیستم عاملهای مختلف مانند Windows، Mac و Unix قابل اجرا میباشد. همه چیز در ruby به صورت شی است و هر کد ویژگیهای خود را دارد.
ruby توسط Yukihiro “Martz” Matsumoto در ژاپن طراحی شد. Yukihiro “Martz” Matsumoto ruby میخواست زبان برنامه نویسی طراحی کند که کاملا شی گرا باشد و استفاده از آن برای کاربر آسان باشد. بنابراین او زبان برنامه نویسی را طراحی کرد و نام آن را ruby گذاشت و آن را توسعه داد.
در قوانین زبان جاوا برای نام گذاری متغیرها از کاراکترهایی استفاده میشود که حروف انگلیسی و اعداد هستند و نام متغیر با عدد شروع نمیشود. همین قوانین در روبی نیز وجود دارد شاید کسانی که قبلاً جاوا کار کرده اند بهتر میتوانند زبان Ruby را یاد بگیرند. برای دریافت آموزش زبان جاوا میتوانید به لینک زیر مراجعه کنید:
ویژگی های زبان ruby
در ادامه آموزش زبان ruby، به تشریح چند مورد از ویژگیهای ruby میپردازیم:
- Object Oriented: زبان برنامه نویسی ruby کاملا شی گرا است. هر مقدار یک شی است و هر شی دارای یک کلاس و هر کلاس دارای یک کلاس فوق العاده است. هر کد ویژگی خود را دارد.
- Flexibility: زبان ruby یک زبان انعطاف پذیر است و شما میتوانید موارد لازم را حذف، اضافه یا تغییر و تعریف کنید.
- Dynamic typing and Duck typing: این زبان، زبان برنامه نویسی پویا است. کلاسها، ماژولها و تعریفهای متد هنگام اجرا توسط کد ساخته میشوند. متغیرهای ruby زبانی با loosely typed یا تایپ آزاد هستند، به این معنی که هر متغیری میتواند هر نوع شی را در خود جای دهد و نیازی به اعلان ندارد. Ruby صرف نظر از نوع شی فقط به نام آن نگاه می کند. این عملکرد یک نوع Duck typing است. وقتی از Duck typing استفاده میکنید انواع را بررسی نمیکند و در عوض وجود یک ویژگی مشخص را بررسی میکند.
- Variable constants: ثابتهای متغیر در ruby واقعا ثابت نیستند. یعنی اگر یک constant اولیه در یک کد اصلاح شود، یک error به شما میدهد اما برنامه را متوقف نمیکند.
- Keyword arguments: زبان برنامه نویسی ruby نیز میتواند مانند زبان پایتون، با آرگومانهای کلمه کلیدی تعریف شود.
- Method names: در زبان ruby متدهایی که به سوالات پاسخ میدهند به علامت (؟) و متدهایی که وضعیت شی را تغییر میدهد به علامت ( ! ) ختم میشوند.
- Keywords: در زبان ruby تقریبا ۴۲ کلمه کلیدی وجود دارد که از آنها برای اهداف دیگر نمیتوان استفاده کرد. به این کلمهها، کلمات رزرو شده میگویند.
مراحل نصب ruby
در این بخش از آموزش زبان ruby به مرحله نصب این زبان برنامهنویسی میرسیم: ruby در سیستم عاملهای مختلف به طور متفاوت نصب میشود.
- در سیستم عامل unix از package manager سیستم استفاده کنید.
- در سیستم عامل windows از RubyInstaller استفاده میشود.
- در سیستم OSX، از ابزارهای rbenv و RVM استفاده کنید.
در ادامه مطلب، زبان ruby را در لینوکس با استفاده از package manager نصب خواهیم کرد.
- انتخاب سیستم package management برای نصب.
- در سیستم عامل Debian GNU ، Ubuntu و لینوکس از apt package manager استفاده میشود.از کد زیر استفاده کنید:
sudo apt-get install ruby-full
۳. برای اطمینان از نصب نسخه ruby در سیستم خود از دستور زیر استفاده کنید:
ruby -v
نحوه نوشتن یک برنامه ساده در ruby
در این مبحث از آموزش زبان ruby یک برنامه ساده از ruby را کدنویسی میکنیم. قبل از نوشتن برنامه مطمئن شوید که ruby را در سیستم خود نصب کردید.
۱. پیش نیاز برنامه Hello Ruby
قبل از نوشتن یک برنامه ساده (مانند Hello ruby) به زبان برنامه نویسی ruby لازم است که ابتدا مراحل زیر را طی کنید:
- ruby را دانلود و نصب کنید.
- یک فایل با پسوند rb ایجاد کنید.
- Ruby path را به فایل وصل کنید.
- در نهایت فایل را ایجاد کند.
۲. ایجاد برنامه Hello Ruby
در ابتدا از ویراشگر متن استفاده کنید و یک فایل به نام hello.rb ایجاد کرده و کد زیر را بنویسید.
puts "Hello Ruby !"
Ruby path را به فایل بالا وصل کنید. چون فایل hello.rb را در دسکتاپ ایجاد کردیم بنابراین ابتدا باید دایرکتوری دسکتاپ را از طریق console خود وارد کنیم.
دستور زیر را اجرا کنید:
ruby hello.rb
در نهایت خروجی برنامه HELLO Ruby اینگونه خواهد بود.
متغیرها در Ruby
در آموزش زبان ruby به بحث متغیرها میرسیم. متغیرها در ruby دادهها را برای استفاده در برنامه نگه میدارند. نام هر متغیر متفاوت است. این متغیرها را بر اساس برخی قراردادها نامگذاری میکنند. در زبانهای برنامه نویسی باید متغیر را تعریف کنند اما در زبان برنامه نویسی ruby نیازی نست متعیر تعریف شود و یک پیشوند برای نشان دادن آن کافی است.
چهار نوع متغیر در ruby وجود دارد:
- Local variables متغیر محلی
- Class variables متغیر کلاس
- Instance variables متغیر نمونه
- Globale variables متغیر جهانی
۱. متغیر های محلی Local variables
نام Local variables با یک زیرخط (_) شروع میشود که در بلوک اولیه است. پس از تکمیل بلوک کد، متغیر هیچ محدوده ای ندارد. هنگامی که Local variables به صورت نامشخص فراخوانی میشوند، آنها به عنوان متدی تفسیر می شوند که هیچ آرگومانی ندارند.
۲. متغیر های کلاس Class variables
نام Class variables با علامت @@ شروع میشود. قبل از استفاده از متغیر کلاس باید آن را مقداردهی اولیه کرد. متغیر کلاس متعلق به کل کلاس میباشد. Class variables از هر جایی در کلاس قابل دسترسی میباشد. اگر مقدار متغیر کلاس در یک کد تغییر کند، در هر نمونه تغییر خواهد کرد. یک متغیر کلاس در ruby بدون مقداردهی با خطا مواجه میشود.
مثال برای Class variables
#!/usr/bin/ruby class States @@no_of_states=0 def initialize(name) @states_name=name @@no_of_states += 1 end def display() puts "State name #@state_name" end def total_no_of_states() puts "Total number of states written: #@@no_of_states" end end # Create Objects first=States.new("Assam") second=States.new("Meghalaya") third=States.new("Maharashtra") fourth=States.new("Pondicherry") # Call Methods first.total_no_of_states() second.total_no_of_states() third.total_no_of_states() fourth.total_no_of_states()
در مثال بالا no_of_states@@ یک متغیر کلاس است.
sssit@Java Tpoint:~/Desktop$ ruby hello.rb Total number of states written:4 Total number of states written:4 Total number of states written:4 Total number of states written:4 sssit@Java Tpoint:~/Desktop$
۳. متغیر های نمونه Instance variables
Instance variables با علامت @ شروع میشود. به یک نمونه از کلاس متعلق است و از هر نمونهای در کلاس در یک متد قابل دسترسی است. متغیر نمونه دسترسی محدودی به یک نمونه خاص از یک کلاس دارند. Instance variables نیازی به مقداردهی اولیه ندارد. Instance variables اولیه مقدارش صفر خواهد بود.
#!/usr/bin/ruby class States def initialize(name) @states_name=name end def display() puts "States name #@states_name" end end # Create Objects first=States.new("Assam") second=States.new("Meghalaya") third=States.new("Maharashtra") fourth=States.new("Pondicherry") # Call Methods first.display() second.display() third.display() fourth.display()
در مثال بالا، states_name@ در مثال بالا، Instance variables یا همان متغیر نمونه است.
خروجی برنامه به شکل زیر خواهد بود:
sssit@JavaTpoint:~/Desktop$ ruby hello.rb States name Assam States name Meghalaya States name Maharashtra States name Pondicherry sssit@JavaTpoint:~/Desktop$
۴. متغیر های سراسری Global variables
نام Global variables با علامت $ شروع میشود و دامنه آن جهانی است. یعنی در هر جایی از برنامه میتوان به آن دسترسی داشت. متغیر جهانی بدون مقدار اولیه صفر میشود. تعدادی Global variables از پیش تعریف شده در ruby وجود دارد.
مثال برای Global variables:
#!/usr/bin/ruby $global_var = "GLOBAL" class One def display puts "Global variable in One is #$global_var" end end class Two def display puts "Global variable in Two is #$global_var" end end oneobj = One.new oneobj.display twoobj = Two.new twoobj.display
در مثال بالا، states_name@ متغیر نمونه است.
خروجی برنامه به این شکل خواهد بود:
sssit@JavaTpoint:~/Desktop$ ruby hello.rb Global variable in one is GLOBAL Global variable in TWO is GLOBAL sssit@JavaTpoint:~/Desktop$
مفاهیم شی گرایی در ruby
ruby یک زبان کاملا شی گرا است. همه چیز در روبی یک شی است. همه اعداد، رشته ها یا حتی کلاسها یک شی هستند. کل زبان ruby براساس مفاهیم شی و داده ساخته شده است. OOPs یک مفهوم برنامه نویسی است که برنامه نویسان از آن برای طراحی برنامههای کاربردی و برنامههای کامپیوتری استفاده میکند.
در ادامه به برخی از مفاهیم اساسی در OOPs اشاره خواهیم کرد:
- Encapsulation کپسوله سازی
- Polymorphism پولی مورفیسم
- Inheritance وراٍثت
- Abstraction انتزاع_ مفهوم_ برداشت
Encapsulation: این مفهوم جزئیات پیاده سازی یک کلاس را از اشیاء دیگر پنهان میکند. هدف اصلی Encapsulation محافظت از داده ها در برابر دستکاری دادهها است.
Polymorphism: در این مفهوم قابلیت نمایش یک اپراتور و عملکرد آن به روشهای مختلف را برای دادههای مختلف نشان میدهد.
Inheritance: Inheritance با استفاده از کلاسهای از پیش تعریف شده، کلاسهای جدیدی ایجاد میکند. کلاس جدید رفتار کلاس parent خود را به ارث میبرد که به نام superclass معرفی میشود. به این ترتیب، کلاسهای از پیش تعریف شده میتوانند قابل استفاده مجدد و مفیدتر از قبل باشند.
Abstraction: پیچیدگی یک کلاس را با استفاده از مدلسازی کلاسی که متناسب با مسئله پنهان میکند.
نحوه ایجاد کلاس در ruby
در ادامه آموزش زبان ruby به مبحث کلاس در ruby میرسیم. کلاس ruby طرح اولیه یک نوع داده را تعریف میکند. معنی آن نام کلاس را مشخص میکند. یک کلاس با کلمه کلیدی Class و به دنبال آن Class name تعریف میشود و با کلمه کلیدی end به پایان میرسد. در کلاس زبان ruby، نام کلاس با حروف بزرگ شروع میشود. نام کلاس را با بیش از یک کلمه در کنار حروف بزرگ و بدون نویسه جدا کننده اجرا میشود.
با نوشتن کد زیر یک کلاس جاوا ایجاد میشود:
class Greeter
خروجی به شکل زیر خواهد بود:
sssit@JavaTpoint:~$ irb irb(main):001:0> class Java irb(main):002:1> def initialize(name = "world") irb(main):003:2> @name = name irb(main):004:2> end irb(main):005:1> def say_welcom irb(main):006:2> puts "welcom #{@name}!" irb(main):007:2> end irb(main):008:1> def say_bye irb(main):009:2> puts "Bye # #{@name}, see you soon." irb(main):010:2> end irb(main):011:1> end => nil
یک کلاس جدید جاوا ایجاد می شود. name@ یک متغیر نمونه است که برای همه متدهای کلاس جاوا در دسترس است. توسط say_welcome و say_bye استفاده میشود.
انواع متد ها در Ruby
در آموزش زبان ruby به انواع متدها میرسیم. متدها توابعی هستند که در داخل ساختار یک کلاس تعریف میشوند. داده ها در ruby از طریق Methods قابل دسترسی هستند. وقتی که یک متد فراخوانی میشود، مسیری دنبال میشود که ruby در آن جستجو میکند. برای پیدا کردن زنجیره جستجوی Methods می توانیم از روش ancestors استفاده کنیم.
تعریف متد در Ruby
متدی با کلمه کلیدی def تعریف میشود و با کلمه کلیدی end پایان مییابد. ما نام متدی را تعریف میکنیم که خروجی زیر را نمایش میدهد:
sssit@JavaTpoint:~$ irb irb(main):001:0> def name irb(main):002:1> puts "My name is Anna!" irb(main):003:1> end => nil irb(main):004:0> name My name is Anna! => nil irb(main):005:0>
کلمه کلیدی def تعریف نام متد را شروع میکند. سپس ساختار متد را مینویسیم. انتهای خط آخر نشان میدهد که متد تعریف شده است.
متد های Instance
متدهای instance هم با کلمه کلیدی def تعریف شده است و فقط با یک نمونه کلاس قابل استفاده است.
مثال برای متدهای instance
#!/usr/bin/ruby -w # define a class class Circle # constructor method def initialize(r) @radius = r end # instance method def getArea ۳.۱۴ * @radius * @radius end end # create an object circle = Circle.new(2) # call instance methods a = circle.getArea() puts "Area of the box is : #{a}"
و خروجی برنامه به شکل زیر خواهد بود:
sssit@JavaTpoint:~/desktop$ ruby hello.rb Area of the box is : 12.56 sssit@JavaTpoint:~/desktop$
وراثت در Ruby
در وراثت کلاسهای جدید را با استفاده از کلاسهایی که از پیش تعریف شده است ایجاد میکنیم. کلاسهایی که جدید ایجاد شدهاند، کلاسهای مشتق شده و کلاسهایی که از آنها مشتق شدهاند، کلاسهای پایه میگویند. با وراثت، یک کد میتواند دوباره استفاده شود که باعث میشود پیچیدگی در برنامه کاهش یابد.
ruby از چندین سطح وراثت پشتیبانی نمیکند. به جای آن از mixins پشتیبانی میکند. در Ruby از کاراکتر < برای ایجاد یک زیر کلاس استفاده میکنند. نحوه ایجاد در زیر نشان داده شده است:
parentClass < subClass
مثال برای Ruby Inheritance (وراثت در ruby)
#!/usr/bin/ruby class Parent def initialize puts "Parent class created" end end class Child < Parent def initialize super puts "Child class created" end end Parent.new Child.new
در برنامهای که در بالا نوشته شده است دو کلاس ایجاد شده است. یکی از آنها کلاس Parent و دیگری کلاس Child که هردو مشتق شده است. متد super سازنده کلاس Parent را فراخوانی میکند.
خروجی برنامه به شکل زیر خواهد بود:
sssit@JavaTpoint:~$ cd Desktop/ sssit@JavaTpoint:~/Desktop$ ruby hello.rb parent class created parent class created child class created sssit@JavaTpoint:~$ cd Desktop$
اگر دقت کنید در خروجی اول کلاس Parent ایجاد میشود، سپس کلاس Child مشتق شده نیز سازنده کلاس parent خود را فراخوانی میکند و پس از آن کلاس Child ایجاد میشود. نکات گفته شده فقط بخشی از اصول پایهای برای آموزش زبان ruby بودند و برای یادگیری بیشتر آن بهتر است از فیلمهای آموزشی فرادرس مانند لینک زیر استفاده کنید:
سخن آخر درباره آموزش زبان ruby
به جمعبندی مطالب در آموزش زبان ruby رسیدیم. زبان ruby در برنامه نویسی سمت سرور، در ساخت بازی و برای محاسبات پزشکی و صنعتی به کار گرفته میشود. در این آموزش زبان برنامه نویسی ruby را توضیح دادیم.
ruby را با زبانهای دیگری مثل پایتون و perl مقایسه میکنند. همانطور که گفتیم هر زبان برنامه نویسی طرفدار خود را دارد و با مطالعه و کد نویسی زبان برنامه نویسی ruby شاید آن را به زبان برنامه نویسی دیگر ترجیح دهید و علاقمند بشوید.
در آموزش زبان ruby به تشریح ویژگیهای آن پرداختیم. نصب ruby در لینوکس، همراه با برنامه Hello ruby آموزش داده شد، مفهوم OOPs را بیان کردیم و در نهایت متدها را در ruby به همراه مثال بازگو کردیم.
پس از آموزش کامل این زبان می توانید فایل های کدنویسی خودتان را با سیستم کسب درآمد پی استور به فروش برسانید و از این طریق کسب درآمد کنید. بعد از مطالعهی این پست، نظرات و پیشنهادات خود را با ما در میان بگذارید. موفق و سربلند باشید.
یک پاسخ
باید بهتون خسته نباشید گفت