কয়েক মাসের মধ্যে একজন সহকর্মী একটি নতুন প্রকল্পের দিকে এগিয়ে যাবেন এবং আমি তার একটি প্রকল্প উত্তরাধিকার সূত্রে পেয়ে যাব। প্রস্তুত করার জন্য, আমি ইতিমধ্যে মাইকেল ফাদারগুলির লিগ্যাসি কোডের সাথে কার্যকরভাবে কাজ করার আদেশ দিয়েছি ।
তবে এই বইগুলির পাশাপাশি আমি এখনও অবধি প্রাপ্ত লিগ্যাসি কোড সম্পর্কিত বেশিরভাগ প্রশ্নগুলি কোড উত্তরাধিকারসূত্রে প্রাপ্তির ক্ষেত্রে সম্পর্কিত। তবে এক্ষেত্রে আমার কাছে আসল বিকাশকারীর কাছে অ্যাক্সেস রয়েছে এবং সুশৃঙ্খল হ্যান্ড-ওভারের জন্য আমাদের কিছুটা সময় আছে।
কোডের টুকরোটির কিছু পটভূমি আমি উত্তরাধিকার সূত্রে গ্রহণ করব:
- এটি কাজ করছে: কোনও জ্ঞাত ত্রুটি নেই, তবে যেমন পারফরম্যান্স প্রয়োজনীয়তা বাড়তে থাকে, তেমন কিছু অপ্টিমাইজেশন খুব দূরবর্তী ভবিষ্যতেও প্রয়োজনীয় হয়ে উঠবে।
- Undocumented: পদ্ধতি এবং শ্রেণি পর্যায়ে শূন্য ডকুমেন্টেশন রয়েছে। কোডটি একটি উচ্চ স্তরে কী করার কথা রয়েছে তা যদিও এটি ভালভাবে বোঝা যাচ্ছে, কারণ আমি কয়েক বছর ধরে এটির API (ব্ল্যাক-বাক্স হিসাবে) বিরুদ্ধে লিখছি।
- কেবলমাত্র উচ্চ-স্তরের ইন্টিগ্রেশন টেস্টগুলি: এপিআইয়ের মাধ্যমে অন্যান্য উপাদানগুলির সাথে যথাযথ মিথস্ক্রিয়াকে পরীক্ষা করার জন্য কেবলমাত্র ইন্টিগ্রেশন টেস্ট রয়েছে (আবার, ব্ল্যাক-বাক্স)।
- অত্যন্ত নিম্ন-স্তরের, গতির জন্য অনুকূলিতকরণ: যেহেতু এই কোডটি পুরো অ্যাপ্লিকেশনগুলির একটি সিস্টেমের কেন্দ্রিয়, তাই এটি বেশিরভাগ বছর ধরে বেশ কয়েকবার অনুকূলিত হয়েছে এবং অত্যন্ত নিম্ন-স্তরের (একটি অংশের নির্দিষ্ট স্ট্রাক্টের জন্য নিজস্ব মেমরি ম্যানেজার রয়েছে / রেকর্ড)।
- সমবর্তী এবং লক-মুক্ত: যদিও আমি সমবর্তী এবং লক-মুক্ত প্রোগ্রামিংয়ের সাথে খুব পরিচিত এবং এই কোডটিতে আসলে কয়েকটি টুকরো অবদান রেখেছি, এটি জটিলতার আরও একটি স্তর যুক্ত করে adds
- বৃহত্তর কোডবেস: এই বিশেষ প্রকল্পটি কোডের দশ হাজার লাইনেরও বেশি, সুতরাং আমার কাছে সমস্ত কিছু ব্যাখ্যা করার পক্ষে কোনও উপায় নেই।
- ডেলফিতে লিখিত: আমি কেবল এটিই এখানে রেখে যাচ্ছি, যদিও আমি বিশ্বাস করি না যে ভাষাটি প্রশ্নের কাছে জার্মানী হবে, কারণ আমি বিশ্বাস করি যে এই ধরণের সমস্যাটি ভাষা-অজ্ঞাত জ্ঞাত বলে মনে হয়।
আমি ভাবছিলাম যে তাঁর প্রস্থান পর্যন্ত সময়টি কীভাবে সর্বোত্তমভাবে ব্যয় হবে। এখানে বেশ কয়েকটি ধারণা দেওয়া হল:
- আমার মেশিনে তৈরি করার জন্য সবকিছু পান: যদিও সবকিছু সোর্স কোড নিয়ন্ত্রণে যাচাই করা উচিত, যিনি একবারে কোনও ফাইল চেক করতে ভোলেন নি, তাই এটি সম্ভবত ব্যবসায়ের প্রথম ক্রম হওয়া উচিত।
- আরও পরীক্ষা: আমি আরও ক্লাস-লেভেল ইউনিট পরীক্ষা চাইব যাতে আমি যখন পরিবর্তন আনব তখন আমার যে কোনও বাগগুলি প্রবর্তন করা তা তাড়াতাড়ি ধরা পড়তে পারে, এখনকার কোডটি পরীক্ষামূলক নয় (বিশাল ক্লাস, দীর্ঘ পদ্ধতি, অনেক বেশি) পারস্পরিক নির্ভরতা)।
- কী ডকুমেন্ট করবেন: আমি মনে করি যে শুরুর জন্য কোডের সেই জায়গাগুলিতে ডকুমেন্টেশন ফোকাস করা ভাল হবে যা অন্যথায় বুঝতে অসুবিধা হবে যেমন তাদের নিম্ন-স্তরের / অত্যন্ত অনুকূলিত প্রকৃতির কারণে। আমি ভীত সেখানে কিছু জিনিস আছে যা দেখতে দেখতে কুৎসিত হতে পারে এবং রিফ্যাক্টরিং / পুনর্লিখনের প্রয়োজন হতে পারে তবে আসলে অপ্টিমাইজেশানগুলি হ'ল একটি ভাল কারণেই আমি এখানে মিস করেছি (সিএফ। জোয়েল স্পলস্কি, জিনিসগুলি আপনার উচিত) কখনই করবেন না, প্রথম ভাগ )
- কীভাবে ডকুমেন্ট করবেন: আমি মনে করি আর্কিটেকচারের কিছু বর্গ চিত্র এবং কিছু গদ্যের সাথে সমালোচনামূলক ফাংশনের সিকোয়েন্স ডায়াগ্রামগুলি সবচেয়ে ভাল হবে।
- কাকে ডকুমেন্ট করবেন: আমি ভাবছিলাম যে এর থেকে ভাল কী হবে, তাকে ডকুমেন্টেশন লিখতে বা তাকে আমার কাছে এটি ব্যাখ্যা করার জন্য, যাতে আমি ডকুমেন্টেশন লিখতে পারি। আমি ভয় পাচ্ছি, যে জিনিসগুলি তাঁর কাছে সুস্পষ্ট তবে আমার কাছে নয় তা অন্যথায় সঠিকভাবে আবৃত হবে না।
- জুড়ি-প্রোগ্রামিং ব্যবহার করে রিফ্যাক্টরিং: সময়ের সীমাবদ্ধতার কারণে এটি করা সম্ভব নাও হতে পারে, তবে কিছু জিনিস কেন সেভাবে রয়েছে সে সম্পর্কে ইনপুট সরবরাহ করতে তিনি যখন রয়েছিলেন তখনও আমি তার কিছু কোডটিকে আরও রক্ষণাবেক্ষণ করতে সক্ষম করতে পারি।
মন্তব্য করুন এবং এটি যুক্ত করুন। এই সমস্ত কিছু করার জন্য পর্যাপ্ত সময় নেই বলে আপনি কীভাবে অগ্রাধিকার পাবেন সে সম্পর্কে আমি বিশেষভাবে আগ্রহী।
আপডেট: হ্যান্ড-ওভার প্রকল্পটি শেষ হওয়ায় আমি নীচের এই উত্তরে আমার নিজের অভিজ্ঞতা দিয়ে এই তালিকাটি প্রসারিত করেছি ।