RubyCritic আপনার রুবি অ্যাপ্লিকেশনে কোড গন্ধ, কোড গঠন, পরীক্ষার সহজতা এবং পরীক্ষার কভারেজ হাইলাইট করে ভিজ্যুয়াল রিপোর্ট প্রদান করে।
এটি সক্রিয় বিকাশে রয়েছে, নতুন কোড বিশ্লেষণের সরঞ্জামগুলি প্রায়শই নতুন বৈশিষ্ট্য হিসাবে চালু করা হচ্ছে। রুবিক্রিটিক-এর রিলিজের ট্র্যাক রাখা ভালো।
এই নিবন্ধটি RubyCritic-এর কিছু সুবিধা, এর নির্ভরতা এবং কীভাবে এর কোড রিপোর্ট পড়তে হয় সে সম্পর্কে স্পর্শ করবে।
চলুন চলুন!
কেন আপনার রুবি অন রেল অ্যাপ্লিকেশনের জন্য রুবিক্রিটিক বেছে নিন?
আপনি যদি আপনার প্রকল্পের জন্য কোডের উন্নতি পর্যালোচনা করার জন্য একটি একক জায়গা চান তবে আপনার রুবিক্রিটিক ব্যবহার করার কথা বিবেচনা করা উচিত। আপনার উন্নয়ন প্রক্রিয়ায় RubyCritic অন্তর্ভুক্ত করা অবশ্যই একটি উন্নয়ন দল প্রযুক্তিগত ঋণ নিয়ে কাজ করার সময়কে কমিয়ে দেবে। বেশিরভাগ প্রযুক্তিগত ঋণ উন্নয়নের সময় ম্যাপ করা হবে।
কিছু সুবিধা যা RubyCritic আপনার প্রকল্প এবং উন্নয়ন প্রক্রিয়া প্রদান করতে পারে:
- এক জায়গায় একীভূত তথ্য
- ভিজ্যুয়াল রিপোর্ট
- সহজ ইনস্টলেশন
- শূন্য কনফিগারেশন
- কাস্টমাইজেশন অনুমোদিত
- এক্সটেনসিবল হচ্ছে — আপনি নিজের ওপেন সোর্স ইন্টিগ্রেশন করতে পারেন
- একটি ব্যাজ জেনারেটর 🎉
রুবিক্রিটিক কীভাবে কাজ করে তা বোঝার জন্য, আসুন রিপোর্ট তৈরি করতে এটি যে অভ্যন্তরীণ নির্ভরতা ব্যবহার করে তা দেখি৷
রুবিক্রিটিকের অভ্যন্তরীণ নির্ভরতা
আপনি যখন আপনার প্রকল্পে RubyCritic যোগ করেন, তখন কিছু নির্ভরতাও অন্তর্ভুক্ত করা হবে।
আসুন সেই নির্ভরতাগুলিকে হাইলাইট করি যা জাদু ঘটায়:রিক, ফ্লে এবং ফ্লোগ রত্ন৷ এই নির্ভরতা রুবিক্রিটিককে আপনার কোড সম্পর্কে মূল্যবান তথ্য দেখাতে অনুমতি দেয়। তারা কীভাবে কাজ করে তা বোঝা রুবিক্রিটিককে ব্যবহার করা সহজ করে তোলে।
রিক:রুবিতে কোড গন্ধ সনাক্ত করুন
রুবিতে কোড গন্ধ সনাক্ত করার জন্য রিক একটি রত্ন। কোডে একটি খারাপ গন্ধ ভুল কোড শনাক্ত করা নয়, এটি আরও ভালভাবে কোড লেখা যায় কিনা তা বিশ্লেষণ করা।
Reek এর বিশ্লেষণ if সনাক্ত করে কিছু অন্য উপায়ে বাস্তবায়ন করা যেতে পারে। এটি কিভাবে পরামর্শ দেয় না৷ , যেহেতু বেশিরভাগ কোড গন্ধ ব্যবসায়িক যুক্তি এবং একটি ভাষার সাথে একজন বিকাশকারীর অভিজ্ঞতার সাথে যুক্ত।
উদাহরণস্বরূপ, আপনি সহজেই একটি if পুনরায় লিখতে পারেন মেটাপ্রোগ্রামিং কৌশল ব্যবহার করে বিবৃতি। এটি সংশোধন করার উপায়, যদিও, একটি প্রকল্পের প্রেক্ষাপট অনুযায়ী একজন বিকাশকারীর উপর নির্ভর করে। এই ক্ষেত্রে, কোন লাইব্রেরি সর্বোত্তম সমাধান নির্দেশ করতে সক্ষম হবে না।
রিক গন্ধের একটি বিস্তৃত তালিকা সনাক্ত করে। এটি সম্ভাব্য গন্ধগুলি পরীক্ষা করে এবং সনাক্ত করে:
৷- ক্লাস
- গুণাবলী
- পদ্ধতি
- পরামিতি
- মডিউল
- ইটারেটর
- পলিমরফিজমের বাস্তবায়ন
গন্ধ খুঁজে বের করার মাধ্যমে, আপনি আপনার কোডকে আরও পঠনযোগ্য এবং বজায় রাখার জন্য পদক্ষেপ নিতে পারেন।
Reek কাস্টম কনফিগারেশনের জন্য অনুমতি দেয়:
- একটি ডিটেক্টরের ধরন দ্বারা নিষ্ক্রিয় করুন
- ডিরেক্টরিগুলিকে স্ক্যান করা থেকে বাদ দিন
- সতর্কতা বন্ধ করতে ফিল্টার ব্যবহার করুন
এমনকি আপনি একটি স্ক্যানে দমন করার জন্য নির্দিষ্ট কোড সংজ্ঞায়িত করতে পারেন, এটি একটি খুব দরকারী বৈশিষ্ট্য যখন কোড এখনও চূড়ান্ত বা রিফ্যাক্টর করা হয়নি, বা এমনকি যদি এটি লিগ্যাসি কোড হয়।
আসুন Reek কিভাবে কাজ করে তার একটি নমুনা দেখি। এই কোডে, ব্যতিক্রমটিকে শুধু e হিসাবে সংজ্ঞায়িত করা হয়েছে .
এটা কল্পনা করা সহজ যে e একটি ব্যতিক্রম মানে, কিন্তু আমরা যদি অন্য ব্যতিক্রম আছে কি? তাদের সঠিকভাবে সনাক্ত করা ভাল কোড বজায় রাখার সর্বোত্তম উপায়।
Reek e সনাক্ত করবে UncommunicativeVariableName হিসাবে এবং একটি সতর্কতা দেখান৷
Flay:রুবি কোড ডুপ্লিকেশনের জন্য চেক করুন
ফ্লে স্ট্রাকচারাল রুবি কোডের মিল চিহ্নিত করে, যার মধ্যে রয়েছে:
- একটি প্রকল্পের মধ্যে কোড সদৃশ সনাক্তকরণ
- কোন কোড স্তরে পার্থক্য পরীক্ষা করা হচ্ছে
- আপনার কোড কতটা ভাল তা পরিমাপ করার জন্য একটি স্কোর তৈরি করা (আপনার স্কোর যত কম, কোড তত ভাল)
যদি Flay আপনার কোডে একটি মিল রিপোর্ট করে, এটি একটি উচ্চ সূচক যে রিফ্যাক্টরিং প্রয়োজন। এই উপেক্ষা করবেন না! ডুপ্লিকেট কোড হল বাগগুলির একটি গেটওয়ে। আপনি যদি এক জায়গায় কিছু ঠিক করেন কিন্তু অন্যের কথা ভুলে যান, আরও বাগ দেখা দেয়৷
৷ফ্লে কীভাবে কাজ করে তা আমরা তার নিজস্ব সোর্স কোডে চালিয়ে পরীক্ষা করতে পারি:
ফ্লে এই দুটির মধ্যে মিল চিহ্নিত করে:
নোট করুন যে কোডের বানান ঠিক একই নয়, তবে এর কার্যকারিতা রয়েছে এবং নকল এড়াতে পুনরায় ফ্যাক্টর করা যেতে পারে। এটাই ফ্লে-এর জাদু!
ফ্লোগ:রুবিতে আপনার কোডের জটিলতা পরীক্ষা করুন
Flog আপনার কোড পরীক্ষা করা কতটা কঠিন তা পরীক্ষা করে। এটি কোডের প্রতিটি লাইনের জন্য একটি জটিলতা স্কোর সেট করে এবং প্রতিটি পদ্ধতি এবং ক্লাসের জন্য স্কোর যোগ করে।
স্কোর যত বেশি হবে, তত বেশি আপনার কোড রিফ্যাক্টর করতে হবে কারণ এটি বোঝায় যে আপনার একটি অত্যন্ত জটিল বাস্তবায়ন রয়েছে।
চলুন অ্যাকশনে ফ্লাগ দেখি! একটি ছোট পরিবর্তন আপনার স্কোর পরিবর্তন করতে পারে।
নোট করুন যে কোডের প্রথম অংশে, আমাদের একটি or আছে পরীক্ষা করুন যে স্কোর 0.4 পয়েন্ট বৃদ্ধি করে।
অন্যান্য রুবিক্রিটিক নির্ভরতা
RubyCritic অন্যান্য রানটাইম নির্ভরতাও ব্যবহার করে, যেমন:
byebug- এটি ডিবাগিং রুবি অ্যাপ্লিকেশনগুলিকে উন্নত করে৷ এটি আপনাকে লাইন দ্বারা একটি প্রোগ্রাম লাইন চালাতে, ব্রেকপয়েন্ট যোগ করতে এবং রানটাইমে মানগুলি মূল্যায়ন ও ট্র্যাক করতে দেয়। আপনি যদি এখনওputsব্যবহার করেন ডিবাগিং এর জন্য, এখন আপনার বাইবাগ এর বৈশিষ্ট্য এবং কমান্ড জানার সময়।rubocop- রুবি কোডের জন্য একটি লিন্টার যা আপনাকে রুবি সম্প্রদায়ের দ্বারা ব্যবহৃত একটি শৈলী নির্দেশিকা অনুসরণ করতে বা এমনকি আপনার নিজস্ব কোড শৈলী প্রয়োগ করতে সহায়তা করে। আপনার দলে স্ট্যান্ডার্ড সেট করা এবং স্পেস এবং ট্যাব সম্পর্কে নির্বোধ দ্বন্দ্ব এড়াতে এটি খুবই কার্যকর।SimpleCov- রুবি অ্যাপ্লিকেশন কোড কভারেজ চেক করার একটি টুল। আপনি আপনার পরীক্ষার পাশাপাশি চালানোর জন্য এটি কনফিগার করতে পারেন। এটি কোড কভারেজের মেট্রিক্স প্রদান করে যাতে আপনি শনাক্ত করতে পারেন যে আপনার কিসের দিকে মনোযোগ দিতে হবে এবং আরও ভাল পরীক্ষার ক্ষেত্রে আপনার সময় কোথায় বিনিয়োগ করতে হবে।
RubyCritic-এর নির্ভরতার তালিকায় ডুব দিন।
আপনার রুবি অন রেল অ্যাপের জন্য রুবিক্রিটিক ব্যবহার করা
আপনাকে অনেক কনফিগারেশন ছাড়াই শুরু করতে সাহায্য করার জন্য RubyCritic-এর ভালো ডকুমেন্টেশন রয়েছে। তাই, আমরা এর রিসোর্স ব্যবহারের উপর ফোকাস করব এর রিপোর্ট বিশ্লেষণ করতে আমাদের সাহায্য করার জন্য।
রুবিক্রিটিক 'কোড', 'গন্ধ' এবং 'কভারেজ' প্রতিবেদন সরবরাহ করে। আমরা পালাক্রমে এই বৈশিষ্ট্যগুলির প্রতিটি দেখব৷
৷রুবিক্রিটিক-এ ওভারভিউ
'ওভারভিউ' পৃষ্ঠাটি ডোনাট চার্টে আপনার প্রকল্পের জন্য মোট স্কোর দেখায়, রেটিং সহ (A সেরা রেটিং, F সবচেয়ে খারাপ)। 'সারাংশ' বিভাগে ফাইলের সংখ্যা, মন্থন (পরিবর্তন কমিট) এবং পাওয়া গন্ধ সহ প্রতিটি রেটিং-এর বিশদ বিবরণ দেখায়।

এখানে 'মন্থন বনাম জটিলতা' বিভাগে, সবচেয়ে বড় জটিলতার সাথে ক্লাসটিকে চিহ্নিত করা ইতিমধ্যেই সম্ভব, যা সম্ভবত প্রথম মনোযোগের বিষয় হওয়া উচিত।
এই গ্রাফটি আরও ভালভাবে বোঝার জন্য, কোড মন্থনটি পুনরুদ্ধার করা মূল্যবান। যে কোডটি ঘন ঘন পরিবর্তিত হয় তা একটি সতর্কতা জাগাতে পারে যে কিছু ভুল হয়েছে — হতে পারে যুক্তি বা ব্যবসায়িক ডোমেনে, উদাহরণস্বরূপ। যেভাবেই হোক, 'মন্থন বনাম জটিলতা'-এর দিকে তাকানো আপনাকে আপনার প্রকল্প জুড়ে ব্যথার পয়েন্টগুলি কোথায় তা দেখতে সাহায্য করতে পারে।
কোড রিপোর্ট
'কোড' রিপোর্ট প্রতিটি শ্রেণীর জন্য একটি স্কোর দেখায়, যার মধ্যে মন্থন, জটিলতা, অনুলিপি এবং গন্ধের সূচক রয়েছে৷
আপনি সর্বোচ্চ র্যাঙ্কিং ফ্যাক্টরগুলি দেখতে এবং প্রথমে সবচেয়ে জটিল সমস্যাগুলি সমাধান করতে যে কোনও কলাম দ্বারা এই তালিকাটি সাজাতে পারেন৷

এছাড়াও, এই তালিকায় একটি ফিল্টার রয়েছে যা আপনাকে দ্রুত শ্রেণীর নাম দ্বারা অনুসন্ধান করতে দেয়।
ক্লাসের নামের উপর ক্লিক করলে ক্লাস কোড এবং মেট্রিক্স সহ একটি বিস্তারিত পৃষ্ঠা খুলবে যেমন:
- কোড লাইন
- পরিমাণ পদ্ধতি
- গণনা করা মন্থন
- পদ্ধতি দ্বারা জটিলতা
- জটিলতা স্কোর (প্রতি ক্লাসে মোট)
- ডুপ্লিকেটের পরিমাণ পাওয়া গেছে
- গন্ধের সংখ্যা
কোডের লাইন যেখানে একটি সমস্যা পাওয়া যায় তা হাইলাইট করা হবে (রিক রত্ন দ্বারা প্রদত্ত তথ্যের উপর ভিত্তি করে)।
Flog কোনো সমস্যা চিহ্নিত করলে, আপনি একটি স্কোর দেখতে পাবেন। আপনি একটি Flay রিপোর্ট কোনো ডুপ্লিকেট কোড সনাক্ত করেছে কিনা তাও দেখতে পাবেন৷

গন্ধ রিপোর্ট
'গন্ধ' পৃষ্ঠাটি গন্ধের ধরন, গন্ধের সঠিক অবস্থান এবং ফিক্স স্ট্যাটাস প্রদর্শন করে।
পূর্বে উল্লিখিত হিসাবে, গন্ধগুলি Reek দ্বারা সনাক্ত করা হয়, এবং বাছাই এবং ফিল্টারিংও এই পৃষ্ঠায় উপলব্ধ৷
ক্লাসের নামে ক্লিক করলে আপনার কোডের বিবরণ সহ একটি পৃষ্ঠা খুলবে। আপনি গন্ধের ধরন অনুসারে ক্লাসগুলিও দেখতে পারেন (এটি 'কোড' পৃষ্ঠা থেকে অনুপস্থিত, যা শুধুমাত্র গন্ধের সংখ্যা প্রদর্শন করে)।

কভারেজ রিপোর্ট
অবশেষে, আপনি 'কভারেজ' রিপোর্টে শ্রেণী শ্রেণীবিভাগ এবং প্রতিটি শ্রেণীর জন্য কভারেজের শতাংশ দেখতে পারেন। 'কোড' এবং 'গন্ধ' প্রতিবেদনের তালিকার বিপরীতে, 'কভারেজ'-এর তালিকা তথ্যগুলিকে সাজানো এবং ফিল্টার করার অনুমতি দেয় না৷
আপনি শুধুমাত্র কোড কভারেজ শতাংশ দেখতে পারেন — কোন অতিরিক্ত তথ্য উপলব্ধ নেই.

SimpleCov রিপোর্ট একত্রিত করা এই পৃষ্ঠায় আরও মূল্য এবং উপযোগিতা যোগ করতে পারে। কিন্তু যে কোনো ক্ষেত্রে, 'কভারেজ' প্রতিবেদনটি সাহায্য করতে পারে যদি আপনার প্রকল্পের পরীক্ষার কভারেজ পরীক্ষা করার জন্য একটি সাধারণ প্রতিবেদনের প্রয়োজন হয়৷
রেপ আপ
এই পোস্টে, আমরা সংক্ষিপ্তভাবে আপনার রুবি অ্যাপ্লিকেশনের জন্য রুবিক্রিটিক এর সুবিধাগুলি দেখেছি এর অভ্যন্তরীণ নির্ভরতা:রিক, ফ্লে এবং ফ্লোগগুলিতে ডুব দেওয়ার আগে। তারপরে আমরা রুবিক্রিটিক-এর প্রতিবেদনগুলি কীভাবে পড়তে এবং বিশ্লেষণ করতে হয় তা দিয়েছিলাম৷
৷পরবর্তী পদক্ষেপ হিসাবে, আপনার পাইপলাইনে রুবিক্রিটিক কীভাবে ব্যবহার করবেন তা বের করুন৷
শুভ কোড রিফ্যাক্টরিং!
পি.এস. আপনি যদি রুবি ম্যাজিক পোস্টগুলি প্রেস থেকে বের হওয়ার সাথে সাথে পড়তে চান তবে আমাদের রুবি ম্যাজিক নিউজলেটারে সাবস্ক্রাইব করুন এবং একটি পোস্ট মিস করবেন না!
ব্রেনা মন্টিরো
অতিথি লেখক ব্রেনা একজন টেক লিড যিনি নতুন ডেভেলপারদের পরামর্শ দেওয়ার বিষয়ে আগ্রহী এবং উচ্চ-সম্পাদনাকারী দলগুলিকে বিকাশ ও নেতৃত্ব দেওয়ার ক্ষেত্রে অভিজ্ঞ৷ ক্লাউড পরিষেবাগুলির মধ্যে স্কেলযোগ্য API এবং সংহতকরণের অভিজ্ঞতা রয়েছে, বিবর্তনীয় স্থাপত্য সম্পর্কে উত্সাহী এবং একজন এক্সটেন্ডেড রিয়েলিটি (XR) শিক্ষানবিস৷
ব্রেনা মন্টিরোর সমস্ত নিবন্ধ