ট্র্যাক
/
Cairo
Cairo
/
অনুশীলনী
/
লাল বনাম নীল: ডারউইন স্টাইল
লাল বনাম নীল: ডারউইন স্টাইল

লাল বনাম নীল: ডারউইন স্টাইল

লার্নিং অনুশীলনী

ভূমিকা

মডিউল

মডিউল হলো সম্পর্কিত কোড একসাথে গোষ্ঠীবদ্ধ করার একটি উপায়, যা নামের সংঘর্ষ এড়াতে সাহায্য করে। সবচেয়ে সহজ কোডবেসগুলো ছাড়া বাকি প্রায় সব কোডবেসেই সাধারণত মডিউল থাকে।

এর সিনট্যাক্স নিচের মতো:

mod my_module {
    pub struct MyStruct {}

    pub struct OtherClass {}
}

মডিউলের স্কোপের বাইরে মডিউলের ভেতরে থাকা টাইপগুলোকে উল্লেখ করতে টাইপের নামের আগে ডাবল কোলন :: সিনট্যাক্স বসাতে হয়। বিকল্পভাবে, এবং সাধারণত এটাই বেশি করা হয়, আপনি ফাইলের শুরুতে (বা কোনো মডিউলের ভেতরে) একটি use ডিরেক্টিভ বসাতে পারেন, তারপর প্রিফিক্স ছাড়াই টাইপগুলো ব্যবহার করা যায়। একই মডিউলের ভেতরে টাইপের নাম কোয়ালিফাই করার দরকার নেই।

mod my_module {
    #[derive(Drop)]
    pub struct MyStruct {}

    pub struct Foo {}

    #[generate_trait]
    pub impl FooImpl of FooTrait {
        fn bar() {
            let baz = MyStruct {};
        }
    }
}

#[derive(Drop)]
pub struct Qux {}

#[generate_trait]
impl QuxImpl of QuxTrait {
    fn box() {
        let nux = my_module::MyStruct {};
    }
}

mod other_module {
    use super::my_module::*;

    #[derive(Drop)]
    pub struct Tix {}

    #[generate_trait]
    pub impl TixImpl of TixTrait {
        fn jeg() {
            let lor = MyStruct {};
        }
    }
}

আপনি use core::array::ArrayTrait as Arr; সিনট্যাক্স দিয়ে একটি মডিউল বা টাইপের অ্যালিয়াস তৈরি করতে পারেন, তারপর যেখানেই ওই মডিউল বা টাইপ ব্যবহার করা যেত, সেখানেই অ্যালিয়াসটি ব্যবহার করতে পারেন।

নির্দেশনা

ম্যানেজমেন্ট একটি Remote Control Car প্রকল্পে ডারউইনীয় নীতি প্রয়োগ করতে শুরু করেছে। ডেভেলপারদের Red ও Blue নামের দুটি দলে ভাগ করা হয়েছে এবং একে অপরের থেকে স্বাধীনভাবে ডিজাইন উন্নত করার দায়িত্ব দেওয়া হয়েছে। অন্য দলের ডিজাইন সংক্রান্ত সিদ্ধান্ত নিয়ে তাদের মাথা ঘামাতে হবে না। আপনাকে কোডটি একবার দেখতে বলা হয়েছে, যাতে পরীক্ষার উদ্দেশ্যে দুই দলের কাজ কীভাবে সবচেয়ে ভালোভাবে একত্র করা যায় তা আপনি বুঝতে পারেন।

1. দুই দলের কোড আলাদা করার আরও উপযুক্ত একটি উপায় খুঁজুন

কোডের উদ্দেশ্য আরও ভালোভাবে প্রকাশ করতে অনুগ্রহ করে মডিউল ব্যবহার করুন।

বর্তমানে Motor ও Telemetry-এর মতো গুরুত্বপূর্ণ টাইপগুলো, এমনকি RemoteControlCar নিজেও, সংশ্লিষ্ট দলের রঙ দিয়ে প্রিফিক্স করা হয়েছে: <Color>RemoteControlCarTeam। প্রিফিক্সটির একমাত্র উদ্দেশ্য হলো একই নামের টাইপগুলোকে প্রোগ্রামে একসাথে থাকার সুযোগ দেওয়া। মডিউল ব্যবহার করলে সেটি আরও ভালোভাবে প্রকাশ করা যায়। আপনি দেখবেন, এসব কাজে টাইপ প্রিফিক্স করার চেয়ে মডিউলের সুবিধা আছে।

2. নামকরণ পদ্ধতি সরল করুন

ম্যানেজমেন্ট চায়, ডেফিনিশনগুলোতে দল দুটিকে "Red Remote Control Car Team" ও "Blue Remote Control Car Team" বলা হোক, আর এই লম্বা নামগুলো কোডেও ব্যবহার করা হোক। তবে দলগুলোকে রেফার করার সময় নামগুলো বেশ ঝামেলার হয়ে দাঁড়ায়।

যে মডিউলের ভেতরে আপনি গাড়িগুলো বানাবেন, সেখানে ছোট আইডেন্টিফায়ার "Red" ও "Blue" কীভাবে ব্যবহার করা যায় তা খুঁজে বের করুন।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Cairo Exercism

লাল বনাম নীল: ডারউইন স্টাইল শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Cairo ট্র্যাকের 25টি কনসেপ্ট68টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।