একটি সময়সীমা [বন্ধ] পৌঁছানোর পরে সংকলন থেকে অবহেলিত কোড রোধ করুন


68

আমার দলে আমরা একটি বড় একঘেয়ে প্রজেক্টে (পুরো ক্লাস, পদ্ধতি ইত্যাদি) প্রচুর পুরানো জিনিস পরিষ্কার করছি।

পরিষ্কারের কাজগুলির সময় আমি ভাবছিলাম যে স্বাভাবিকের চেয়ে কোনও ধরণের টিকা বা লাইব্রেরি ফ্যানসিয়ার আছে কিনা @Deprecated। এই @FancyDeprecatedসফল হলে আপনি পুরানো অব্যবহৃত কোড পরিষ্কার না হয়ে যাওয়ার পরের একটি নির্দিষ্ট তারিখ অতিক্রান্ত হয়ে গেছে থেকে প্রকল্পের বিল্ড বাধা দিতে পারে।

আমি ইন্টারনেটে অনুসন্ধান করে যাচ্ছিলাম এবং নীচে বর্ণিত সক্ষমতা রয়েছে এমন কিছুই খুঁজে পেলাম না:

  • আপনার নির্দিষ্ট তারিখের আগে মুছতে চাওয়ার কোডটিতে স্থান দেওয়ার জন্য একটি টীকা বা অনুরূপ কিছু হওয়া উচিত
  • তারিখের আগে কোডটি সংকলন করবে এবং সবকিছু স্বাভাবিকভাবে কাজ করবে
  • এই তারিখের পরে কোডটি সংকলন করবে না এবং এটি আপনাকে একটি বার্তা দেয় যাতে সমস্যা সম্পর্কে আপনাকে সতর্ক করে দেওয়া হয়

আমি মনে করি আমি একটি ইউনিকর্ন খুঁজছি ... কোনও প্রোগ্রামের ভাষার জন্য কি একই জাতীয় প্রযুক্তি রয়েছে?

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


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

4
পরিকল্পনা বি শক্ত মনে হয়। যুক্ত হওয়া সুবিধার সাথে আপনি কেন ইউনিট টেস্টে মন্তব্যটি রাখতে পারেন কেন এটি অবহেলা করা হয়েছে। সোর্স
কোডটিতে

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

6
এটিকে @ অবনমিত_ সরানোমী_2018_06_01 করুন এবং তারপরে 2018-06-01 এ টিকাটি নিজেই মুছুন। ভয়েলা, টীকাটি ব্যবহার করে আপনার সমস্ত কোড আর সংকলন করবে না! (কারণ টীকাটি পাওয়া যায় নি)
প্রতিরোধ

65
ভবিষ্যতের বছরগুলিতে, একজন নতুন ভাড়া নেওয়া বিকাশকারী জিজ্ঞাসা করবেন: বিল্ড সার্ভারে জানুয়ারী 2016 এর সময় কেন সেট করা হয়েছে? এবং যে ছেলেটি এখানে 10 বছরের জন্য রয়েছে তাকে বলবে যে এটি প্রয়োজনীয় বা এলোমেলো জায়গায় বিল্ড বিরতি। দীর্ঘশ্বাস.
উইলবার্ট

উত্তর:


62

আমি সত্যই এটি সংকলন নিষিদ্ধ যখন এটি একটি দরকারী বৈশিষ্ট্য হবে বলে মনে করি না। 01/06/2018 এ কোডের বড় অংশগুলি আগের দিনটি সংকলিত কোনটি সংকলন করবে না, আপনার দলটি আবার সেই টীকাটি আবার সরিয়ে ফেলবে, কোড সাফ হয়ে গেছে কিনা।

তবে আপনি কোডটিতে কিছু কাস্টম টিকা যুক্ত করতে পারেন

@Deprecated_after_2018_07_31

এবং সেই টীকাগুলির জন্য স্ক্যান করতে একটি ছোট সরঞ্জাম তৈরি করুন। (যদি আপনি প্রতিবিম্বটি ব্যবহার করতে না চান তবে গ্রেপের একটি সাধারণ একটি লাইনার এটি করবে। জাভা ব্যতীত অন্য ভাষায়, "গ্রেপিং" এর জন্য উপযুক্ত একটি মানযুক্ত মন্তব্য, বা একটি প্রিপ্রসেসর সংজ্ঞা ব্যবহার করা যেতে পারে।

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


9
@ বার্গি: আরে, এটি কেবল একটি উদাহরণ, ওপিতে তারা নিয়ন্ত্রণে যত পছন্দ করেন সংস্করণ বা তারিখ ট্যাগ ব্যবহার করতে পারেন।
ডক ব্রাউন

4
আমি কেবল সাধারণ অবমূল্যায়ন বৈশিষ্ট্যগুলি ব্যবহার করে এবং নির্দিষ্ট তারিখে সংকলকের আউটপুটটি দেখে এটি করার কোনও সুবিধা দেখছি না। দেখে মনে হচ্ছে এটি বিকাশকারী সময়কে দুর্বল ব্যবহারের মতো মনে হচ্ছে যা ইতিমধ্যে বিদ্যমান something এমনকি যদি আপনি ইতিমধ্যে একটি টন সতর্কতা পেয়েছেন (যা এটি পরিষ্কার করা আপনার সময়ের জন্য উপযুক্ত), অবশ্যই আপনি সংকলকটি একটি টেক্সট ফাইলে সমস্ত সতর্কতা স্পিট করতে পারেন এবং তারপরে গ্রেপ বা অনুসন্ধান করতে পারেন।
jpmc26

4
@ জেপফোর আমি পরামর্শ দিচ্ছি যে বিদ্যমান সরঞ্জামগুলির সাথে ইতিমধ্যে দক্ষতার সাথে আপনি যে কাজগুলি করতে পারেন তা করতে নতুন সরঞ্জাম তৈরির ক্ষেত্রে ঘন্টা (নোট, সময় = অর্থ) ডুবে না যাওয়ার পরামর্শ দিচ্ছি those
jpmc26

3
@ jpmc26: আমি দুটি (ছোট) সুবিধাগুলি দেখতে পাচ্ছি: প্রচুর অবমূল্যায়নের সতর্কতা না পাওয়া (যা আরও গুরুত্বপূর্ণ বিষয়গুলিকে উপেক্ষা করার ঝুঁকি প্রবর্তন করবে), এবং বিভিন্ন কোড বিভাগের জন্য বিভিন্ন অবমূল্যায়নের মানদণ্ড (তারিখ, সংস্করণ, যাই হোক না কেন) প্রবর্তনের সম্ভাবনা। তদুপরি, ওপি একটি তারিখের সাথে অবমূল্যায়নের জন্য স্পষ্টভাবে জিজ্ঞাসা করেছিল।
ডক ব্রাউন

7
আপনি যদি আপনার উদাহরণে কেবলমাত্র তারিখের জন্য YYYY-MM-DD ক্রমটি ব্যবহার করেন তবে আমি +1 করব, কারণ আমি কেবল কখনও অস্পষ্ট দেখতে পেয়েছি ?? - ?? - YYYY অর্ডার ব্যথা এবং ভুল বোঝাবুঝির কারণ ঘটায়।
mtraceur 10:18

284

এটি টাইম বোমা হিসাবে পরিচিত একটি বৈশিষ্ট্য গঠন করবে । সময় বোম্বস তৈরি করবেন না।

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

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


74
+1 এটি আপনাকে কামড় দেবে । মাস পরে। শুক্রবারে আপনি যেমন জরুরিভাবে মোতায়েনের চেষ্টা করছেন। এবং এটি একটি দীর্ঘ উইকএন্ড, সুতরাং যে সমস্ত লোকেরা এ সম্পর্কে কিছু জানে তারা অফিসের বাইরে। এটা করবেন না।
রজার লিপসক্বে

3
একমত। অপ্রচলতা একটি সাংগঠনিক সমস্যা, কোনও কোডিংয়ের সমস্যা নয়। আমি এখনও একটি অ্যাপল প্লাগ করতে পারি] [এবং বেসিক লিখি, কিছুই আমাকে থামায় না। তবে, আমি কি চাই ?

19
আপনার "সংগঠিত এবং সচেতন" দিকনির্দেশের সাথে সঠিক সমাধানটি হ'ল মন্তব্যে একটি প্রস্তাবিত সময়সীমার সাথে "এই জাতীয় <মুছুন এবং মুছুন" "বলে আপনার বাগ ট্র্যাকিং সিস্টেমে একটি বাগ উত্থাপন করা। এবং তারপরে 6 মাসের মধ্যে যখন বাগ রিভিউটি চারপাশে আসে তবে পরবর্তী প্রকাশে কী কী বাগগুলি স্থির করা উচিত তা নির্ধারণ করতে, যদি সেই সময়সীমাটি আসন্ন হয়, আপনি বলবেন "এটি করার সময় হয়েছে"। এটি বেসিক প্রকল্প পরিচালনা।
অরবিট

1
আসলে, যদি আপনার প্রকাশের সময়সূচি যথেষ্ট অনুমানযোগ্য হয় তবে এটি এখনই মাইলফলক।
অরবিট

13
বিকল্পের জন্য আইসানির ভাষ্যটি দেখুন : " আপনি যদি চান লোকেরা অবজ্ঞাত বৈশিষ্ট্যগুলি ব্যবহার করা বন্ধ করে দেয় তবে সেগুলি ছাড়াই একটি সংস্করণ প্রকাশ করুন That এটি তাদের মনোযোগ পাবে এবং তারা যদি এটি এখনও না করতে পারে তবে তারা সর্বদা ফিরে যেতে পারে " "
স্টিভোসিয়াক

70

সি # তে আপনি ObsoleteAttributeনিম্নলিখিত পদ্ধতিতে ব্যবহার করবেন :

  • সংস্করণ 1 এ, আপনি বৈশিষ্ট্যটি প্রেরণ করুন। একটি পদ্ধতি, শ্রেণি, যাই হোক না কেন।
  • সংস্করণ 2-এ, আপনি মূল বৈশিষ্ট্যটি প্রতিস্থাপনের উদ্দেশ্যে আরও ভাল বৈশিষ্ট্যটি পাঠিয়েছেন। আপনি বৈশিষ্ট্যটিতে একটি অপ্রচলিত বৈশিষ্ট্য রেখেছেন, এটি "সতর্কতা" তে সেট করেছেন এবং এটিকে একটি বার্তা দিয়েছেন যা "এই বৈশিষ্ট্যটি অবজ্ঞা করা হয়েছে instead পরিবর্তে আরও ভাল বৈশিষ্ট্যটি ব্যবহার করুন this এই লাইব্রেরির ৩ য় সংস্করণে, যা এই জাতীয় এবং এই জাতীয় সংস্করণে প্রকাশিত হবে একটি তারিখ, এই বৈশিষ্ট্যটির ব্যবহার ত্রুটি হবে " বৈশিষ্ট্যটির ব্যবহারকারীরা এখনও এটি ব্যবহার করতে পারেন, তবে নতুন বৈশিষ্ট্যটি ব্যবহার করার জন্য তাদের কোড আপডেট করার সময় রয়েছে।
  • সংস্করণ 3-এ, আপনি সতর্কতার পরিবর্তে ত্রুটি হিসাবে বৈশিষ্ট্যটি আপডেট করেন এবং "এই বৈশিষ্ট্যটি হ্রাস করা হয়েছে। তার পরিবর্তে আরও ভাল বৈশিষ্ট্যটি ব্যবহার করুন। বার্তাটি আপডেট করুন। এই লাইব্রেরির ৪ র্থ সংস্করণে, যা এই জাতীয় এবং এই জাতীয় সংস্করণে প্রকাশিত হবে একটি তারিখ, এই বৈশিষ্ট্য নিক্ষেপ করা হবে। " আপনার পূর্ববর্তী সতর্কতাটি মানতে ব্যর্থ ব্যবহারকারীরা এখনও একটি দরকারী বার্তা পান যা তাদের কীভাবে সমস্যাটি ঠিক করতে হয় তা জানায় এবং তাদের অবশ্যই এটি ঠিক করতে হবে, কারণ এখন তাদের কোড সংকলন করে না।
  • সংস্করণ 4-এ, আপনি বৈশিষ্ট্যটি পরিবর্তন করেছেন যাতে এটি কিছু মারাত্মক ব্যতিক্রম ছোঁড়ে এবং বার্তাটি পরিবর্তন করে বলে দেয় যে বৈশিষ্ট্যটি পুরোপুরি পরবর্তী সংস্করণে মুছে ফেলা হবে।
  • সংস্করণ 5-এ, আপনি বৈশিষ্ট্যটি পুরোপুরি সরিয়ে ফেলুন এবং ব্যবহারকারীরা যদি অভিযোগ করেন তবে ভাল, আপনি তাদের ন্যায্য সতর্কতার তিনটি মুক্তচক্র দিয়েছেন এবং তারা যদি এ সম্পর্কে দৃ strongly়তা অনুভব করেন তবে তারা সর্বদা সংস্করণ 2 ব্যবহার করা চালিয়ে যেতে পারেন।

এখানে ধারণাটি হ'ল আক্রান্ত ব্যবহারকারীদের পক্ষে যতটা সম্ভব বেদনাদায়ক পরিবর্তন করা এবং এটি নিশ্চিত করা যে তারা লাইব্রেরির কমপক্ষে একটি সংস্করণের জন্য বৈশিষ্ট্যটি ব্যবহার করা চালিয়ে যেতে পারে।


2
আমি বিশ্বাস করি যে এটি সঠিক পদ্ধতির তবে আমি একটি জিনিস পরিবর্তন করব ... এটি "ব্যবহারকারীরা অভিযোগ করলে" "যদি" ব্যবহারকারীরা অভিযোগ করেন "" তখন "অদলবদল হবে
লিথ

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

@ কেভিনক্যাথকার্ট: এটি একটি ভাল বিষয়; সেখানে অন্য একটি পর্যায়ে warranted হয়! আমি লেখাটি আপডেট করব।
এরিক লিপার্ট

1
প্রকৃতপক্ষে, আপনি যদি সেমওয়ারটি করছেন, আপনি এক্স + 1.0.0 এ সম্পূর্ণ অপসারণ করতে XY0 সংস্করণ (যে কোনও অবমূল্যায়ন অবশ্যই একটি সামান্য প্রকাশ হতে হবে) থেকে অবহেলা থেকে সরাসরি যেতে পারেন। আমি বলতে চাই যে আরও কিছুটা দূরে রাখা (এক্স + ২.০.০?), তবে এই পাঁচ-পদক্ষেপের প্রক্রিয়াটি সম্ভবত লিলিকে ঝলক দিচ্ছে। "সতর্কতা" এর পরবর্তী পরবর্তী পদক্ষেপটি "মারাত্মক ত্রুটি" হওয়া উচিত (কারণ অবচয় বৈশিষ্ট্যটি ত্রুটি-উত্পন্ন কোডের সাথে প্রতিস্থাপন করা হয়েছে)। যেহেতু libfoo.so.2এবং libfoo.so.3একে অপরের সাথে কেবল সূক্ষ্মভাবে থাকতে পারে, আপনার ডাউন স্ট্রিমটি পুরানো লাইব্রেরিটি স্যুইচ না হওয়া অবধি ব্যবহার করতে পারে।
মন্টি হার্ড

@ মন্টিহার্ডার: অবশ্যই ইভেন্টগুলির সঠিক ক্রমটি বিকাশকারী এবং তাদের ব্যবহারকারী সম্প্রদায়ের প্রয়োজনগুলির দ্বারা নির্ধারিত হতে পারে। যদিও বৃহত্তর বিষয়টি হ'ল এই যে এই ধরণের সংস্করণ সংক্রান্ত বিষয়গুলি স্পষ্টভাবে স্টেকহোল্ডারদের কাছে জানানো হয়েছে সেগুলি মোকাবেলার জন্য একটি চিন্তার মাধ্যমে নীতি হওয়া উচিত।
এরিক লিপার্ট

24

"প্রত্যাখ্যান" এর অর্থ আপনি ভুল বুঝেছেন। অবমানিত অর্থ:

ব্যবহারযোগ্য কিন্তু অপ্রচলিত এবং সেরা এড়ানো হিসাবে বিবেচিত, সাধারণত কারণ এটি অতিক্রম করা হয়েছে।

অক্সফোর্ড অভিধান

সংজ্ঞা অনুসারে, একটি অবহেলিত বৈশিষ্ট্যটি এখনও সংকলন করবে।

আপনি একটি নির্দিষ্ট তারিখে বৈশিষ্ট্যটি সরাতে চাইছেন । সেটা ঠিক আছে. আপনি যেভাবে যা করেন তা হ'ল আপনি সেই তারিখে সরিয়ে ফেলুন

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


ডাউনভোটার যার সাথে একমত নয় তাতে আগ্রহী।
jpmc26

2
+1 টি। আপনি যদি চটপটি বিকাশের জন্য JIRA ব্যবহার করেন তবে একটি কার্য তৈরি করুন এবং এটি ভবিষ্যতের স্প্রিন্টে রাখুন; আপনি যে কোনও প্রকল্প পরিচালনার সরঞ্জাম এবং পদ্ধতি অনুসরণ করেন তা মানিয়ে নিন apt এটি অ-প্রযুক্তিগত পদ্ধতির সাহায্যে সবচেয়ে ভাল সমাধান করা হয়।
ম্যাথু

1
এবং এটি নিশ্চিত করুন যে ক্লাস / লিবি ডকুমেন্টেশনে অবজ্ঞাপিত এবং / বা সংস্করণ Xx- এ সরানো হিসাবে রয়ে গেছে
ফিল এম

12

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

এছাড়াও, সংকলনের আগে আমার মেশিনের ঘড়িটি এক-দু'বছর পিছনে সেট করা তুচ্ছ কাজের মতো মনে হচ্ছে।

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

সম্পাদনা: আমি দেখতে পাচ্ছি যে আপনি আপনার প্রশ্নে "পুরানো অব্যবহৃত কোড" উল্লেখ করেছেন। কোডটি যদি সত্যিই অব্যবহৃত থাকে তবে এটিকে হ্রাস করার কোনও মানে নেই। শুধু এটি মুছুন।


এখন পর্যন্ত সর্বোত্তম উত্তর, সম্ভবত চাপটি চাপিয়ে দিন যে কোডটি মুছে ফেলা আপনার উত্তরে যত তাড়াতাড়ি সমস্যা সমাধানের সেরা উপায়। পাঠ্য উত্তরের অতীত প্রাচীরের স্ক্রোল করা সহজ হতে পারে
ক্লিন্ট

6

আমি এর আগে এমন বৈশিষ্ট্যটি আগে কখনও দেখিনি - একটি টীকা যা নির্দিষ্ট তারিখের পরে কার্যকর হতে শুরু করে।

@Deprecatedযথেষ্ট হতে পারে, কিন্তু। সিআই-তে সতর্কতাগুলি ধরুন এবং যদি উপস্থিত থাকে তবে বিল্ডটি মানতে অস্বীকার করুন। এটি আপনার বিল্ড পাইপলাইনে সংকলক থেকে দায়িত্বকে স্থানান্তরিত করে, তবে এর সুবিধা রয়েছে যে আপনি অতিরিক্ত পদক্ষেপ যুক্ত করে বিল্ড পাইপলাইনকে সহজেই (আধা) পরিবর্তন করতে পারবেন।

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


4

আপনি ক্যালেন্ডার বা টুডু তালিকার সন্ধান করছেন

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

কোডগুলি স্থির করার দরকার অনুস্মারকগুলি ভাল এবং প্রয়োজনীয় are কখনও কখনও এই অনুস্মারকগুলির কঠোর বাস্তব বিশ্বের সময়সীমা থাকে, তাই এগুলিকে টাইমার লাগানোও প্রয়োজনীয় হতে পারে।

লক্ষ্যটি হ'ল লোককে ক্রমাগত স্মরণ করিয়ে দেওয়া যে সমস্যাটি বিদ্যমান রয়েছে এবং একটি নির্দিষ্ট সময়সীমার সাথে সংশোধন করা দরকার - এমন একটি বৈশিষ্ট্য যা কেবলমাত্র নির্দিষ্ট সময়ে বিল্ডটি ভেঙে দেয় তা কেবল তা করে না, তবে সেই বৈশিষ্ট্যটি নিজেই একটি সমস্যা যা দরকার একটি নির্দিষ্ট সময়সীমার সাথে সংশোধন করা হবে।


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

3

এটি সম্পর্কে চিন্তা করার এক উপায় আপনার সময় / তারিখ বলতে কী বোঝায় ? কম্পিউটারগুলি এই ধারণাগুলিগুলি কী তা জানে না: সেগুলি কোনওভাবে প্রোগ্রাম করাতে হবে। "যুগের পর থেকে সেকেন্ড" এর UNIX ফর্ম্যাটে সময়ের প্রতিনিধিত্ব করা বেশ সাধারণ এবং ওএস কলের মাধ্যমে কোনও প্রোগ্রামে একটি নির্দিষ্ট মান প্রদান করা সাধারণ common তবে, এই ব্যবহারটি কতটা সাধারণ তা বিবেচনা করা উচিত, এটি "আসল" সময় নয় তা মনে রাখা গুরুত্বপূর্ণ: এটি কেবল একটি যৌক্তিক উপস্থাপনা।

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

এটি গুডাহার্টের আইনের অনুরূপ : আপনি যদি কোনও প্রোগ্রামের আচরণটি লজিকাল সময়ের উপর নির্ভর করে থাকেন তবে লজিকাল সময়টি "আসল" সময়ের একটি ভাল পরিমাপ হিসাবে বন্ধ হয়ে যায়। অন্য কথায়, লোকেরা সাধারণত সিস্টেমের ঘড়ির সাথে জগাখিচুড়ি করে না, তবে তারা যদি তাদের কোনও কারণ দেয় তবে তা করবে।

সময়ের অন্যান্য যৌক্তিক উপস্থাপনা রয়েছে: এর মধ্যে একটি হ'ল সফটওয়্যারটির সংস্করণ (হয় আপনার অ্যাপ বা কিছু নির্ভরতা)। উদাহরণস্বরূপ ইউনিক্স সময়ের চেয়ে এটি একটি "সময়সীমা" এর জন্য একটি আরও আকাঙ্ক্ষিত উপস্থাপনা, যেহেতু এটি আপনার যত্নের বিষয়টির জন্য আরও সুনির্দিষ্ট (বৈশিষ্ট্য সেট / এপিআইগুলি পরিবর্তন করা) এবং তাই অরথোগোনাল উদ্বেগগুলিতে পদদলিত হওয়ার সম্ভাবনা কম (যেমন ইউএনআইএক্স সময়ের সাথে মিলিয়ে যাওয়া) আপনার সময়সীমা কাজ করে লগ ফাইল, ক্রোন জবস, ক্যাশে ইত্যাদি ভাঙতে পারে)।

অন্যরা যেমন বলেছে, আপনি যদি গ্রন্থাগারটি নিয়ন্ত্রণ করেন এবং এই পরিবর্তনটিকে "ধাক্কা" দিতে চান, তবে আপনি একটি নতুন সংস্করণটি ধাক্কা দিতে পারেন যা বৈশিষ্ট্যগুলিকে হ্রাস করে (সতর্কতা সৃষ্টি করে, গ্রাহকদের তাদের ব্যবহার সন্ধান করতে এবং আপডেট করতে সহায়তা করে), তবে অন্য একটি নতুন সংস্করণ যা মুছে ফেলে সম্পূর্ণরূপে বৈশিষ্ট্য। আপনি চাইলে আপনি একে অপরের সাথে সাথেই প্রকাশ করতে পারেন, যেহেতু (আবার) সংস্করণগুলি কেবল সময়ের যৌক্তিক উপস্থাপনা, সেগুলির "প্রকৃত" সময়ের সাথে সম্পর্কিত হওয়ার দরকার নেই। শব্দার্থক সংস্করণ এখানে সহায়তা করতে পারে।

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

"টানুন" পদ্ধতির সাথে একটি গুরুত্বপূর্ণ প্রশ্ন হ'ল নির্ভরতা সংস্করণটি "ইউনিট" ( কার্যকারিতার ) হিসাবে গণ্য হয় এবং না, এবং তাই পরীক্ষার প্রাপ্য; বা এটি কেবলমাত্র "ব্যক্তিগত" বাস্তবায়ন বিশদ, যা কেবলমাত্র প্রকৃত ইউনিটের ( কার্যকারিতা ) পরীক্ষার অংশ হিসাবে ব্যবহার করা উচিত । আমি বলব: যদি নির্ভরতার সংস্করণগুলির মধ্যে পার্থক্যটি সত্যিই আপনার অ্যাপ্লিকেশনটির একটি বৈশিষ্ট্য হিসাবে গণনা করে তবে পরীক্ষাটি করুন (উদাহরণস্বরূপ, পাইথন সংস্করণটি> = 3.x পরীক্ষা করে)। যদি না হয়, তবে নাপরীক্ষা যুক্ত করুন (যেহেতু এটি ভঙ্গুর, তথ্যহীন এবং অত্যধিক সীমাবদ্ধ); আপনি যদি গ্রন্থাগারটি নিয়ন্ত্রণ করেন তবে "ধাক্কা" রুটের নিচে যান। আপনি যদি লাইব্রেরিটি নিয়ন্ত্রণ না করেন তবে যা যা সংস্করণ সরবরাহ করা হয়েছে তা কেবল ব্যবহার করুন: যদি আপনার পরীক্ষাগুলি পাস হয় তবে এটি নিজেকে সীমাবদ্ধ রাখার মতো নয়; যদি তারা পাস না করে তবে এটিই আপনার "সময়সীমা"!

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

এর প্রত্যেকটি বিভিন্ন পরিস্থিতিতে প্রযোজ্য হবে।


1

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

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


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

1

একটি প্রয়োজন বিল্ড মধ্যে সময়ের একটি ধারণা চালু করা। সি, সি ++, বা অন্যান্য ভাষায় / সিস্টেম যা সি-মত প্রাক প্রসেসর ব্যবহার বিল্ড 1 , এক বিল্ড সময়ে প্রাক প্রসেসর জন্য সংজ্ঞায়িত মাধ্যমে একটি সময় স্ট্যাম্প পরিচয় করিয়ে পারে: CPPFLAGS=-DTIMESTAMP()=$(date '+%s')। এটি সম্ভবত একটি মেকফিলের মধ্যে ঘটবে।

কোডটিতে একটি সেই টোকেনটির তুলনা করে এবং সময় শেষ হলে একটি ত্রুটি ঘটায়। মনে রাখবেন যে কোনও ফাংশন ম্যাক্রো ব্যবহার করে এমন কেসটি ধরা পড়ে যে কেউ সংজ্ঞায়িত করে নি TIMESTAMP

#if TIMESTAMP() == 0 || TIMESTAMP() > 1520616626
#   error "The time for this feature has run out, sorry"
#endif

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

//...
void new1();
void new2();
#if TIMESTAMP() < 1520616626
   void old();
#endif
//...

একটি অনুরূপ নির্মাণ সম্ভবত old()কিছু উত্স ফাইল থেকে ফাংশন বডি মুছে ফেলবে ।

অবশ্যই এটি বোকা প্রমাণ নয়; TIMESTAMPশুক্রবার রাতে অন্য যে কোনও জায়গায় উল্লেখ করা জরুরি ভিত্তিক বিল্ডিংয়ের ক্ষেত্রে যে কোনও ব্যক্তি কেবল পুরানো সংজ্ঞা দিতে পারেন । তবে তা আমি বরং উপকারী বলে মনে করি।

এটি স্পষ্টতই তখন কাজ করে যখন গ্রন্থাগারটি পুনরায় সংকলিত হয় - এর পরে অপ্রচলিত কোডটি লাইব্রেরিতে আর উপস্থিত থাকে না। এটি ক্লায়েন্ট কোডটি অপ্রচলিত বাইনারিগুলির সাথে লিঙ্ক করা থেকে বিরত রাখতে পারে না


1 সি # কেবলমাত্র প্রাকপ্রসেসর প্রতীকগুলির সাধারণ সংজ্ঞাটিকে সমর্থন করে, কোনও সংখ্যাগত মান নেই, যা এই কৌশলটি কার্যক্ষম নয়।


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

@ মাইন্ড্রিয়ট এটি একটি আকর্ষণীয় দিক। আমি মনে করি কোডের সাথে সময়ের ধারণাটি প্রবর্তনের প্রতিটি পদ্ধতির সাথে এটি সত্য - যদিও ওপি স্পষ্টভাবে বলেছিল "একটি নির্দিষ্ট তারিখ পেরিয়ে যাওয়ার পরে"। কেউ যদিও বিল্ড সিস্টেমে সময়ের দিকটি পরিচালনা করতে পারে এবং কোডটি একা রেখে দেয়, সত্য। তবে ওপি স্পষ্টভাবে "কোডটিতে কিছু দেওয়ার" জন্য জিজ্ঞাসা করেছিল। আমার সমাধানটি কোনও নির্দিষ্ট বিল্ড পদ্ধতি থেকে স্বাধীন থাকার সুবিধা রয়েছে। এটি প্রতারণা করা যেতে পারে, তবে আপনাকে এটি একরকম বা অন্য কোনওভাবে পূরণ করতে হবে।
পিটার এ স্নাইডার

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

0

ভিজ্যুয়াল স্টুডিওতে, আপনি একটি প্রাক-বিল্ড স্ক্রিপ্ট সেট আপ করতে পারেন যা একটি নির্দিষ্ট তারিখের পরে ত্রুটি ছুঁড়ে দেয়। এটি সংকলন রোধ করবে। এখানে একটি স্ক্রিপ্ট যা 12 মার্চ, 2018 বা তার পরে ত্রুটি ছুড়ে ফেলেছে ( এখান থেকে নেওয়া ):

@ECHO OFF

SET CutOffDate=2018-03-12

REM These indexes assume %DATE% is in format:
REM   Abr MM/DD/YYYY - ex. Sun 01/25/2015
SET TodayYear=%DATE:~10,4%
SET TodayMonth=%DATE:~4,2%
SET TodayDay=%DATE:~7,2%

REM Construct today's date to be in the same format as the CutOffDate.
REM Since the format is a comparable string, it will evaluate date orders.
IF %TodayYear%-%TodayMonth%-%TodayDay% GTR %CutOffDate% (
    ECHO Today is after the cut-off date.
    REM throw an error to prevent compilation
    EXIT /B 2
) ELSE (
    ECHO Today is on or before the cut-off date.
)

এই স্ক্রিপ্টটি ব্যবহারের আগে এই পৃষ্ঠায় অন্য উত্তরগুলি অবশ্যই পড়তে ভুলবেন না।


-1

আপনি যা করার চেষ্টা করছেন তার উদ্দেশ্যটি আমি বুঝতে পারি। তবে অন্যরা যেমন উল্লেখ করেছে, বিল্ড সিস্টেম / সংকলক সম্ভবত এটি কার্যকর করার উপযুক্ত জায়গা নয়। আমি নীতিটি প্রয়োগের জন্য আরও প্রাকৃতিক স্তরটি পরামর্শ দেব হ'ল এসসিএম বা পরিবেশের ভেরিয়েবল।

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

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

অবমূল্যায়নের তারিখ শেষ হওয়ার পরে, একটি নতুন preDeprecatedশাখা তৈরি করুন master। তারপরে postDeprecatedআবার মার্জ করুন master। আপনার রিলিজটি masterশাখাটি বন্ধ হয়ে গেছে বলে ধরে নেওয়া উচিত, আপনার এখন তারিখের পরে অবনমিত-পরবর্তী শাখা ব্যবহার করা উচিত। যদি কোনও জরুরী অবস্থা থাকে বা আপনি সময়মতো ফলাফল সরবরাহ করতে না পারেন তবে আপনি সর্বদা রোলব্যাক করতে পারেন preDeprecatedএবং সেই শাখায় যে কোনও প্রয়োজনীয় পরিবর্তন করতে পারেন।


7
এই পদ্ধতির একটি যৌক্তিক দুঃস্বপ্ন মত শোনাচ্ছে। আপনি যদি নিকট-সদৃশ সমান্তরাল শাখাগুলি বজায় রাখা শুরু করেন তবে আপনি আপনার সমস্ত সময় ব্যয় করে শেষ করবেন। মোট বর্জ্য।
অরবিট

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

3
কারণ মুক্তির শাখাগুলি বজায় রাখার জন্য ভাল কারণ রয়েছে (গুরুত্বপূর্ণ প্যাচগুলি ব্যাকপোর্টিং)। "ভবিষ্যতে আমি কিছু করতে পারি" শাখা বজায় রাখার কোনও উপযুক্ত কারণ নেই। এটি কোনও উপকারের জন্য ওভারহেড। যে হিসাবে সহজ।
অরবিট

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

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