কম্পিউটার

কীভাবে রুবি জাদু দূর করবেন এবং আপনার রত্নগুলি বুঝবেন

আপনি যখন রেল অ্যাপস তৈরি করবেন, তখন আপনি রত্নগুলির গাদা ব্যবহার করবেন। তাদের কিছু সম্পূর্ণ জাদুকরী মনে হয়! কিন্তু সেই জাদুটা কীভাবে ঘটে?

বেশিরভাগ রত্নগুলিতে, এমন কিছু নেই যা তারা করছে যা আপনি করতে পারেননি। এটি শুধুমাত্র রুবি কোড৷৷ কখনও কখনও এটি জটিল রুবি কোড। কিন্তু আপনি যদি সেই কোডটি অন্বেষণ করেন, তাহলে আপনি বুঝতে শুরু করবেন যে সেই জাদুটি কোথা থেকে এসেছে।

সোর্স কোড খোঁজা

একটি রত্ন কিভাবে কাজ করে তা বোঝার জন্য আপনাকে এর কোড খুঁজে বের করতে হবে।

যদি এমন কোনও পদ্ধতি থাকে যার সম্পর্কে আপনি আরও জানতে চান, আপনার কাছে উত্সটি খুঁজে পাওয়ার একটি সহজ উপায় রয়েছে:method এবং source_location . আমি এগুলো নিয়ে একটু আগে লিখেছিলাম . এখানে একটি উদাহরণ:

irb(main):001:0> ActiveRecord::Base.method(:find).source_location
=> ["/usr/local/lib/ruby/gems/2.1.0/gems/
  activerecord-4.2.0.beta4/lib/active_record/core.rb", 127]

কিন্তু আপনি যদি একাধিক পদ্ধতিতে আগ্রহী হন?

আপনার যদি আপনার Rails অ্যাপের ডিরেক্টরির মধ্যে একটি কনসোল খোলা থাকে, তাহলে আপনি সরাসরি একটি রত্ন কোডে যেতে পারেন:

~/Source/gem_example[master] jweiss$ bundle open rack

যদি এটি আপনার Gemfile-এ থাকে , bundle open rack পুরো rack খুলবে আপনার সম্পাদকে রত্ন৷৷ আপনি আরামে এর ভিতরের সকল ফাইল ব্রাউজ করতে পারবেন।

আপনি কোথায় শুরু করবেন?

এখন আপনি জানেন যে রত্নটির কোডটি কোথায়, আপনি কীভাবে এটি বুঝতে শুরু করবেন?

যদি আপনি শেখার চেষ্টা করেন কিভাবে activerecord lib/active_record.rb পড়ার মাধ্যমে কাজ করে , আপনি কোথাও পেতে যাচ্ছেন না৷৷ আপনি শুধু প্রচুর autoload খুঁজে পেতে যাচ্ছেন s এবং require s.

পরে একটি রত্ন বোঝা সবচেয়ে সহজ আপনার অ্যাপ এটি সামান্য ব্যবহার করে। মণি আপনার জন্য যে ধরনের কাজ করছেন সে সম্পর্কে একবার আপনি আরও জানুন। এইভাবে, আপনার কোন আকর্ষণীয় ক্লাস এবং পদ্ধতিগুলি দিয়ে শুরু করা উচিত সে সম্পর্কে আপনি ইতিমধ্যেই একটি ধারণা পাবেন।

কিছু আকর্ষণীয় পদ্ধতির নাম দেওয়ার পরে, আপনি source_location ব্যবহার করতে পারেন , প্রজেক্টে খুঁজুন আপনার এডিটরে, বা কমান্ড লাইনে ag দেখুন যেখানে সেই পদ্ধতিগুলি সংজ্ঞায়িত করা হয়েছে। আর তখনই মজা শুরু হয়।

রত্ন কোড আপনার মেশিনে আছে, তাই না? এর মানে আপনি যেভাবে চান তা পরিবর্তন করতে পারেন! আপনি এমনকি এটি ভেঙ্গে দিতে পারেন, এবং অন্য কেউ জানতে হবে না.

যখন আমি একটি রত্ন কিভাবে কাজ করে তা বোঝার চেষ্টা করছি, আমি শুধু কোডটি পড়ি না। আমি puts যোগ করি মণির মধ্যে বিবৃতি, আমার অ্যাপ কীভাবে নির্দিষ্ট লাইনে পৌঁছেছে তা বের করার জন্য আমি ব্যতিক্রমগুলি নিক্ষেপ করি এবং লেখক কেন এটি এমনভাবে লিখেছেন তা বোঝার জন্য আমি কোডের সাথে তালগোল পাকিয়ে ফেলি।

একবার আপনি কীভাবে কৌশলটি করেছেন তা জানলে, এটি অনেক কম যাদুকর। এবং আপনাকে অনুমান করতে হবে না সেই কোডটি অদ্ভুত পরিস্থিতিতে কীভাবে কাজ করবে, কারণ আপনি নিজেই এটি দেখতে পারবেন।

নিজের পরে পরিষ্কার করা

আপনি রত্ন কোডের সাথে গোলমাল করার পরে, আপনার অ্যাপটি বেশ খারাপ অবস্থায় থাকতে পারে৷৷ এটা হয়তো আর চলবে না! এবং এমনকি যদি এটি করে, এটি সেই সমস্ত puts স্প্যাম করতে চলেছে৷ বিবৃতি আপনি আপনার কনসোলে যোগ করেছেন।

কিন্তু রুবিজেমসের কাছে জিনিসগুলিকে স্বাভাবিক অবস্থায় ফিরিয়ে আনার একটি দ্রুত উপায় রয়েছে:

~ jweiss$ gem pristine activerecord -v 4.2.0
Restoring gems to pristine condition...
Restored activerecord-4.2.0

অথবা, যদি আপনি মনে না থাকেন যে আপনি কোন রত্নগুলির সাথে তালগোল পাকিয়েছেন এবং আপনি সত্যিই ধৈর্যশীল:

~ jweiss$ gem pristine --all

এর পরে, আপনার সমস্ত রত্ন আপনি সেগুলি ইনস্টল করার সময় আগের মতো ফিরে আসবে৷

আপনি কি অন্বেষণ করতে যাচ্ছেন?

আপনি যখন আপনার রত্নগুলির মধ্যে কোডটি খুঁজে পান, পড়েন এবং অন্বেষণ করেন, তখন আপনি গভীর স্তরে যে কোডটির উপর নির্ভর করেন তা আপনি বুঝতে পারবেন৷ এবং আপনাকে আর অনুমান এবং অনুমানের উপর নির্ভর করতে হবে না।

এই পোস্টটি মূলত আমার তালিকায় একচেটিয়াভাবে পাঠানো হয়েছিল। প্রতি শুক্রবার আপনার ইনবক্সে এর মতো আরও পোস্ট পেতে, এখানে সাইন আপ করুন!


  1. মৌলিক ওওপি নীতিগুলির সাথে আপনার রুবি কোডকে কীভাবে নাটকীয়ভাবে উন্নত করবেন

  2. আপনার রুবি পদ্ধতি গুপ্তচর কিভাবে

  3. কীভাবে আপনার রুবি প্রোগ্রামগুলি ডিবাগ এবং ঠিক করবেন

  4. কিভাবে আপনার আইপ্যাড এবং আইফোন দিয়ে একটি QR কোড স্ক্যান করবেন?