কোডটি এমন কোনও টুকরো টুকরো টুকরো টুকরো টুকরো করে মুছে ফেলবে যা দেখে মনে হচ্ছে এটি কখনও প্রবেশ করা হয়নি?


125

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

দুটি ধারণা মনে বসন্ত।

  1. "সহজভাবে" কোডটি কার্যকর করা উচিত কিনা দেখে মনে হচ্ছে এর ভিত্তিতে ছাড় ব্যবহার করুন uction যাইহোক, কখনও কখনও এটি একটি জটিল, সময় সাশ্রয়ী মূল্যের কাজ হতে পারে, সামান্য ঝুঁকিপূর্ণ (আপনার মূল্যায়ন ত্রুটিযুক্ত বলে প্রবণ) কোনও ব্যবসায়ের যথেষ্ট পরিমাণে ফেরতের জন্য নয়।

  2. সেই কোড বিভাগে লগিং রাখুন এবং দেখুন যে এটি কতবার অনুশীলনে প্রবেশ করে। পর্যাপ্ত মৃত্যুদন্ড কার্যকর করার পরে, আপনার কোডটি অপসারণ করা যথাযথ আত্মবিশ্বাসের উচিত is

একটি ভাল ধারণা বা একটি প্রচলিত পদ্ধতির মত কিছু আছে?


55
সংস্করণ নিয়ন্ত্রণের ইতিহাসটি দেখার জন্য এটি সহায়ক হতে পারে: "ডেড কোড" কখন তৈরি করা হয়েছিল? এটি তৈরি করা অবস্থায় মৃত মনে হয়েছিল? অন্যান্য কোড (যা তখন থেকেই সংশোধিত বা মুছে ফেলা হয়েছে) যা তৈরি হয়েছিল, একই সাথে এটি তৈরি হওয়ার পরেও কি চেক করা হয়েছিল?
ক্রিসডাব্লু

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

16
আমি জিজ্ঞাসা করব - "কেন এটি মুছতে বিরক্ত করবেন?" যদি এটি এমন কোনও প্রান্তের ক্ষেত্রে ব্যবহার করা হয় যা একবার নীল চাঁদে বলা হয়, আপনি জিনিসগুলি ভেঙে দিয়েছেন। যদি এটি কখনও ব্যবহার না করা হয় এবং আপনি এটি সেখানে রেখে দেন তবে ক্ষতিটি হ'ল এক্সিকিউটেবল ফাইলটি কিছুটা বড় larger এটি যদি কিছু এম্বেড থাকা ডিভাইসের জন্য না হয় তবে এটি কি বড় কথা? এটিতে একটি মন্তব্য আঁকুন এবং উত্পাদনশীলভাবে আপনার সময় ব্যবহার করতে এগিয়ে যান।
মিকিফ

40
@ মাইকিফ ক্ষতিটি হ'ল কারও এই কোডটি বজায় রাখতে হবে। তার অর্থ একটি বিকাশকারী এটি কী করে তা বুঝতে হবে। যদি বিষয়গুলি পরিবর্তন হয় এবং এর চারপাশের কোডটি এখন অন্যরকম কিছু করতে হয় তবে বিকাশকারীকে এটিকে সংশোধন করতে হবে। বিশ্বাস করুন, যখন আপনি ক্রাফ্টটি প্রায় শুয়ে থাকেন, পরে যে কেউ পরে বিষয়গুলি বের করার চেষ্টা করছেন তাদের পক্ষে এটি একটি প্রধান মাথাব্যথা।
jpmc26

9
@MichaelJ। আমার বক্তব্যটি এটি প্রথম জায়গায় হওয়া উচিত ছিল না । এবং যদি আমি এটি ছেড়ে চলে যাই তবে পরিস্থিতি আরও খারাপ the এখন লাইনটিতে থাকা আরও কিছু বিকাশকারীকেও এটি তদন্ত করতে হবে। এটি যত বেশি সময় ধরে থাকে, এটি বুঝতে আরও সময় ব্যয় হয়। এটি অতিমাত্রায় কোডের মূল্য।
jpmc26

উত্তর:


112

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

তবে দুর্ভাগ্যক্রমে আমাকে প্রতি সকালে ঘুম থেকে উঠতে এবং কঠোর বাস্তবতার মুখোমুখি হতে হয় যেখানে প্রচুর কোডের কোনও ইউনিটের পরীক্ষা হয় না বা যখন সেখানে থাকে তখন সত্যই প্রতিটি সম্ভাব্য প্রান্তের কেসটি .াকতে বিশ্বাস করা যায় না। সুতরাং আমি ঝুঁকি / পুরষ্কার বিবেচনা করব এবং এই সিদ্ধান্তে পৌঁছাব যে এটি কেবল মূল্যবান নয়:

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

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

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

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

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

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

84

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

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

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

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

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


14
চেস্টারটনের বেড়া ধরে নিয়েছে আবিষ্কারটি বিশুদ্ধভাবে চিন্তাভাবনা করেই আসে, এবং এটিকে কোনও প্রাচীন-গ্রীক দর্শন বলে মনে হয় না rather বৈজ্ঞানিক পদ্ধতিটি আরও আধুনিক the কাঠামোটি অপসারণের পরিণতিগুলি নির্ধারণের জন্য একটি নিয়ন্ত্রিত পরীক্ষা গ্রহণ করুন। নিশ্চিত হওয়ার জন্য, আমি অযৌক্তিকভাবে এই পরীক্ষাটি উত্পাদনে করার প্রস্তাব দেব না। তবে যদি কোনও বিকল্প না থাকে এবং উত্পাদনের ক্ষেত্রে পরীক্ষার ব্যয় খুব বেশি হয় তবে ভাল, আমি খুব শীঘ্রই এমন একটি কর্মক্ষেত্র ছেড়ে চলে যাব যা আমাকে কোনও কোড কেন বিদ্যমান তা শেখার কোনও নিরাপদ উপায়ের প্রস্তাব দেয় না such এই জাতীয় চাকরিতে ব্যক্তিগত ঝুঁকি খুব বেশি learn ।
কোজিরো

15
@ কোজিরো এটি সত্য। আমি ভাবতে চাই যে চেস্টার্টন যদি ঠিক একজন "আধুনিক সংস্কারক" হয়ে এসে বলেছিলেন, "কেন জানি না এই বেড়া এখানে রয়েছে, আমি স্বীকার করেছি। তবে আমি এটি লাল রঙ করতে চাই কিনা তা দেখতে এটি আমাকে যে কোনও নতুন তথ্য সরবরাহ করে, "চেস্টারটন সম্ভবত এতে খুশি হবে।
কর্ট আম্মোন

41
ভিএমএস ওএস কার্নেল মোড ক্লক ডিকোডিং পদ্ধতি SYS $ ASCTIM এ কোডের একটি লাইন রয়েছে যা পার্ভেনাল ইকিনোক্সের পার্শ্বযুক্ত প্রবাহের জন্য সঠিক করতে সহায়তা করে। ডিসি'র কোনও ইউনিট পরীক্ষার এই কোডটি ব্যবহার করে না। এটি একবারে চালানো হয়েছিল - সঠিকভাবে - 2000-02-28 এ 23: 59: 59: 999 এ। এটি 2400 বছর পর্যন্ত আবার চলবে না Please দয়া করে এটি মুছবেন না।
এআই ব্রেভেরি

13
@ এ্যাব্রেভেরি, আমার আশা করা উচিত যে কোডটিতে নিজেই এটির ব্যাখ্যা দিয়েছে, এবং কেবল স্ট্যাক এক্সচেঞ্জে নেই: ডি
কাইল স্ট্র্যান্ড

11
@ কাইলস্ট্র্যান্ড আপনি কী সম্পর্কে কথা বলছেন? এই হল ডকুমেন্টেশন। আপনি কি গুরুত্বপূর্ণ তথ্য রাখার জন্য আরও ভাল জায়গাটির কথা ভাবতে পারেন যাতে স্ট্যাক এক্সচেঞ্জের চেয়ে অন্য লোকেরা এটি খুঁজে পায়? ;-)
আম্মন কর্ট

43

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


11
আমি একজন ডাউনভোটার নই, তবে আপনি যদি মনে করেন যে কোড বিভাগটি কখনও চালিত না হয় তবে এটি কোনও সম্পূর্ণ ফাংশন বা শ্রেণি নয়, তবে কোনও পদ্ধতি / ফাংশনের একটি অংশ?
তুলিনাস কর্ডোভা

9
ভাষার উপর নির্ভর করে এটি সর্বদা নির্ভরযোগ্য হতে পারে না - কিছু ভাষা পদ্ধতি কলকে গতিশীল করার অনুমতি দেয়। উদাহরণস্বরূপ পিএইচপি:$object->$variableMethod($arg1, $arg2);
Dezza

9
@ TulainsCórdova তাহলে সম্ভবত এটি সম্ভবত একটি ভাল সমাধান নয়। প্রতিটি সম্ভাব্য সমাধান হিসাবে, এটি প্রদত্ত প্রসঙ্গে যদি তা বোঝা যায় তবে এটি ব্যবহার করুন। তবে সম্ভবত grepআইএনজি। কোড বিভাগটি অন্তর্ভুক্ত ফাংশনটি কীভাবে ফাংশনটি ব্যবহৃত হয় এবং এর ফলে এটির বিষয়বস্তু সম্পর্কে সূত্র দিতে পারে?
পাইভি

7
"মতামত বা একটি ডকুমেন্টেশন ফাইল, বা স্ক্রিপ্টে নামটি উল্লেখ করা থাকলে" - অথবা কেউ যদি পদ্ধতিটি কল করতে (যদি উচ্চ-স্তরের / ওও ভাষা ব্যবহার করে) প্রতিবিম্ব ব্যবহার করছে। যদিও এখনও অগত্যা 100% নির্ভুল নয়, কারণ কিছু ভাষাগুলি আবিষ্কার এবং আহ্বান করার পদ্ধতিগুলির কয়েকটি খুব বিরক্তিকর উপায়গুলি সমর্থন করে।
অ্যারোথ

যদি আপনার সমস্ত সম্ভাব্য কোডটিতে অ্যাক্সেস থাকে যা ফাংশনটি ব্যবহার করতে পারে তবে এটি সহায়ক। যাইহোক, কোডটি যদি একটি লাইব্রেরির অংশ হয় তবে আপনি কীভাবে জানতে পারবেন যে আপনি যে কোনও কিছু দিয়ে অনুসন্ধান করতে পারবেন না সেটি ভেঙে যাবে না?
কেভিন শেয়া

30
  • কোডটি মৃত দেখাচ্ছে বলে সনাক্ত করুন (স্থির বিশ্লেষণ ইত্যাদি)।
  • কথিত মৃত কোডটির প্রতিটি অনুরোধের জন্য একটি লগ বার্তা যুক্ত করুন । এটি ফাংশন / পদ্ধতিগুলির সাথে সহজ; স্থির সদস্যদের মতো ধ্রুবক সদস্যদের সাথে এটি আরও জটিল। কখনও কখনও আপনি কোডটিকে অবহেলিত হিসাবে চিহ্নিত করতে পারেন এবং রানটাইম স্বয়ংক্রিয়ভাবে আপনার জন্য একটি বার্তা লগ করবে। কোডটি অন্যথায় অক্ষত রেখে দিন।
    • মৃত মডিউলটি লোড হয়ে গেলে একটি বার্তা লগইন করুন: বেশিরভাগ ভাষাগুলির লোড সময় স্থিতিশীল প্রারম্ভিক চালনার উপায় রয়েছে যা পিগ-ব্যাকযুক্ত হতে পারে।
    • আপনার লগ বার্তায় একটি যুক্তিসঙ্গত স্ট্যাক ট্রেস অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করুন, যাতে আপনি কীভাবে কথিত মৃত কোড বলে তা বুঝতে পারেন ।
  • আপনার সমস্ত পরীক্ষার স্যুটের মাধ্যমে পরিবর্তিত কোডটি চালান। আপনার টেস্ট স্যুটগুলিতেও বিশেষ সময়ের জন্য পরীক্ষা করা উচিত, যেমন একটি মধ্যরাত পার হওয়া, এক চতুর্থাংশের পালা, এক বছরের পালা ইত্যাদি the লগগুলি দেখুন, কী মারা গেছে তা সম্পর্কে আপনার উপলব্ধি আপডেট করুন। নোট করুন যে ইউনিট পরীক্ষাগুলি নির্দিষ্টভাবে ডেড কোডটি পরীক্ষা করতে পারে, অন্য কোনও ইউনিট পরীক্ষা বা কোনও সংহতকরণ পরীক্ষা এটি স্পর্শ করতে পারে না।
  • উত্পাদনে পরিবর্তিত কোডটি কয়েক সপ্তাহ ধরে চালান। এই সময়কালে প্রতিটি পর্যায়ক্রমিক প্রক্রিয়া, যেমন মাসে একবারের ETL ক্রোন জবগুলি চালিত হয় তা নিশ্চিত করুন।
  • লগগুলি দেখুন। যা কিছু লগ করা হয়েছিল তা আসলে মৃত নয়। মৃত কোড বাকি খরচ করে কলটি গ্রাফ সকর্মক অবসান হয় এছাড়াও সম্ভাব্য মৃত না যদিও তা প্রার্থনা করা হয় নি। এটি বিশ্লেষণ করুন। সম্ভবত কিছু শাখা নিরাপদে মারা গেছে (উদাহরণস্বরূপ, এখন বিলুপ্তপ্রায় পরিষেবার একটি API এর সাথে কাজ করা), অন্যদিকে কিছু এখনও নেই yet হতে পারে একটি সম্পূর্ণ মডিউল / শ্রেণি কেবল এটির মধ্যে সংজ্ঞায়িত ধ্রুবক জন্য লোড করা হয় এবং আপনি সহজেই এটি ব্যবহার করতে পারবেন না।
  • যা কিছু বাকী রয়েছে তা নিরাপদে মারা গেছে, এবং সরানো যেতে পারে।

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

7
@ নোকমপ্রেন্ডে ঠিক কী ঘটে যদি এই কোডটি কেবল বছরের ফাংশন শেষ হওয়ার জন্য ব্যবহার করা হয় এবং আপনি আপনার পরীক্ষা চালান ফেব্রুয়ারী - নভেম্বর।
এরিক

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

1
@ 9000 বিপরীতে সিলো বি এর কোডটিতে সিলো এ এর ​​কোডটিতে একটি "মৃত" কোড পথে সাময়িক মিলন রয়েছে যা কেবল সিলো এ এর ​​কোডটি দেখলেই আপাত হয় না isn't এই সাময়িক সংযোগের জন্য আপনি কীভাবে ইউনিট টেস্ট করবেন যেহেতু টেম্পোরাল কাপলিং সিলো বি এর সাথে কথা না জেনে শুধুমাত্র সিলো বি এর কোডে রয়েছে? তারপরেও সময়টি আপনার কোডের একটি উপাদান নয় (সিলো এ) সুতরাং একটি অস্থায়ী পরীক্ষার মতো দেখতে কেমন হবে?
এরিক

2
Y2k আতঙ্ক কেউ মনে আছে ? কিছু কোড 2000 সালে সঠিক ছিল কারণ এটি 2100 এর জন্য ভুল ছিল! আমাদের একটি সম্ভাব্য সমস্যা ছিল যা একবার 100 বছরে বা 400 বছরে একবারে ঘটতে পারে।
স্টিভ বার্নেস

16

উল্লিখিত বিদ্যমান উত্তরের পাশাপাশি আপনি বিভিন্ন সংস্করণে কোডটি পুনরাবৃত্তভাবে মুছে ফেলতে পারেন।

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

এটি শেষ ব্যবহারকারীদের কোনও সতর্কতা ছাড়াই অপ্রত্যাশিত কার্যকারিতা সনাক্ত করতে সহায়তা করতে পারে। সর্বোত্তম পরিস্থিতিতে দৃশ্যে কোডটি আসলে কিছুই করে না এবং যা ঘটে তা হ'ল অপরিবর্তিত কোড অপসারণের আগে বেশ কয়েকটি সংস্করণে রাখা হয়।


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

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

7

অনেক লোক পরামর্শ দিচ্ছেন যে "নিরাপদ" কাজটি করতে হবে আপনি কোডটিকে অব্যবহৃত প্রমাণ করতে না পারলে কোডটি রেখে দেওয়া।

কোড কোনও সম্পদ নয়, এটি একটি দায়বদ্ধতা।

এটি কেন গুরুত্বপূর্ণ তা আপনি ব্যাখ্যা করতে না পারলে এবং এর পরীক্ষাগুলির দিকে ইঙ্গিত না করা, "নিরাপদ" বিকল্পটি এটি মুছতে পারে।

আপনি যদি এখনও নিশ্চিত না হন তবে কমপক্ষে জম্বি কোডটি ব্যবহারের জন্য পরীক্ষা যোগ করার বিষয়টি নিশ্চিত করুন।


পদক্ষেপ 1: সমস্ত কোড মুছুন। পদক্ষেপ 2: যা প্রয়োজন তা ফিরিয়ে দিন। পদক্ষেপ 3: পুনরাবৃত্তি।

1
@ অ্যাড্রিয়ান আমি কি নাইট ক্যাপিটালের প্রতি আপনার দৃষ্টি আকর্ষণ করতে পারি? en.wikedia.org/wiki/… - ঠিক যদি আপনি নিজের বিষয়টিকে একটি উল্লেখ দিয়ে উত্সাহিত করতে চান তবেই । এগুলি মূলত বিভ্রান্ত হয়েছিল কারণ কিছু পুরানো কোডটি জীবনে ফিরে এসেছিল এবং দয়া করে তাদের জন্য প্রায় 500 মিলিয়ন ডলার হারিয়েছেন। পরবর্তী তদন্তটি তাদের মুক্তির পদ্ধতির উপর দৃষ্টি নিবদ্ধ করেছিল, তবে মূল সমস্যাটি ছিল "মৃত কার্যকারিতা মোছা হয়নি"।
সুসানডাব্লু

6

প্রশ্নযুক্ত কোডটিকে সম্পূর্ণ উপেক্ষা করার জন্য আপনি আপনার সফ্টওয়্যারটির সম্পাদনের পথ পরিবর্তন করতে বৈশিষ্ট্য টগলগুলি ব্যবহার করতে পারেন।

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

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

টগলস সম্পর্কে এখানে আরও পড়ুন: https://martinfowler.com/articles/feature-toggles.html


6

অবশ্যই স্থির বিশ্লেষণ ... এবং দুর্দান্ত জিনিসটি হল, আপনার কোনও নতুন সরঞ্জামের প্রয়োজন নেই; আপনার সংকলকটিতে আপনার প্রয়োজনীয় সমস্ত স্থিতিশীল বিশ্লেষণ সরঞ্জাম রয়েছে।

শুধু পদ্ধতি (যেমন পরিবর্তনের নাম পরিবর্তন DoSomethingকরতে DoSomethingX) এবং তারপর একটি build চালানো।

যদি আপনার বিল্ডটি সফল হয় তবে পদ্ধতিটি স্পষ্টতই কোনও কিছুর দ্বারা ব্যবহৃত হচ্ছে না। মুছতে নিরাপদ।

যদি আপনার বিল্ডটি ব্যর্থ হয়, কোডের যে লাইনটি তাকে কল করে তা আলাদা করে দিন এবং কীভাবে ifবিবৃতিগুলি কলটি ঘিরে রয়েছে তা কীভাবে ট্রিগার করতে হবে তা পরীক্ষা করে দেখুন । যদি আপনি এটি ব্যবহার করে এমন কোনও সম্ভাব্য ডেটা ব্যবহারের কেস খুঁজে না পান তবে আপনি নিরাপদে এটি মুছতে পারেন।

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


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

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

1
হুম ... আমি কৌতূহল বোধ করছি, আপনি যা বলেছিলেন তা সত্য বলে আমি মনে করি না। এটি ভ্যানিলা জাভাস্ক্রিপ্টের জন্য নয় (প্রাক্পম্পাইল নয়), রুবি, পাইথন বা ছোট্টালকের উদাহরণস্বরূপ, তাই না? যদি আপনি এমন স্টাফগুলিকে উল্লেখ করেন যা অস্তিত্বহীন, তবে কেবল ত্রুটিগুলি রানটাইম এ।
eis

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

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

4
  • এই কোডটি ডেড কোড কিনা তা পরীক্ষা করতে আমি একটি কোড বিশ্লেষক ব্যবহার শুরু করব
  • আমি আমার পরীক্ষাগুলি পরীক্ষা করে কোডে পৌঁছানোর চেষ্টা করব। যদি আমি পরীক্ষার ক্ষেত্রে কোডটিতে পৌঁছাতে না পারি তবে এটি মৃত কোড হতে পারে
  • আমি কোডটি সরিয়ে ফেলব এবং পরিবর্তে একটি ব্যতিক্রম ছুঁড়ে ফেলব। একটি রিলিজের জন্য ব্যতিক্রম সক্রিয় করা হয়, এবং দ্বিতীয় প্রকাশে ব্যতিক্রমটি সরানো যেতে পারে। সুরক্ষিত থাকতে, কোনও গ্রাহক ব্যতিক্রম লক্ষ্য করলে মূল কোডটি সক্রিয় করতে সক্ষম হতে একটি জরুরি পতাকা (জাভাতে, একটি সিস্টেম সম্পত্তি) রাখুন। সুতরাং ব্যতিক্রম অক্ষম করা যেতে পারে এবং মূল কোডটি একটি উত্পাদন পরিবেশে সক্রিয় করা যেতে পারে।

6
-1। উত্পাদনশীল কোড, সুরক্ষা পতাকাতে এই পরিবর্তনগুলি করা একেবারেই সুপারিশযোগ্য নয়। কেবল যখন কেউ নিশ্চিত হন যে প্রশ্নে থাকা কোডটি ব্যবহার করা হয়নি তবে তা উত্পাদনশীল কোডে সরানো উচিত। এই ধরণের গণ্ডগোলের কারণ হ'ল সর্বদা বিভিন্ন উত্পাদনশীল এবং পরীক্ষার পরিবেশ থাকা উচিত।
জোহানেস হাহন

3
পরীক্ষার কভারেজ প্রায় 90% হলে এটি ফ্যান্টাসিতে কাজ করবে, তবে যদি না হয় এবং আপনার 100.000 কোডের লাইন রয়েছে। আমি কোড পরীক্ষা করার চেষ্টা করার জন্য কেন বর্ণনা করেছি এবং যদি কোনও পরীক্ষা কোডে পৌঁছাতে সক্ষম না হয় ... তবে এটি মরে যেতে পারে।
মার্কাস লসবার্গ

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

@ জোহানেসহান আমার মনে হয় আপনার অর্থ, "উত্পাদন কোড," যা এমন একটি কোড যা একটি উত্পাদন পরিবেশে চলে।
jpmc26

@ jpmc26 হ্যাঁ, অবশ্যই
জোহানেস হাহান

3

অ্যাক্সেসযোগ্য কোড সরানো হচ্ছে

মূলত স্থিতিযুক্ত টাইপিত ভাষায়, কোডটি আসলে পৌঁছনীয় কিনা তা আপনার সর্বদা জানা উচিত: এটি সরিয়ে ফেলুন, সংকলন করুন, যদি কোনও ত্রুটি না থাকে তবে এটি পৌঁছনীয় নয়।

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

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

আপনি যদি অ-তত্ত্বীয় ওভারলোডিংয়ের কোনও ভাষা ব্যবহার করেন, তবে কেবল একটি ওভারলোড অপসারণ করা কেবল নিঃশব্দে ওভারলোডের রেজোলিউশনটিকে অন্য ওভারলোডে স্যুইচ করতে পারে । এই জাতীয় কিছু ভাষা আপনাকে কোডের ব্যবহারের সাথে যুক্ত একটি সংকলন-সময় সতর্কতা / ত্রুটি প্রোগ্রাম করার অনুমতি দেয়, অন্যথায় আপনি সংকলকটির উপর নির্ভর করতে পারবেন না। এই জাতীয় ভাষার মধ্যে জাভা (ব্যবহার @Deprecated) বা সি ++ (ব্যবহার [[deprecated]]বা = delete) অন্তর্ভুক্ত।

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

পরবর্তী বিভাগে কিউ করুন ...


সম্ভাব্য অব্যবহৃত কোড সরানো হচ্ছে

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

এক্ষেত্রে ভাষা নির্বিশেষে কোডটি কার্যকরভাবে পৌঁছানো যায় এবং কেবল রান-টাইম উপকরণ ব্যবহার করা যেতে পারে।

অতীতে, আমি সফলভাবে এই জাতীয় কোডটি সরিয়ে ফেলার জন্য 3-পর্যায়ের পদ্ধতির ব্যবহার করেছি:

  1. প্রতিটি শাখায় নেওয়া হবে না সন্দেহ, সতর্কতা লগ।
  2. একটি চক্রের পরে, একটি ব্যতিক্রম নিক্ষেপ করুন / কোডের নির্দিষ্ট অংশে প্রবেশের পরে একটি ত্রুটি ফেরান।
  3. অন্য চক্রের পরে, কোডটি মুছুন।

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

আশা করা যায়, বেশিরভাগ অ্যাপ্লিকেশনগুলিতে ছোট চক্র রয়েছে।

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


1
প্রকৃতপক্ষে, সি ++ এ আপনি সেই সন্দেহজনক ওভারলোডটিকে চিহ্নিত করতে পারেন [[deprecated]]যেগুলি সেই সংস্করণটিকে কল করে এমন সাইটগুলি সনাক্ত করতে পারে; তাদের আচরণ পরিবর্তন হবে কিনা তা দেখতে আপনি তাদের পরীক্ষা করতে পারেন। বিকল্পভাবে, আপনার ওভারলোডটিকে এটি হিসাবে সংজ্ঞায়িত করুন = delete- এই ক্ষেত্রে, আপনাকে অন্য সংস্করণগুলির মধ্যে একটিতে স্পষ্টভাবে যুক্তি উপস্থাপন করতে হবে।
টবি স্পিড

@ টবিস্পাইট: এটি সত্য এবং একটি ভাল বিকল্পও। আমাকে এটি সম্পাদনা করতে দিন।
ম্যাথিউ এম।

"ডক্টর, আমি যখন এটি করি তখন ব্যথা হয়।" "ভাল এটি করবেন না ! " কোডটি নিয়ন্ত্রণহীন করে এমন পদ্ধতির ব্যবহার করবেন না।

2

উত্পাদন থেকে কোড অপসারণ করা ঘর পরিষ্কার করার মতো। যে মুহুর্তে আপনি অ্যাটিক থেকে কোনও জিনিস ফেলে দিবেন, পরের দিন আপনার স্ত্রী আপনাকে মারা যাবে তার বড় দাদীর মায়ের তৃতীয় ভাগ্নীর 1922 সালে মারা যাওয়া প্রতিবেশীর কাছ থেকে তার উপহারের উপহার away

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

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

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

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

আইএমএইচও, মন্তব্যটি অতিরিক্ত অতিরিক্ত এবং অপসারণের প্রার্থী।


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

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

@ নোকমপ্রেডে এই থ্রেডের কোথাও এটি নির্দেশিত নয় যে আলোচনাটি কেবল ওওপি নকশা / ভাষাগুলির মধ্যে সীমাবদ্ধ। আপনি কেন এটি প্রাসঙ্গিক মনে করেন তা সম্পর্কে আমি নিশ্চিত নই।
আন্ডারস্কোর_

1

হয়তো কম্পাইলার নেই যে লক্ষ্য, এটি শুধু একটি অতিরিক্ত মনোযোগ দেখা যায় না।

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

বাইনারিগুলির সাথে তুলনা করুন। যদি তারা অভিন্ন হয়, তবে সংকলকটি লক্ষ্য করে এবং নিঃশব্দে কোডটি মুছে ফেলেছে। আপনি এটি উত্স থেকে নিরাপদে মুছতে পারেন।

যদি বাইনারিগুলি পৃথক হয় ... তবে এটি অনির্বাচিত। এটি অন্য কিছু পরিবর্তন হতে পারে। কিছু সংকলক এমনকি বাইনারি মধ্যে সংকলনের তারিখ এবং সময় অন্তর্ভুক্ত (এবং সম্ভবত এটি দূরে কনফিগার করা যেতে পারে!)


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

1
@ স্টিভবার্নস ওয়েল হ্যাঁ, আপনি যদি এলটিও এবং স্ট্যাটিক-লিঙ্কিং সব কিছু না করেন তবে আপনি কিছুটা ব্যথার জন্য রয়েছেন। এটি একটি প্রদত্ত
নবীন

1

"ডিলিটফু" নামক একটি পদ্ধতি নিয়ে আমি সম্প্রতি এই সঠিক পরিস্থিতিটি পেরিয়ে এসেছি। পুরো কোডবেসে কোথাও এই স্ট্রিংটি মেথডে ডিক্লারেশন ব্যতীত অন্য কোথাও পাওয়া গেল না, তবে আমি মেধার সাথে মেথডের শীর্ষে লগ লাইন লিখেছিলাম।

পিএইচপি:

public function deleteFoo()
{
    error_log("In deleteFoo()", 3, "/path/to/log");
}

দেখা যাচ্ছে যে কোডটি ব্যবহার করা হয়েছিল! কিছু এজেএক্স পদ্ধতি "পদ্ধতি: ডিলিট, এলেম = ফু" কল করে যা সংক্ষিপ্ত হয়ে কল_উজার_ফুনক_আরে () দিয়ে ডাকা হয় ।

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


টমবস্টোন (পিএইচপি: github.com/scheb/tombstone ) নামে পিএইচপি এবং পার্লের জন্য গ্রন্থাগার রয়েছে যা এখানে দরকারী হতে পারে।
আলিস্টার বুলম্যান

0

আপনার grepপ্রথমে যে কোনও সরঞ্জাম ব্যবহার করুন বা যে কোনও সরঞ্জাম ব্যবহার করুন , আপনি কোডটির উল্লেখ পেতে পারেন find (মূলত আমার নির্দেশ / পরামর্শ নয় Not)

তারপরে সিদ্ধান্ত নিন যে আপনি কোডটি অপসারণের ঝুঁকি নিতে চান, বা আমার পরামর্শটি ব্যবহারে আসতে পারে কিনা:

আপনি কোনও ফাংশন / কোডের ব্লকটি সংশোধন করতে পারেন এটি লিখতে যে এটি লগ ফাইলে ব্যবহৃত হয়েছে। যদি লগ ফাইলে এ জাতীয় কোনও বার্তা "সদা" রেকর্ড করা না থাকে তবে আপনি সম্ভবত লগিং কোডটি সরাতে পারেন।

দুটি সমস্যা:

  1. অন্যান্য ব্যবহারকারীর কাছ থেকে লগ প্রাপ্ত। সম্ভবত আপনি একটি বিশ্বব্যাপী পতাকা সেট করতে পারেন যা প্রস্থান করার সময় প্রোগ্রামটি ক্র্যাশ করবে এবং ব্যবহারকারীকে দয়া করে আপনাকে ত্রুটি লগ প্রেরণ করতে বলবে।

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

লগ ফাইলে আর্গুমেন্টগুলি সংরক্ষণ করা কার্যকর হতে পারে বা নাও হতে পারে।


0

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

অন্যদিকে, আপনি যদি এমন কোনও কোডের রিফ্যাক্টরিং করছেন যেখানে এটি জানেন না তবে এটি সরিয়ে ফেলবেন না । এটি প্রথমে বুঝতে পারুন, তারপরে এটি রিফ্যাক্টর করুন যদি আপনি এটি নিরাপদ হিসাবে নির্ধারণ করেন (এবং কেবলমাত্র যদি আপনি নির্ধারণ করতে পারেন যে রিফ্যাক্টরিং আপনার সময়ের সঠিক ব্যবহার হবে)।

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

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

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

সংক্ষেপে - কোডটি কী করে তা যদি আপনি জানেন তবে প্রথমে এটি পরীক্ষা করুন। আপনি যদি তা না করেন তবে আপনি সম্ভবত এটি একা রেখে যেতে পারেন। আপনি যদি জানেন যে আপনি এটিকে একা ছেড়ে যেতে পারবেন না , পরিবর্তনটি কার্যকর করার আগে আগ্রাসন করে পরীক্ষাটি পরীক্ষা করার জন্য আপনার সময় উত্সর্গ করুন।


0

আমার দৃষ্টিভঙ্গি, যা আমি সর্বদা এই ক্ষেত্রে শিল্পের মান হিসাবে ধরে নিয়েছি, আজও অদ্ভুতভাবে উল্লেখ করা হয়নি:

চোখের দ্বিতীয় জোড়া পান।

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

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


0

আপনার প্রশ্নের সহজ উত্তর হ'ল আপনি যে কোডটি বুঝতে পারছেন না সেটিকে আপনি নিরাপদে মুছতে পারবেন না, যার মধ্যে এটি কীভাবে ডাকা হয় তা না বোঝার অন্তর্ভুক্ত। কিছুটা ঝুঁকি থাকবে।

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

কোডটি যদি সোর্স নিয়ন্ত্রণে থাকে তবে আপনি কখন যুক্ত হয়েছিলেন তা সর্বদা খুঁজে পেতে পারেন এবং এটি কীভাবে ডাকা হয়েছিল তা নির্ধারণ করতে পারেন।

শেষ পর্যন্ত, আপনি হয় এটি বুঝতে পারেন, এটিকে একা রেখে যান বা একটি সুযোগ নিন।


0

যদি প্রশ্নে কোডের বিকাশকারী এখনও উপলব্ধ থাকে তবে তার সাথে কোড অপসারণটি পর্যালোচনা করুন । এছাড়াও, কোড মন্তব্য পড়ুন

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

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

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

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


-1

আমি মারকাস লসবার্গের প্রথম বিষয়টির সাথে দৃ strongly়ভাবে একমত: কোডটি অবশ্যই সরঞ্জামের সাহায্যে বিশ্লেষণ করা উচিত। এপি মস্তিস্কের এই ধরণের কাজের সাথে বিশ্বাস করা হবে না !!

বেশিরভাগ স্ট্যান্ডার্ড প্রোগ্রামিং ল্যাঙ্গুয়েজগুলি আইডিই এবং প্রতিটি আইডিইতে ব্যবহার করা যেতে পারে যা বলা যায় যে "সমস্ত ব্যবহারের জন্য সন্ধান করুন" বৈশিষ্ট্য যা এই ধরণের পরিস্থিতির জন্য ঠিক সঠিক সরঞ্জাম exactly (উদাহরণস্বরূপ Ctrl + Shift + G Eclipse এ)

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


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

3
(এপি মস্তিষ্ক সরঞ্জামগুলিও লিখেছিল) (শি! আপনি গল্পটি নষ্ট করবেন!)

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

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

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

-1

দুটি সম্ভাবনা:

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

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

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