জাভাতে অবজ্ঞাত পদ্ধতি বা ক্লাস ব্যবহার করা কি ভুল?


153

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

আমি কিছু জিনিস জানতে চাই

  1. জাভাতে অবজ্ঞাত পদ্ধতি বা ক্লাস ব্যবহার করা কি ভুল?

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


7
আপনি নিখরচায় 1955 Volkswagen Beetleঅফার পেলেও ড্রাইভ চালিয়ে 'চালিয়ে' চালাবেন Corvette Stingray? (0:
KMån

75
@ কেমন আপনি কি ইউরোপীয় গাড়িটিকে আমেরিকান গাড়ির সাথে তুলনা করছেন ?;)
পোনজাও

2
@ পাঞ্জাও এবং 4অন্যান্যরা: গেচচা ! (0;
KMån

2
ভুল? আমরা কি এখানে মারাত্মক বা কেবল বায়বীয় বর্ণনার কথা বলছি?
ফাস্টএল

5
@ আলেকজান্ডার আপনার মন্তব্যের জন্য ভোট দেয় না, সুতরাং আপনার জন্যও +1;) যে কোনও ক্ষেত্রেই নতুন কোডটি পুরানো কোডটি 1000 এর চেয়ে ভাল is তুলনাটি আরও ভাল হবে 1955 Volkswagen Beetleএবং 1956 Volkswagen Beetleনতুন টায়ারের সাথে যা আপনি জানেন না কখন ভেঙে যাবে!
আলেক্স

উত্তর:


265

1. জাভাতে অবচয় পদ্ধতি বা ক্লাস ব্যবহার করা কি ভুল?

অবচিতের সংজ্ঞা থেকে :

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

পদ্ধতিটি অনির্দিষ্ট সময়ের জন্য পশ্চাদপটে সামঞ্জস্যের জন্য এপিআইতে রাখা হয় এবং ভবিষ্যতে মুক্তিগুলি মুছে ফেলা হতে পারে। এটি হ'ল না, এটি ভুল নয় , তবে এটি করার আরও ভাল উপায় রয়েছে যা এপিআই পরিবর্তনের বিরুদ্ধে আরও দৃ rob়।

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

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


মজাদার থামিয়ে দেওয়া জাভা API এ, নিচ হয় FontMetrics.getMaxDecent। অবমূল্যায়নের কারণ: বানান ত্রুটি।

অননুমোদিত। জেডিকে সংস্করণ 1.1.1 হিসাবে, getMaxDescent () দ্বারা প্রতিস্থাপিত হয়েছে।


5
জাভা এপিআই-তে পরবর্তী মজার অবমূল্যায়ন সেট করা হবে মাল্টিমিক্লিক ক্লিকশ্রিজহোল্ড (ইন থ্রেশহোল্ড) এবং অ্যাবস্ট্রাক্ট বাটনে (সুইং) মাল্টিমিক্লিক ক্লিকশ্রেজ ()। এই দুটি জন্য প্রস্তুত হন! ;)
জাভাটেকনিকাল

3
আমাদের HTTP রেফার দিয়ে এটি করা দরকার। এটা তোলে উন্মাদক আছে: en.wikipedia.org/wiki/HTTP_referer
kmiklas

1
@ ডেভ ম্যাকক্লিল্যান্ড, এটি 69 থেকে 70 করেছেন: ডি;)
ভিডিএক্স

28

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


1
আপনি কীভাবে নিশ্চিত হতে পারেন যে এটি পারফরম্যান্সে কোনও পরিবর্তন ছাড়াই? উদাহরণস্বরূপ একটি হ্যাশসেট থেকে একটি ট্রিসেটে বলে, উদাহরণস্বরূপ কোনও অভ্যন্তরীণ ডেটা কাঠামো পরিবর্তনের কারণে অঙ্কনটি হতে পারে
আইয়ুব

@ আইউব - আমার বোঝার জন্য, ওপি জিজ্ঞাসা করেছিল যে অবহিত কোডটি কল করার কোনও কার্যকারিতা সমস্যা রয়েছে কিনা, যা এটি দেয় নি যে এটি উত্পাদিত বাইট কোডটি পরিবর্তন করে না (1.5 এর আগে জাভাদোক ছিল, এখন টীকাটি ব্যবহৃত হচ্ছে, তবে পারফরম্যান্সে এখনও কোনও পরিবর্তন নেই)
অ্যাবিক

কোনও গ্রন্থাগারের এক সংস্করণ থেকে অন্য সংস্করণে যাওয়ার সময়, কোনও গ্যারান্টি নেই যে নতুন সংস্করণে কোনও পদ্ধতির বাইট কোড পূর্ববর্তী সংস্করণে একই পদ্ধতির বাইট কোডের অনুরূপ।
আইয়ুব

@ আইয়ুব - একটি গ্যারান্টি রয়েছে যে কেবল এটিকে অবমূল্যায়ন করা বাইট কোড পরিবর্তন করবে না, যা আমার মনে হয় ওপি বলতে বোঝায়। অবশ্যই কোড নিজেই পরিবর্তিত হয়, এজন্য আমরা কোডকে অবমূল্যায়ন করি।
অ্যাবিক্স

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

21

পরিভাষা

সরকারী সান গ্লোসারি থেকে:

অবচয় : একটি শ্রেণি, ইন্টারফেস, কনস্ট্রাক্টর, পদ্ধতি বা ক্ষেত্রকে বোঝায় যা আর সুপারিশ করা হয় না এবং ভবিষ্যতের সংস্করণে উপস্থিত থাকতে পারে।

কীভাবে এবং কখন অবহেলা করার গাইড থেকে:

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

@Deprecatedটীকা এক পা এগিয়ে গিয়ে বিপদ সতর্ক:

বর্ণিত একটি প্রোগ্রাম উপাদানটি @Deprecatedহ'ল প্রোগ্রামাররা ব্যবহার থেকে নিরুৎসাহিত হন, সাধারণত এটি বিপজ্জনক কারণ, বা আরও ভাল বিকল্প উপস্থিত থাকার কারণে।

তথ্যসূত্র


ভুল বা ঠিক?

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

আইটেম 7: এড়িয়ে চলুন finalizers : শুধুমাত্র পদ্ধতি গ্যারান্টি চূড়ান্ত দাবি আছে System.runFinalizersOnExitতার এবং এসব কর্মের যমজ Runtime.runFinalizersOnExit। এই পদ্ধতিগুলি মারাত্মক ত্রুটিযুক্ত এবং হ্রাস করা হয়েছে।

আইটেম: 66: ভাগ করা মিউটেবল ডেটাতে অ্যাক্সেসকে সিঙ্ক্রোনাইজ করুন : গ্রন্থাগারগুলি Thread.stopপদ্ধতিটি সরবরাহ করে তবে এই পদ্ধতিটি অনেক আগেই হ্রাস পেয়েছিল কারণ এটি অন্তর্নিহিতভাবে অনিরাপদ - এর ব্যবহারের ফলে ডেটা দুর্নীতি হতে পারে।

আইটেম 70: ডকুমেন্ট থ্রেড সুরক্ষা : System.runFinalizersOnExitপদ্ধতিটি থ্রেড-প্রতিকূল এবং হ্রাস করা হয়েছে।

আইটেম 73: থ্রেড গোষ্ঠীগুলি এড়িয়ে চলুন : তারা আপনাকে Threadএকসাথে কয়েকটি থ্রেডে নির্দিষ্ট আদিম প্রয়োগ করতে দেয় । এর মধ্যে বেশ কয়েকটি আদিমিকে অবমূল্যায়ন করা হয়েছে এবং বাকী অংশগুলি খুব কম ব্যবহৃত হয়। [...] থ্রেড গ্রুপগুলি অপ্রচলিত।

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

অন্যান্য পদ্ধতির সাথে আপনাকে পৃথকভাবে বিষয়গুলি বিবেচনা করতে হবে এবং কেন বুঝতে হবে সেগুলি হয়েছিল, তবে সাধারণভাবে বলতে গেলে, যখন হ্রাস করার সিদ্ধান্তটি ন্যায়সঙ্গত হয়, তখন সেগুলি ব্যবহার অব্যাহত রাখার চেয়ে ভুলের দিকে ঝুঁকতে থাকে।

সম্পর্কিত প্রশ্নগুলি


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

17

উপরের সমস্ত দুর্দান্ত প্রতিক্রিয়াগুলি বাদ দিয়ে আমি পেয়েছি হ্রাসপ্রাপ্ত এপিআই কলগুলি অপসারণ করার আরও একটি কারণ রয়েছে।

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

সুতরাং একটি শেখার / ক্রমবর্ধমান দৃষ্টিকোণ থেকে, এটি একটি সার্থক প্রচেষ্টা


11

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


1
অভিজ্ঞতা থেকে বিচার করা, "প্রত্যাশিত" এর অর্থ হ'ল "আপনার আর এটি ব্যবহার করা উচিত নয়, তবে এটি চিরকালের জন্য উপলব্ধ থাকবে।" কমপক্ষে জাভা স্ট্যান্ডার্ড এপিআই-এর জন্য আমি অবহিত হওয়ার পরে বাস্তবে সরানো কোন পদ্ধতি বা ক্লাস সম্পর্কে অবগত নই।
মাইকেল বর্গওয়ার্ট

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

@ মিশেল মরোজেক: বিবৃতিতে অসমত It certainly doesn't create a performance issue; এটি বর্ণনা করা খুব বিষয়গত।
KMån

1
@ কেএমানকে একটি অবহিত হিসাবে চিহ্নিত ফাংশনটি কোনওভাবেই এটি কম দক্ষ করে না তবে এটি চিহ্নিত করার আগে ছিল - এটি আগের মতোই চলবে
মাইকেল মরোজেক

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

8

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


8

আপনি শব্দটি শুনে থাকতে পারেন, "স্ব-হ্রাসমূলক হাস্যরস"। এটি হিউমার যা আপনার গুরুত্বকে হ্রাস করে। একটি অবচিত শ্রেণি বা পদ্ধতিটি এরকম। এটি আর গুরুত্বপূর্ণ নয়। এটি এতটা গুরুত্বহীন, বাস্তবে, এটি আর ব্যবহার করা উচিত নয়, কারণ এটি সম্ভবত ভবিষ্যতে অস্তিত্ব রুদ্ধ হবে।

এটি এড়াতে চেষ্টা করুন


4
  1. সাধারণত না, deprecatedযতক্ষণ না আপনি যখন ব্যবহার করছেন লাইব্রেরি থেকে methods পদ্ধতিগুলি অদৃশ্য হয়ে যায় তবে যতক্ষণ না আপনার কোনও সমস্যা এড়াতে ভাল আক্রমণের পরিকল্পনা রয়েছে ততক্ষণ পদ্ধতি ব্যবহার করা একেবারেই ভুল নয় । জাভা এপিআই দিয়ে নিজেই কখনও এটি ঘটে না তবে কেবল অন্য কিছু দিয়ে এর অর্থ এটি মুছে ফেলা হচ্ছে it's আপনি যদি বিশেষত আপগ্রেড না করার পরিকল্পনা করেন ( যদিও আপনার সম্ভবত দীর্ঘমেয়াদে হওয়া উচিত ) আপনার সফ্টওয়্যারটির সহায়ক লাইব্রেরিগুলি তাহলে deprecatedপদ্ধতিগুলি ব্যবহারে কোনও সমস্যা নেই ।
  2. না।

3

হ্যাঁ, এটা ভুল।

জাফলের ভবিষ্যতের সংস্করণগুলিতে অবহিত পদ্ধতি বা ক্লাসগুলি সরানো হবে এবং এটি ব্যবহার করা উচিত নয়। প্রতিটি ক্ষেত্রে, একটি বিকল্প উপলব্ধ থাকা উচিত। যে ব্যবহার।

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

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

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


2

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


Removed? সংজ্ঞা দেখুন stackoverflow.com/questions/2941900/...
KMån

1
@ কেম্যান - আপনি যে লিঙ্কটি পোস্ট করেছেন তাতে লিখিত রয়েছে - "পদ্ধতিটি অনির্দিষ্ট সময়ের জন্য পশ্চাদপটে সামঞ্জস্যের জন্য এপিআইতে রাখা হয় এবং ভবিষ্যতে মুক্তিগুলি অপসারণ করা যেতে পারে।" আমি একই লিখেছি - কিছু অবহেলিত পদ্ধতি সম্ভবত অদূর বা সুদূর ভবিষ্যতে মুছে ফেলা হয়েছে।
পেটার মিনচেভ

2

জাভাতে অবজ্ঞাত পদ্ধতি বা ক্লাস ব্যবহার করা কি ভুল? "

এর মতো ভুল নয় তবে এটি আপনাকে কিছুটা সমস্যা বাঁচাতে পারে। এখানে একটি উদাহরণ রয়েছে যেখানে এটি হ্রাস করা পদ্ধতি ব্যবহার করার জন্য দৃ strongly়ভাবে নিরুৎসাহিত করা হয়েছে:

http://java.sun.com/j2se/1.4.2/docs/guide/misc/threadPrimitiveDeprecation.html

থ্রেড.স্টপ কেন হ্রাস করা হয়?

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


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

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


2

জাভাতে অবজ্ঞাত পদ্ধতি বা ক্লাস ব্যবহার করা কি ভুল? এটি "ভুল" নয়, এখনও কাজ করছে তবে যতটা সম্ভব এড়িয়ে চলুন।

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

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

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

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


2

জাভাতে এটি @ বিশিষ্ট, সি # এ এটি [অপ্রচলিত]।

আমি মনে করি আমি সি # এর পরিভাষা পছন্দ করি। এর অর্থ এটি অচল। আপনি চাইলে এটি এখনও ব্যবহার করতে পারেন তবে সম্ভবত এর থেকে আরও ভাল উপায় আছে।

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

জাভা এর @ অধিগ্রহণকারীদের ক্ষেত্রেও একই - আপনি এখনও এই পদ্ধতিটি ব্যবহার করতে পারেন তবে নিজের ঝুঁকিতে - ভবিষ্যতে এর আরও ভাল বিকল্প থাকতে পারে এবং এমনকি এটি সমর্থিতও না হতে পারে।

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

সম্পাদনা: এবং মাইকেল দ্বারা চিহ্নিত হিসাবে, যদি হ্রাসের কারণ যদি কার্যকারিতাটির ত্রুটির কারণে হয় (বা কারণ কার্যকারিতা এমনকি উপস্থিত নাও হওয়া উচিত) তবে স্পষ্টতই, কেউ অবচয় কোড ব্যবহার করা উচিত নয়।


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

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

1

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

তবে। এখন, যখন কোনও কিছু [অচল] ঘোষণা করা হয়েছে, তা অবিলম্বে পড়ুন এবং আপনি এটি আগে কখনও ব্যবহার না করলেও আপনার কাছে প্রায় 50% সম্ভাবনা রয়েছে যে এটি প্রতিস্থাপনের চেয়ে আরও দক্ষ এবং / অথবা ব্যবহার করা সহজ :-))

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


1

আমি অনুভব করি যে অবচিত পদ্ধতিটির অর্থ; একটি বিকল্প = ive পদ্ধতি উপলব্ধ যা বিদ্যমান পদ্ধতির চেয়ে সব দিক থেকে ভাল। বিদ্যমান পুরানো পদ্ধতির চেয়ে ভাল পদ্ধতি ব্যবহার করা ভাল। পিছিয়ে সামঞ্জস্যের জন্য, পুরানো পদ্ধতিগুলি অবচয় হিসাবে ছেড়ে দেওয়া হয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.