অপরিচিত কোডবেস বর্ণনা করার জন্য কোন সরঞ্জাম বা কৌশলগুলি কার্যকর? [বন্ধ]


9

অপরিচিত কোডটি ম্যানুয়ালি পরিদর্শন করার সময় (পর্যালোচনা বা সংশোধন করার জন্য) আমার কাছে তিনটি বিকল্প রয়েছে বলে মনে হয়।

  • কোডটির একটি শীর্ষ-ডাউন পঠন , ফাইলের নামটি কতটা মৌলিক বলে মনে হয় তার দ্বারা প্রতিটি পরবর্তী উত্স ফাইলটি চয়ন করে। আমি প্রায় সব কিছু পড়ে শেষ করি। কিছু ফাইল দুটি।
  • একটি প্রস্থের প্রথম পঠন , যেখানে আমি সর্বনিম্ন বোঝার সাথে চালিত পদ্ধতিটি খুঁজে পাই এবং পড়ি। তারপরে ফাংশন ডেকে আনা সমস্ত ফাংশন পড়ুন, ইত্যাদি and আমার মানসিক স্ট্যাকটি যদি আমি কয়েকটি কল গভীর করতে পারি তবে এটি উপচে পড়ে যায়।
  • একটি গভীরতা-প্রথম পঠন , যেখানে আমি একটি ডিবাগারে সমস্ত কোড দিয়েছি, এটি 8 মিনিট বা 8 ঘন্টা সময় নেবে কিনা তা সম্পর্কে নিশ্চিত নয়।

কোডটি কী করছে তার সম্পর্কে যথেষ্ট দৃ understanding় বোঝার জন্য একবার আমি যথেষ্ট পরিমাণে পড়েছি, আমি প্রায়শই প্রতিবিম্বিত করি যে আমি ৮০% বা তার বেশি কোডডবেস পড়েছি, যখন মূল কোডটি ২০% বা তার চেয়ে কম । আমি অনেক সময় নষ্ট করেছি।

আনফামিলার কোডটি দ্রুত উপলব্ধি করার জন্য কোন সরঞ্জামগুলি কার্যকর? এমন কি কোনও সরঞ্জাম রয়েছে যা সমালোচনামূলক কোড পাথের একটি "বড় চিত্র" দিতে পারে এবং আমাকে কোনও এক অংশের বিশদটি ড্রিল করতে দেয়?


2
80% শতাংশ না বুঝে আপনি বুঝতে পারবেন না কেন 20% মৌলিক অঙ্গ
ratchet freak

@ratchetfreak আমি এরকম নিখুঁত শর্তে বলব না। একটি সরঞ্জাম কোডকে আলাদা করতে পারে যা সর্বদা বলা হয়, উদাহরণস্বরূপ। বা কেবল অনেকগুলি স্ট্যাকের স্তর গভীরভাবে চালান।
ড্রয় ডোরম্যান

উত্তর:


8

অবশ্যই সর্বোত্তম জিনিস হ'ল এমন কোনও ব্যক্তির জন্য যিনি কোড বেজ জানেন এটি আপনাকে চালিয়ে যেতে। যদি এটি কোনও বিকল্প না হয় তবে কয়েকটি সরঞ্জাম রয়েছে যা আপনাকে সহায়তা করতে পারে।

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

সাধারণত, আপনি একটি পূর্ণ বৈশিষ্ট্যযুক্ত আইডিই ব্যবহার করতে চান, যেখানে আপনি যে কোনও কিছুতে ডান ক্লিক করতে পারেন এবং "সংজ্ঞাতে যান"। একটি জটিল ডিরেক্টরি কাঠামোতে প্রচুর ফাইলগুলিতে গ্রেপ ব্যবহারের তুলনায় এটি আপনাকে প্রচুর সময় সাশ্রয় করতে পারে।

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


2
ধন্যবাদ @ ডিমা এর কিছু পরিচালনা করতে ডক্সিজেন দুর্দান্ত। (আমি জানি যে একটি সরঞ্জাম নামটি আমি জানি এটি ফেলে রেখে উত্তরগুলি চালিত করতে চাইনি)। পাশাপাশি লেভেল-হেড "হিউম্যান ইন্টারঅ্যাকশন" উপাদানও রয়েছে। :)
ড্রু ডোরম্যান

3

এটি আরও কঠোর পদ্ধতির। এই কৌশলটি এমন প্রকল্পের জন্য দরকারী হতে পারে যার অনেকগুলি শ্রেণি রয়েছে যা অর্থবোধক নেমস্পেসে সংগঠিত হয় না।

এই মহড়ার লক্ষ্য শ্রেণীর সম্পর্ক আবিষ্কার করা। প্রকল্পের একটি ছুটে যাওয়া ক্লোন তৈরি করুন এবং তারপরে কিছু ক্লাস নেমস্পেসে রাখার চেষ্টা করুন। বারবার প্রচেষ্টায় সময় সাশ্রয়ের জন্য, এই পরিবর্তনটি স্বয়ংক্রিয় করতে কিছু রেজেজ ফাইল প্রক্রিয়াকরণ সরঞ্জাম ব্যবহার করুন।

এটি প্রচুর সংকলক ত্রুটি ঘটাবে। এই ত্রুটিগুলি ঠিক করার প্রক্রিয়াতে, এই ক্লাসগুলি একে অপরের উপর কীভাবে নির্ভরশীল তা আরও ভালভাবে উপলব্ধি করতে হবে এবং সিদ্ধান্ত নেবে যে কি ক্লাসগুলি একই নামস্থানে স্থাপন করা যেতে পারে।

এই কৌশলটি দরকারী যে কোনও এটি প্রকল্পের কোড সংস্থার সামান্য বোঝার পরেও এটি প্রয়োগ করতে পারে। এটির সাথে এই ঝুঁকিটি রয়েছে যে ভুল বোঝাবুঝির কারণে কিছু ক্লাস এই কৌশলটি দ্বারা ভুল জায়গায় বসতে পারে।


যে চালাক। আপনি সাধারণত অনেক ক্লাসের জন্য তা করেন বা যখন আপনার কাছে অস্পষ্ট কোন নির্দিষ্ট শ্রেণিটি আসে তখন আপনি এটি সংরক্ষণ করেন?
ড্রু ডোরম্যান

@ ড্রুডোরম্যান এই গ্রুপটি না করা শত শত শ্রেণীর মুখোমুখি হওয়ার সময় আমি আমার এক সহকর্মীর কাছ থেকে এই কৌশলটি শিখেছি। কোনও রিফ্যাক্টরিংয়ের আগে, প্রকল্পের ফাইলগুলি "বাছাই" করার দিকে এটি খুব প্রথম পদক্ষেপ। অন্য কথায়, এটি তখন ব্যবহৃত হয় যখন সমস্ত কিছু এখনও বিশৃঙ্খলা হয়। (উদ্বেগজনকভাবে, এই জগাখিচুড়িটি আমার আগের নিজে লিখেছিলেন)) প্রকল্পের ফাইলগুলি নামস্থানগুলিতে বাছাই করে, এটি ডক্সিজেন শ্রেণীর পৃষ্ঠা তৈরির সুবিধার্থে (নেমস্পেস গাছগুলি প্রদর্শন করে) এবং প্রোগ্রামারের বোধগতির গতি বাড়িয়ে তোলে।
রোবং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.