Skip to content

পোস্ট

বোঝাপড়া শুরু হয় অর্থবহ নামের মাধ্যমে

৩০ সেপ্টেম্বর, ২০১৯ • 3 মিনিট পড়া

বোঝাপড়া শুরু হয় অর্থবহ নামের মাধ্যমে

২০১৮ সালে, আমি একটি বড় প্রকল্পে যোগ দিয়েছিলাম যখন এটি অর্ধেক উন্নয়নের পর্যায়ে ছিল। মূল ইঞ্জিনিয়াররা চলে গিয়েছিলেন জটিল এবং অনথিভুক্ত কোড রেখে। এই ধরনের কোডের সাথে কাজ করা চ্যালেঞ্জিং কারণ আপনি প্লাম্বিং থেকে ব্যবসায়িক ডোমেইনকে আলাদা করতে পারেন না। এটি ডিবাগিং কঠিন করে তোলে এবং পরিবর্তনগুলি অপ্রত্যাশিত করে কারণ আপনি প্রভাব জানেন না। এটি শব্দগুলি না বুঝে একটি বই সম্পাদনা করার চেষ্টা করার মতো।

অনেক ইঞ্জিনিয়ার বিশ্বাস করেন যে সাফল্যের পরিমাপ হল যখন কোড কম্পাইল হয়। আমি বিশ্বাস করি এটি হল যখন অন্য একজন ইঞ্জিনিয়ার (বা ছয় মাস পরে আপনি) আপনার কোডের “কেন” বুঝতে পারেন। মূল ইঞ্জিনিয়াররা ভবিষ্যতের ইঞ্জিনিয়ারদের প্রতিবন্ধী করেছিলেন ডকুমেন্টেশন না করে এবং অস্পষ্ট নাম ব্যবহার করে। নামগুলি কখনও কখনও পূর্ববর্তী ইঞ্জিনিয়ারের চিন্তাভাবনার একমাত্র জানালা।

ডোনাল্ড নুথ বিখ্যাতভাবে বলেছিলেন:

প্রোগ্রামগুলি মানুষের দ্বারা পড়ার জন্য তৈরি এবং কেবল আকস্মিকভাবে কম্পিউটারের দ্বারা সম্পাদনের জন্য। – ডোনাল্ড নুথ

নামকরণ

নামকরণ কঠিন কারণ এটি একটি অ্যাপ্লিকেশনে একটি অংশ কোথায় এবং কীভাবে ফিট করে তা লেবেল এবং সংজ্ঞায়িত করার প্রয়োজন।

ফিল কার্লটন, নেটস্কেপে থাকাকালীন পর্যবেক্ষণ করেছিলেন:

কম্পিউটার সায়েন্সে কেবল দুটি কঠিন জিনিস রয়েছে: ক্যাশে অবৈধকরণ এবং জিনিসের নামকরণ।
— ফিল কার্লটন

আমরা আমাদের কোডকে দেখি শব্দ এবং নামের লেন্সের মাধ্যমে যা আমরা ব্যবহার করি। নামগুলি পরবর্তী ইঞ্জিনিয়ারের বোঝার জন্য একটি ভাষা তৈরি করে। এই ভাষা একটি চিত্র আঁকে যে লেখক কীভাবে ব্যবসায়িক ডোমেইন এবং প্রোগ্রামিং ভাষার মধ্যে সেতুবন্ধন করেছেন।

লুডভিগ ভিটগেনস্টাইন, বিংশ শতাব্দীর প্রথমার্ধের একজন দার্শনিক, বলেছিলেন:

আমার ভাষার সীমা মানে আমার জগতের সীমা। – লুডভিগ ভিটগেনস্টাইন

আমাদের সফটওয়্যারের ভাষা কেবল আমাদের ব্যবহৃত নামগুলির মতোই বর্ণনামূলক এবং অস্পষ্ট নাম ব্যবহার করা সফটওয়্যারের উদ্দেশ্যকে ঝাপসা করে; বর্ণনামূলক নাম ব্যবহার করা স্পষ্টতা এবং বোঝাপড়া নিয়ে আসে।

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

এই অনুভূতি সবচেয়ে ভাল অভিজ্ঞতার মাধ্যমে পাওয়া যায়।

অভিজ্ঞতা

কোডের প্রথম স্নিপেটটি পরীক্ষা করুন, এই কোডটি কী করে? কেনটা কী?

আপনার সময় নিন।

public class StringHelper
{
    public string Get(string input1, string input2)
    {
        var result = string.Emtpy;
        if(!string.IsNullOrEmtpy(input1) && !string.IsNullOrEmtpy(input2))
        {
            result = $"{input1} {input2}";
        }
        return result;
    }
}

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

আসুন কোডটি পুনর্বিবেচনা করি, কিন্তু একটু “কেন” ছিটিয়ে দিয়ে।

আবার, আপনার সময় নিন, এই কোড পড়ার সময় আপনি যে পার্থক্য অনুভব করেন তা পর্যবেক্ষণ করুন।

    public class FirstAndLastNameFormatter
    {
        public string Concatenate(string firstName, string lastName)
        {
            var fullName = string.Emtpy;
            if(!string.IsNullOrEmtpy(firstName) && !string.IsNullOrEmtpy(lastName))
            {
                fullName = $"{firstName} {lastName}";
            }
            return fullName;
        }
    }

“কেন” কোডকে জীবন্ত করে তোলে, পড়ার জন্য একটি গল্প রয়েছে।

যোগাযোগ

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

পরবর্তী ইঞ্জিনিয়ারের একটি উপকার করুন এবং আপনার কোডে অভিব্যক্তিপূর্ণ হন। বর্ণনামূলক নাম ব্যবহার করুন এবং “কেন” ক্যাপচার করুন কারণ কে জানে, পরবর্তী ইঞ্জিনিয়ার আপনিই হতে পারেন।

লেখক: চাক কনওয়ে সফটওয়্যার ইঞ্জিনিয়ারিং এবং জেনারেটিভ এআই-তে বিশেষজ্ঞ। তার সাথে সোশ্যাল মিডিয়ায় যোগাযোগ করুন: X (@chuckconway) অথবা তাকে YouTube-এ দেখুন।

↑ উপরে ফিরে যান

আপনি এগুলোও পছন্দ করতে পারেন