তারা যদি আপনাকে বিশ্বব্যাপী পরিবর্তনশীল ব্যবহার করতে চায় তবে আপনার বসকে কী বলবেন


13

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

আপনি কীভাবে এটি মোকাবেলা করবেন, কারণ আমি কেবল 4 মাস ধরে পেশাদারভাবে প্রোগ্রামিং করছি!


4
আপনার বস কি কোনও প্রযুক্তিগত ব্যক্তি বা নন-টেকনিক্যাল ব্যক্তি? তিনি যদি প্রযুক্তিগত হন তবে তিনি কি রবার্ট সি মার্টিনের "ক্লিন কোড" পড়েছেন?
জর্জ স্টোকার

5
সুতরাং, আপনার বস আপনাকে কোডে নিয়োগ করেছেন, এবং এখন আপনাকে কোডিং কীভাবে বলছেন?
জেরেমি হিলার

8
আপনি নীচে একটি মন্তব্যে বলেছিলেন যে "প্রচুর ধ্রুবক বাদে বস্তুর কোনও রাজ্য থাকে না"। সেক্ষেত্রে একটি স্ট্যাটিক ক্লাস আমার কাছে ভাল সমাধানের মতো মনে হয়।
জাস্টিন

5
"হ্যাঁ বস" মনে

2
"আমাকে এমন একটি একক বস্তু তৈরি করতে বলেছিল যা যে কোনও জায়গা থেকে অ্যাক্সেস করা যায় therefore সুতরাং এটি একটি স্ট্যাটিক অবজেক্ট হিসাবে তৈরি করতে হয়েছিল" এটি বৈধ যুক্তি নয়। আপনি এমন কথা বলছেন যেন একটি সম্পূর্ণ অ্যাপ্লিকেশন থেকে অ্যাক্সেসযোগ্য কোনও একক বস্তু থাকাতে আপনার একক সিঙ্গেলটন রয়েছে - আপনি কেন এটি কেবল একত্রিতকরণের রুটে তৈরি করেন না এবং তারপরে নির্ভরশীল শ্রেণীর কাছে এটি উল্লেখ করেন না?

উত্তর:


33

যদি একটি অবজেক্ট যথেষ্ট হয় তবে প্রতিবার একটি বস্তু তৈরি করা অপচয় হ'ল এবং এখানে আপনার বস সঠিক হতে পারে।

সমস্যাটি সেই বস্তুর যথাযথ অ্যাক্সেস access যথাযথ দৃশ্যমানতার সাথে একটি কারখানার মতো পদ্ধতি যা সর্বদা ফিরে আসে যে স্থির বস্তু হ'ল প্রথম সমাধান যা মনে মনে আসে। অন্যদের অবশ্যই বিদ্যমান।


3
+1: আমি কোনও "GoF so said" উত্তর যতই অপছন্দ করি না কেন, ডান ঠিক।
জাভিয়ের

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

9
আমার সন্দেহ হয়েছিল এটি হতে পারে ("বস্তুর কোনও রাজ্য নেই ... প্রচুর ধ্রুবক")। আপনার বস ঠিক আছে। যে মূল্যবোধগুলি কখনই পরিবর্তন হয় না তার জন্য আবর্জনা সংগ্রহকারীকে কৃত্রিম চাপ দেওয়ার কোনও বুদ্ধি নেই।
বেরিন লরিটস্ক

3
@ ড্যারেন-ইয়ং: সাইড নোটে, কোনও রাষ্ট্র না থাকা আকর্ষণীয় এবং কিছু শক্তিশালী পদ্ধতির অনুমতি দেয়; আপনি এখনও না থাকলে তথাকথিত 'ফাংশনাল প্রোগ্রামিং' একবার দেখুন।
9000

8

আমি আপনার নির্দিষ্ট ক্ষেত্রে মন্তব্য করতে পারি না, তবে বৈশ্বিক ভেরিয়েবলগুলি ব্যবহার করা কখনও কখনও একটি ভাল সমাধান is জাভার সিস্টেম ক্লাস স্থির, গ্লোবাল ভেরিয়েবলে পূর্ণ of

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

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


1
দেখুন, java.lang.Systemঠিক তিনটি গ্লোবাল ভেরিয়েবল রয়েছে এবং তাদের প্রত্যেকের জন্য এটি সঠিকভাবে সেট করার একটি পদ্ধতি রয়েছে। তবে Systemস্থিতিশীল পদ্ধতিতে পূর্ণ যা বিশ্বব্যাপী অবজেক্টগুলি ফিরিয়ে দেয় এবং এর সাথে ঠিক কোনও ভুল নেই, তর্ক করতে পারে না।
9000

2
হ্যাঁ; আমি গ্লোবাল ভেরিয়েবলগুলি স্থির পদ্ধতির মতো বেশিরভাগ একই হিসাবে বিবেচনা করি যা বিশ্বব্যাপী অবজেক্টগুলি ফিরিয়ে দেয়।
জুনাস পুলক্কা

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

@ কনরাল্ড রুডল্ফ: শেষ পর্যন্ত এটি একটি ডিজাইনের সিদ্ধান্ত। প্রতিটি সিদ্ধান্তের পক্ষে ভাল-মন্দ হয়। উদাহরণস্বরূপ, বিশ্বব্যাপী রাষ্ট্রকে Systemসরল করে রাখা, বলুন, ব্যবহারের 99%% ব্যয় করে বাকি 0.1% তে সমস্যা সৃষ্টি করে। অতিরিক্ত জটিলতার জন্য 0.1% মূল্যবান কিনা তার কোনও "সঠিক" উত্তর নেই।
জুনাস পুলাক্কা

5

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

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

আমি যদি আপনার জুতোতে থাকি, তবে আমি এগিয়ে যাব এবং বস যা বলবে তাই করবো - সব মিলিয়ে লাইনে তার পাছা। তারপরে আমি সময়ের সাথে সাথে এই পছন্দটির প্রভাবগুলি দেখতে এবং দেখতে পেয়েছি। এটি একটি কার্যকর শেখার সরঞ্জাম।


এটি ইন্টার্নশিপ আপনার শেখার কথা। অন্ধভাবে আপনার বস যা বলেন তা করা শিখছে না।
ডেভিড থর্নলি

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

2

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

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


1

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

উইকিপিডিয়াস ব্যাখ্যার লিঙ্কটি এখানে


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