যখন আপনার কেবল 'মেক' না করে 'ক্লিন ক্লিন' ব্যবহার করা উচিত তখন কি কোনও সাধারণ নিয়ম রয়েছে?


11

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

উত্তর:


17

আপনি দুটি পরিস্থিতিতে পরিষ্কার করুন - আপনি যখন সোর্স কোডটি প্যাকেজ করতে চান (এবং তাই বিল্ট অবজেক্টগুলির প্রয়োজন হয় না / চান না) বা যখন বিল্ট অবজেক্টগুলি খারাপ তা বিশ্বাস করার কোনও কারণ আপনার কাছে রয়েছে।

আপনার ক্ষেত্রে, আপনি সম্ভবত কোনও বাগী মেকফিলের ফলস্বরূপ এমন কোনও সমস্যা সমাধানের জন্য 'মেক ক্লিন' ব্যবহার করছেন। সেখানে থাকা কিছু যখন করা উচিত তখন পুনরায় সংকলন হয় না এবং এর ফলে আউটপুট বাইনারি খারাপ হয়।

আপনার প্রকল্পের জটিলতা এবং আপনি কীভাবে মেক ব্যবহার করেছেন তার উপর নির্ভর করে এমন অনেকগুলি কারণ ঘটতে পারে, তবে এর সংক্ষিপ্তসারটি হ'ল: আপনার মেকফিলটিকে ডিবাগ করার জন্য আপনাকে কিছুটা সময় ব্যয় করতে হবে।


6
আপনি "বিল্ড পরিবেশে কিছু পরিবর্তন" ভুলে গেছেন যেমন আপগ্রেড করা সংকলক, লাইব্রেরির নতুন সংস্করণ ইত্যাদি সবসময় এই ক্ষেত্রে "পরিষ্কার করা" ভাল ধারণা রাখার জন্য সমস্ত মডিউল একই গানের শিট থেকে গাইছে!
জেমস অ্যান্ডারসন

2
@ জেমসএন্ডারসন যে কেউ যুক্তি দিতে পারেন এটি কেবল বাগি মেকফিলগুলির উদাহরণ।
ক্রিস্টফ প্রোভস্ট

4
@ ক্রিস্টফপ্রোস্ট: আমি নিশ্চিত নই যে আমি "নিউ এবিআই" (সম্ভবত একটি নতুন সংকলক সংস্করণ প্রবর্তন করে) "বাগি মেকফিল" হিসাবে ক্লাস করেছি। এটি আমি কীভাবে 'তৈরি' করব তা দেখার সুযোগের বাইরে যথেষ্ট।
ভ্যাটাইন

1
সত্য, তবে পূর্বশর্ত হিসাবে মেকফিলগুলিতে সংকলক যুক্ত করা (এবং এতটা কঠিন নয় )ও সম্ভব। সমস্যাটি ধরার জন্য এটি যথেষ্ট। সব মিলিয়ে এটি কোনও বিশাল সমস্যা নয় এবং যাইহোক এটি খুব বিরল। আমি বিষয়টি তৈরি করেছি কারণ আমি (এবং লিখিত) মেকফাইলগুলি ব্যবহার করেছি যা সংকলক পতাকাগুলি এবং এ জাতীয় বিবেচনা করে। এটি মেকফিলগুলিতেও মোটামুটি অস্বাভাবিক, তবে খুব দরকারী (সংকলকটি পরীক্ষা করার চেয়ে আরও বেশি;))। ভাল, ভাল লেখা মেকফিলগুলি সম্পর্কে আমার প্রত্যাশা মোটামুটি বেশি। আমার গড় মেকফিলের সম্পর্কে আমার প্রত্যাশাগুলি বরং কম ...
ক্রিস্টফ প্রোভস্ট

8

আমি সাধারণভাবে মাইকেল কোহনের উত্তরের সাথে একমত। "ক্লিন মেক" আসলে কী করে তা জানতে আপনাকে ইনস্টলেশন ডকগুলি পড়তে হবে add পরিষ্কারের বিভিন্ন স্তর থাকতে পারে যা আপনার প্রয়োজন হতে পারে যেমন "রিয়েলক্যালান তৈরি করুন" এবং "ডিস্কেলকান তৈরি করুন"। এগুলির জন্য অনানুষ্ঠানিক সম্মেলনগুলি রয়েছে তবে পাথরে খোদাই করা কিছুই নেই।


2
+1: "" পরিষ্কার করুন "আসলে কী করে" তা জানতে আপনার ইনস্টলেশন ডকগুলি পড়তে হবে। কোনও "সাধারণ নিয়ম" নেই। আপনাকে আসলে ডক্সটি পড়তে হবে।
এস.লোট

5

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


2
আমি রাজী. প্রায় অসীম ডিস্ক স্পেসের এই দিনগুলিতে এটি আর কোনও সমস্যা নয়, তবে পরিষ্কার করার সময় এবং রিয়েলক্লেন তৈরির বিষয়টি মনে করার মতো যথেষ্ট বয়স্ক আমি সাধারণত লিঙ্কযুক্ত এক্সিকিউটেবল তৈরি হওয়ার পরে ডিস্কের স্থান বাঁচাতে ব্যবহৃত হত। জিসিসি, অ্যাপাচি, পার্ল ইত্যাদি তৈরির ফলে প্রচুর পরিমাণে জিনিসপত্র পড়ে ছিল।
বিল রুপার্ট

1

আমি একটি রাত তৈরির আগে "ক্লিন ক্লিন" চালাতাম। সেক্ষেত্রে পুরোপুরি নির্মাণে অতিরিক্ত সময় লাগতে সম্ভবত খুব বেশি কিছু যায় আসে না, তবে সবকিছু সঠিক সংস্করণে রয়েছে তা নিশ্চিত করে নেওয়া যে অতিরিক্ত সুরক্ষা পাবেন তা সম্ভবত মূল্যবান।


এটি আপনার প্রকল্পের আকারের উপর নির্ভর করবে। যেখানে আমি ইনক্রিমেন্টাল বিল্ডে কাজ করি সেখানে রাতারাতি টানা অন্যান্য সাইটগুলির পরিবর্তনগুলির সাথে 2-4 ঘন্টা সময় লাগে। একটি পরিষ্কার বিল্ড 7 থেকে 9 ঘন্টা সময় নিতে পারে। এর উপরে আমরা মাঝে মাঝে 2 বা 3 টি শাখা তৈরি করতে চাইতাম। এমনকি দ্রুত মেশিনেও খুব বড় কোড বেসগুলিকে ছোট ছোটগুলির সাথে বেশ আলাদাভাবে চিকিত্সা করা দরকার।
টাফটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.