রিফ্যাক্টরিং মন্তব্যের সাথে কোড ছড়িয়ে দেওয়া কি ভাল ধারণা?


11

আমি একটি "স্প্যাগেটি কোড" প্রকল্পে কাজ করছি, এবং আমি বাগগুলি ঠিক করতে এবং নতুন বৈশিষ্ট্যগুলি প্রয়োগ করার সময়, কোডটি ইউনিট-টেস্টেবল করার জন্য আমি কিছু রিফ্যাক্টরিংও করি।

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

class RefactoredClass {
    private SingletonClass xyz;

    // I know SingletonClass is a Singleton, so I would not need to pass it here.
    // However, I would like to get rid of it in the future, so it is passed as a
    // parameter here to make this change easier later.
    public RefactoredClass(SingletonClass xyz) {
        this.xyz = xyz;
    }
}

অথবা, কেকের অন্য টুকরা:

// This might be a good candidate to be refactored. The structure is like:
// Version String
//    |
//    +--> ...
//    |
//    +--> ...
//          |
//    ... and so on ...    
//
Map map = new HashMap<String, Map<String, Map<String, List<String>>>>();

এই একটি ভাল ধারণা? এমনটি করার সময় আমার কী মনে রাখা উচিত?



3
এটি একটি মতামত ভিত্তিক বিষয়; কিন্তু আমার ব্যক্তিগত মতামত যে এই হল ঠিক মন্তব্য দরকারী ধরণ, এবং আমি অন্য লোকের কোডে এটি হবে ইচ্ছুক: এটা আপনার গুরুত্বপূর্ণ তথ্য ইতোমধ্যেই কোড থেকে সুস্পষ্ট নয় বলে; কোন পদ্ধতি কী করে তা নয় , তবে কেন
কিলিয়ান পাথ

2
হ্যাশম্যাপ <স্ট্রিং, ম্যাপ <স্ট্রিং, ম্যাপ <স্ট্রিং, তালিকা <স্ট্রিং>
>>>

5
যে মন্তব্যগুলি আমাকে জানান যে কেন এক টুকরা কোডকে দুর্গন্ধযুক্ত দেখায় অবিশ্বাস্যরূপে প্রশংসিত হয়। আমার কোডবেস সম্পর্কে আপনার ধারণা নাও থাকতে পারে, তাই আমি কেবল একটি সমস্যা দেখতে পাচ্ছি এবং "কিসের চেষ্টা করব?" ভাবতে চাইছি, তবে কেন এটি হচ্ছে তা ব্যাখ্যা করার একটি মন্তব্য আমাকে কোডটি আরও দ্রুত পেতে সাহায্য করবে। হ্যাঁ, এটি অনেক কিছু করে। (ধরে
নিচ্ছি আপনি

উত্তর:


13

রিফ্যাক্টরিং মন্তব্যের সাথে কোড ছড়িয়ে দেওয়া কি ভাল ধারণা?

আপনি যদি আপনার রিফ্যাক্টরিং শেষ করার জন্য সময় বরাদ্দ করে থাকেন, এবং আপনি যদি সত্যিই এটি করেন তবে হ্যাঁ - এটি কার্যকর হবে।

এমনটি করার সময় আমার কী মনে রাখা উচিত?

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


2

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


[সম্পাদনা] বিটিডাব্লু: এটি কি একটি ভাল ধারণা:

আমি বাগগুলি স্থির করে নতুন বৈশিষ্ট্যগুলি প্রয়োগ করার সময়, কোডটি ইউনিট-টেস্টেবল করার জন্য আমি কিছু সংশোধনকারীও করি

আমি মনে করি (অভিজ্ঞতার দ্বারা জানুন!), রিফ্যাক্টরিং খুব বিপজ্জনক হতে পারে, বিশেষত যখন এখনও ইউনিটের পরীক্ষা নেই। সুতরাং আপনি নিজের অতিরিক্ত কাজকে আরও ভালভাবে সীমাবদ্ধ করতে চান (বাগগুলি সংশোধন করার সময়) টোডো মন্তব্য যুক্ত করার বিষয়ে ... আমরা সবাই জানি: কখন সম্ভব হয়;)


প্রশ্নে কোড স্নিপেট জাভা এর মতো পড়ে, আপনি ডক্সিকেনের প্রস্তাব কেন দেন?
gnat

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

1
@ জাগান: আপনি কি মনে করেন এটি এখন আরও ভাল?
ওল্ফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.