কম্পিউটার টিউটোরিয়াল

রুবি দিয়ে কমান্ড-লাইন ইন্টারফেস তৈরি: ধাপে ধাপে গাইড

আপনি কি কমান্ড লাইন ইন্টারফেস তৈরি করার কথা ভাবছেন? এটি একটি চমৎকার প্রজেক্ট আইডিয়া! এই গাইডে আমরা রুবিতে কমান্ড লাইন ইন্টারফেস কীভাবে তৈরি করবেন তা আলোচনা করব।

শুরু করার আগে, আপনার কম্পিউটারে রুবি ইনস্টল থাকতে হবে এবং আপনাকে ইউনিক্স কমান্ড চালানোর জন্য একটি টার্মিনাল ব্যবহার করতে হবে। আপনি যদি লিনাক্স বা macOS-ভিত্তিক কম্পিউটার ব্যবহার করেন, তবে আপনার কাছে ইতিমধ্যে একটি ইউনিক্স-কম্প্যাটিবল টার্মিনাল বিল্ট-ইন থাকবে। একবার এই প্রয়োজনীয়তা পূরণ হলে, আপনি শুরু করার জন্য প্রস্তুত!

কমান্ড লাইন ইন্টারফেস কী?

আপনার কোডিং ক্যারিয়ার শুরু করলে আপনি টার্মিনাল সম্পর্কে শিখবেন। টার্মিনাল উইন্ডো আপনাকে কমান্ড লাইন ইন্টারফেস (CLI)-এর সাথে ইন্টারঅ্যাক্ট করতে দেয়, যা আপনি টেক্সট কমান্ড ব্যবহার করে প্রোগ্রাম চালাতে এবং সেগুলোর সাথে ইন্টারঅ্যাক্ট করতে ব্যবহার করতে পারেন।

টার্মিনাল উইন্ডো ব্যবহার করে আপনি মাউস বা ভিজ্যুয়াল অ্যাপ্লিকেশন ছাড়া আপনার কম্পিউটারকে নির্দেশনা দিতে পারেন। এটি কোডিং করার সময় আপনার সময় বাঁচায় কারণ আপনি কেবল নির্দেশনা লেখার ওপর ফোকাস করতে পারেন। আপনি যেকোনো টুল ব্যবহার করার জন্য নতুন ইউজার ইন্টারফেস শিখতে চিন্তা করতে হবে না!

আপনি যেসব CLI-এ ইন্টারঅ্যাক্ট করেছেন সেগুলো সম্ভবত অন্যরা ডেভেলপ করেছে। উদাহরণস্বরূপ, Python CLI আপনাকে টার্মিনাল থেকে Python চালাতে দেয়, যখন Ruby CLI রুবি অ্যাপ্লিকেশনের সাথে একই কাজ করে। خوشকিসমتی से, আপনি নিজেরও তৈরি করতে পারেন!

শুরু করতে, আপনার মেশিনে একটি টার্মিনাল উইন্ডো খুলুন। তারপর আপনার কোডের জন্য একটি ফোল্ডার তৈরি করতে mkdir কমান্ড ব্যবহার করুন। এখানে এই কমান্ডের একটি উদাহরণ:

এই কমান্ড আমাদের কম্পিউটারে "ruby-cli" নামে একটি ফোল্ডার তৈরি করে। এখন আমরা এই ফোল্ডারে যেতে cd ব্যবহার করতে পারি এবং আমাদের CLI তৈরি করতে পারি:

চমৎকার! এখন আমরা আমাদের নতুন "ruby-cli" ফোল্ডারে আছি। এই আর্টিকেলের জন্য সেটআপের এতটুকুই প্রয়োজন — পরবর্তী ধাপ হলো আমাদের কমান্ড লাইন ইন্টারফেস লিখা শুরু করা।

আমরা আমাদের কমান্ড লাইন ইন্টারফেসে প্রথম ফিচার যোগ করব: আমাদের টার্মিনালে "This is an example CLI" টেক্সট প্রিন্ট করা। আমরা "home.rb" নামে একটি নতুন ফাইল তৈরি করে এবং সেখানে কোড যোগ করে এটি করতে পারি।

নতুন ফাইল তৈরি করতে আমরা নিচের কমান্ড ব্যবহার করতে পারি:

এটি একটি nano টেক্সট এডিটর খুলবে যেখানে আমরা আমাদের প্রোগ্রামের কোড রাখব। আপনি চাইলে ভিম বা ইম্যাক্স gibi অন্য টেক্সট এডিটরও ব্যবহার করতে পারেন।

আমাদের nano টেক্সট এডিটরে, আমরা নিচের কোডটি পেস্ট করব:

#!/usr/bin/env ruby
puts "This is an example CLI"

এখন, কন্ট্রোল-X (ম্যাকে), Y এবং এন্টার চাপিয়ে সেভ করুন। এটি আমাদের "ruby-cli" ফোল্ডারে "home.rb" নামে একটি নতুন ফাইল তৈরি করবে।

আমাদের কোডে, প্রথম লাইন কম্পিউটারকে রুবি ইন্টারপ্রেটার ব্যবহার করে আমাদের কোড চালানোর জন্য বলে। এটি নিশ্চিত করে যে আমাদের কোড রুবিতে চলে। দ্বিতীয় লাইন আমাদের প্রোগ্রামকে কনসোলে "This is an example CLI" প্রিন্ট করতে বলে।

এখন, আমরা ruby কমান্ড ব্যবহার করে আমাদের ফাইলটি চালাতে পারি:

আমাদের কোড রিটার্ন করে:

আপনি দেখতে পাচ্ছেন, আমরা শুধু একটি সিম্পল CLI তৈরি করেছি। যখন আমরা আমাদের "home.rb" ফাইলটি চালাই, 'This is an example CLI" টেক্সটটি কনসোলে প্রিন্ট হয়।

ফ্ল্যাগ ব্যবহার করে ইউজার ইনপুট গ্রহণ করা

আমাদের CLI এখন পর্যন্ত বেশ সিম্পল — এটি কেবল কনসোলে একটি মেসেজ প্রিন্ট করে। আপনি যদি ইউজার ইনপুট গ্রহণ করতে চান? আমরা optparse লাইব্রেরি ব্যবহার করে এটি করতে পারি। এটি আমাদের কমান্ড লাইন থেকে প্রদত্ত অপশনগুলো পার্স করতে দেয় যেগুলো আমাদের প্রোগ্রামে ব্যবহার করা যায়।

আমরা optparse লাইব্রেরি ব্যবহার করছি কয়েকটি কারণ। প্রথমে, optparse লাইব্রেরি আমাদের প্রতিটি কমান্ডের জন্য একটি হেল্প মেনু জেনারেট করতে দেয়। দ্বিতীয়, optparse রুবিতে বিল্ট-ইন, তাই আপনাকে কিছুই ইনস্টল করতে হবে না।

চলুন একটি ফিচার যোগ করি যা ইউজারের ইমেইল অ্যাড্রেস ইনপুট হিসেবে নেবে এবং তারপর কনসোলে রিটার্ন করবে।

"home.rb" ফাইলটি আপনার টেক্সট এডিটরে খুলুন এবং এর কন্টেন্ট নিচের কোড দিয়ে রিপ্লেস করুন:

#!/usr/bin/env ruby
require 'optparse'
options = {}
OptionParser.new do |op|
  op.on("-e", "--email", "Your email address") do |value|
    options[:name] = value
  end
end.parse!
puts 'Your email address is: ' + options[:name]

এই কোডে, আমরা optparse লাইব্রেরি ব্যবহার করে একটি কমান্ডের মাধ্যমে পাঠানো ডেটা পার্স করছি। তারপর ইউজার যা নির্দিষ্ট করেছেন সেই মানটি একটি ভেরিয়েবলে অ্যাসাইন করছি এবং কনসোলে প্রিন্ট করছি। এই কেসে, আমরা "Your email address is: " প্রিন্ট করছি, তারপর ইউজার যা নির্দিষ্ট করেছেন সেই ইমেইল।

আমাদের কোড ট্রাই করার জন্য এই কমান্ডটি ব্যবহার করতে পারি:

ruby home.rb -e jack@jones.com

আমাদের কোড রিটার্ন করে:

Your email address is: jack@jones.com

optparse লাইব্রেরির কুল ফিচার হলো এটি অটো-জেনারেট করে একটি হেল্প মেনু। আমরা নিচের কোড ব্যবহার করে এই হেল্প মেনু দেখতে পারি:

আমাদের কোড রিটার্ন করে:

Usage: ruby [options]
  -e, --email Your email address

আপনার কমান্ড চালানোর সময় আপনি হয় -e বা --email ফ্ল্যাগ ব্যবহার করতে পারেন।

রুবি দিয়ে কমান্ড-লাইন ইন্টারফেস তৈরি: ধাপে ধাপে গাইড
"Career Karma আমার জীবনে ঢুকেছিল যখন আমার সেটি সবচেয়ে বেশি দরকার ছিল এবং দ্রুত একটি বুটক্যাম্পের সাথে মিলিয়ে দিয়েছিল। গ্র্যাজুয়েট হওয়ার দুই মাস পর আমি আমার স্বপ্নের চাকরি পেয়েছিলাম যা আমার মূল্যবোধ এবং লক্ষ্যের সাথে মিলে যেত!"

— ভেনাস, সফটওয়্যার ইঞ্জিনিয়ার, রকবট

আপনার বুটক্যাম্প ম্যাচ খুঁজুন

আপনার প্রোগ্রামে ইউজার ইনপুট গ্রহণ করা

পূর্বের উদাহরণে, আমরা ফ্ল্যাগ ব্যবহার করে ইউজার ইনপুট গ্রহণ করেছিলাম। যাইহোক, ফ্ল্যাগ অপরিপ্র্যাকটিকাল হতে পারে যদি আপনি একাধিক তথ্য গ্রহণ করতে চান।

রুবিতে CLI তৈরি করার সুন্দর দিক হলো যেকোনো রুবি প্রোগ্রাম একটি CLI হতে পারে। তাই আপনাকে শুরু করার জন্য কোনো নতুন কনভেনশন শিখতে হবে না।

মান লें আমরা একটি অ্যাপ্লিকেশন বানাতে চাই যা ইউজারের নাম এবং ইমেইল নেবে, এবং চেক করবে যে তারা ১৬ বছরের বেশি কিনা।

নিচের কমান্ড চালিয়ে আমাদের nano টেক্সট এডিটরে যাই:

আপনার নতুন তৈরি ফাইলে নিচের কোড পেস্ট করুন:

puts "What is your name?"
name = gets
puts "What is your age?"
age = gets
if age.to_i >= 16
  puts "#{name}! You are 16 or older!"
else
  puts "#{name}! You are not over the age of 16!"
end

ফাইল সেভ করার পর, আপনি নিচের কমান্ড ব্যবহার করে আপনার নতুন CLI চালাতে পারেন:

আমাদের কোড রিটার্ন করে:

What is your name? James
What is your age? 17
James! You are 16 or older!

যদি আমরা "What is your age?" প্রশ্নের জবাবে "১৪" দিই, তবে নিচের আউটপুট আসবে:

James! You are not over the age of 16.

আপনি আপনার CLI-তে যেকোনো রুবি কোড লিখতে পারেন। একমাত্র সীমা হলো আপনার কল্পনাশক্তি।

উপসংহার

একটি CLI আপনাকে একটি প্রোগ্রামের সাথে টার্মিনাল ব্যবহার করে ইন্টারঅ্যাক্ট করতে দেয়। এটি একটি প্রোগ্রামের ইউজার ইন্টারফেসের বিকল্প (যেমন আপনি Atom বা Notepad-এর মতো টেক্সট এডিটর খোলার সময় যা দেখেন)।

এই গাইডে, আমরা আপনাকে রুবি ব্যবহার করে একটি সিম্পল CLI কীভাবে তৈরি করবেন তা দেখিয়েছি। এখন আপনি একটি রুবি এক্সপার্টের মতো নিজের CLI তৈরি করা শুরু করতে পারেন!

  1. C#-তে মেথড ডিপ্রিকেট (Obsolete) করা

  2. PHP-তে imagepolygon() ফাংশন

  3. C++-এ কম্পোজিট ডিজাইন প্যাটার্ন (Composite Design Pattern)

  4. সি প্রোগ্রাম দিয়ে দ্বিঘাত সমীকরণের রুট (Roots) বের করা