আমাদের অ্যাপ্লিকেশনগুলিতে মানকগুলি হার্ডকোড করা কি কখনও ভাল ধারণা? অথবা এই ধরণের মানগুলি পরিবর্তন করার প্রয়োজন হলে ডায়নামিকভাবে কল করা কি সর্বদা সঠিক জিনিস?
pi
পরিবর্তন হতে পারে ...
আমাদের অ্যাপ্লিকেশনগুলিতে মানকগুলি হার্ডকোড করা কি কখনও ভাল ধারণা? অথবা এই ধরণের মানগুলি পরিবর্তন করার প্রয়োজন হলে ডায়নামিকভাবে কল করা কি সর্বদা সঠিক জিনিস?
pi
পরিবর্তন হতে পারে ...
উত্তর:
হ্যাঁ, তবে এটি স্পষ্ট করে দিন ।
না:
না:
diameter = 2 * radius
বা diameter = RADIUS_TO_DIAMETER_FACTOR * radius
? সত্যই কোণার কেস রয়েছে যেখানে একটি ম্যাজিক সংখ্যা আরও ভাল সমাধান হতে পারে।
diameter = radius << 1
? আমি মনে করি এটিও হতে পারে diameter = radius << RADIUS_TO_DIAMETER_BITS_TO_SHIFT
।
diameter = radius.toDiameter()
এখন পর্যন্ত এই প্রশ্নোত্তর সম্পর্কে আমি কী অদ্ভুত মনে করি তা হ'ল কেউই আসলে "হার্ড-কোড" বা আরও গুরুত্বপূর্ণভাবে বিকল্পগুলির বিকল্পটি পরিষ্কারভাবে ব্যাখ্যা করার চেষ্টা করেনি।
TL; ড: হ্যাঁ, এটা হল মাঝে মাঝে হার্ড কোড মান একটি ভাল ধারণা, কিন্তু হিসাবে কোন সহজ নিয়ম যখন ; এটি পুরোপুরি প্রসঙ্গে নির্ভর করে।
প্রশ্নটি এটিকে মানগুলিতে সংকুচিত করে , যা আমি যাদু সংখ্যাকে বোঝাতে চাইছি , তবে তারা ভাল ধারণা কিনা সেটির উত্তর তারা আসলে কী ব্যবহার করছে তার সাথে সম্পর্কিত!
"হার্ড-কোডেড" মানগুলির বেশ কয়েকটি উদাহরণ হ'ল:
কনফিগারেশন মান
যখনই আমি বিবৃতি দেখতে পাই আমি ক্রিঙ্ক করি command.Timeout = 600
। 600 কেন? কে সিদ্ধান্ত নিল? এটির আগে সময় নির্ধারণ করা হয়েছিল এবং কেউ অন্তর্নিহিত পারফরম্যান্স সমস্যার সমাধানের পরিবর্তে হ্যাক হিসাবে সময়সীমা বাড়িয়েছিল? অথবা এটি আসলে প্রক্রিয়াজাতকরণের জন্য কিছু পরিচিত এবং নথিভুক্ত প্রত্যাশা?
এগুলি ম্যাজিক সংখ্যা বা ধ্রুবক হওয়া উচিত নয় , এগুলি কোনও অর্থবহুল নাম সহ কোনও কনফিগারেশন ফাইল বা ডাটাবেসে বহিরাগত করা উচিত, কারণ তাদের অনুকূল মানটি অ্যাপ্লিকেশনটি যে পরিবেশের মধ্যে চলছে সেগুলি দ্বারা বৃহত বা সম্পূর্ণরূপে নির্ধারিত হয়।
গাণিতিক সূত্র
সূত্রগুলি সাধারণত বেশ স্থির থাকে, যেমন অভ্যন্তরের ধ্রুবক মানগুলির প্রকৃতিটি বিশেষভাবে গুরুত্বপূর্ণ নয়। একটি পিরামিডের আয়তন (1/3) বি * এইচ। 1 বা 3 কোথা থেকে এসেছে তা কি আমাদের যত্নশীল? আসলে তা না. পূর্ববর্তী একজন মন্তব্যকারী যথাযথভাবে উল্লেখ করেছেন যে diameter = radius * 2
এটি সম্ভবত এর চেয়ে ভাল diameter = radius * RADIUS_TO_DIAMETER_CONVERSION_FACTOR
- তবে এটি একটি মিথ্যা দ্বৈতত্ত্ব।
এই ধরণের দৃশ্যের জন্য আপনার কী করা উচিত তা একটি ফাংশন তৈরি করছে । আপনি কীভাবে সূত্রটি নিয়ে এসেছিলেন তা আমার জানতে হবে না তবে এটি কীসের জন্য তা এখনও আমার জানা দরকার । যদি উপরে লেখা কোনও বাজে কথা পরিবর্তে আমি লিখি volume = GetVolumeOfPyramid(base, height)
তবে হঠাৎ করেই সবকিছু অনেক বেশি পরিষ্কার হয়ে যায় এবং ফাংশনের অভ্যন্তরে যাদুর সংখ্যা থাকা পুরোপুরি ঠিক আছে ( return base * height / 3
কারণ) এটি স্পষ্টত যে তারা সূত্রের অংশ মাত্র part
এখানে মূল কীটি অবশ্যই ছোট এবং সাধারণ ফাংশনগুলি রয়েছে। এটি 10 টি আর্গুমেন্ট এবং 30 লাইনের গণনার সাথে ফাংশনগুলির জন্য কাজ করে না। সেক্ষেত্রে ফাংশন রচনা বা ধ্রুবক ব্যবহার করুন।
ডোমেন / ব্যবসায়ের নিয়ম
এইটি সর্বদা ধূসর অঞ্চল কারণ এটি ঠিক মানটি নির্ভর করে। বেশিরভাগ সময়, এই নির্দিষ্ট ম্যাজিক নম্বরগুলি ধ্রুবকগুলিতে পরিণত হওয়ার প্রার্থী, কারণ এটি প্রোগ্রামের যুক্তিটিকে জটিল না করে প্রোগ্রামটিকে বুঝতে সহজ করে তোলে। if Age < 19
বনাম পরীক্ষা বিবেচনা করুন if Age < LegalDrinkingAge
; আপনি সম্ভবত ধ্রুবক ছাড়া কি ঘটছে তা বুঝতে পারেন , তবে বর্ণনামূলক শিরোনামের সাথে এটি আরও সহজ it's
এই হতে পারে এছাড়াও ফাংশন বিমূর্ততা জন্য প্রার্থীদের হয়ে, উদাহরণস্বরূপ function isLegalDrinkingAge(age) { return age >= 19 }
। কেবলমাত্র এটি হ'ল প্রায়শই আপনার ব্যবসায়িক যুক্তি তার চেয়ে অনেক বেশি সংশ্লেষিত হয় এবং প্রতিটি 20-30 পরামিতি সহ কয়েক ডজন ফাংশন লিখতে শুরু করার অর্থটি বোধগম্য হয় না। যদি অবজেক্টস এবং / অথবা ফাংশনগুলির উপর ভিত্তি করে যদি কোনও স্পষ্ট বিমূর্ততা না থাকে তবে ধ্রুবকদের অবলম্বন করা ঠিক।
সতর্কীকরণ, যদি আপনি ট্যাক্স বিভাগের জন্য কাজ করছি, এটা সত্যিই রূপান্তরিত হবে সত্যিই দুর্বহ ও সততার লিখতে অর্থহীন AttachForm(FORM_CODE_FOR_SINGLE_TAXPAYER_FILING_JOINTLY_FOR_DEPRECIATION_ON_ARMPIT_HAIR)
। আপনি এটি করতে যাচ্ছেন না, আপনি যাচ্ছেন AttachForm("B-46")
কারণ যে একক বিকাশকর্তা যিনি কখনও কাজ করেছেন বা যে কোনও সময় কাজ করবে সেখানে জানতে হবে যে "বি--46" হল একক করদাতাকে দায়ের করা ব্লাহ ব্লাহ ব্লাহর ফর্ম কোড - ফর্ম কোডগুলি ডোমেনেরই একটি অংশ, এগুলি কখনই পরিবর্তন হয় না, তাই এগুলি আসলে ম্যাজিক সংখ্যা নয়।
সুতরাং আপনার ব্যবসায়ের যুক্তিতে অবিচ্ছিন্নভাবে ব্যবহার করতে হবে; মূলত আপনাকে বুঝতে হবে যে "ম্যাজিক নম্বর" আসলে একটি যাদু নম্বর বা এটি ডোমেনের একটি সুপরিচিত দিক কিনা aspect যদি এটি ডোমেন হয় তবে যদি এটির পরিবর্তনের সত্যিকারের ভাল সম্ভাবনা না থাকে তবে আপনি এটিকে সফট কোড দিবেন না।
ত্রুটি কোড এবং স্থিতি পতাকা
এগুলি কখনও হার্ড-কোডে ঠিক হয় না , কারণ যে কোনও দরিদ্র জারজ যাঁর কাছে আঘাত পেয়েছিল তারা Previous action failed due to error code 46
আপনাকে বলতে পারে। যদি আপনার ভাষা এটি সমর্থন করে তবে আপনার একটি গণনার ধরন ব্যবহার করা উচিত। অন্যথায়, আপনার কাছে সাধারণত একটি নির্দিষ্ট ত্রুটির ধরণের বৈধ মান উল্লেখ করে ধ্রুবক দ্বারা পূর্ণ একটি সম্পূর্ণ ফাইল / মডিউল থাকে।
আমাকে কখনও return 42
কোনও ত্রুটি হ্যান্ডলারটি দেখতে দেবেন না , ক্যাপিচ? কোন অজুহাত নেই.
আমি সম্ভবত বেশ কয়েকটি পরিস্থিতি ছেড়ে দিয়েছি তবে আমি মনে করি এটি বেশিরভাগ ক্ষেত্রেই অন্তর্ভুক্ত।
সুতরাং, হ্যাঁ, এটি কখনও কখনও হার্ড কোড স্টাফের কাছে গ্রহণযোগ্য অনুশীলন। এটি সম্পর্কে অলসতা করবেন না; এটি সাধারণ পুরানো slিলে কোডের চেয়ে সচেতন সিদ্ধান্ত হওয়া উচিত।
কোনও সংখ্যাকে শনাক্তকারী নির্ধারণের বিভিন্ন কারণ রয়েছে।
এটি আমাদের হার্ড-কোডিং আক্ষরিক জন্য মাপদণ্ড দেয়। এগুলি অপরিবর্তনীয়, টাইপ করা শক্ত নয়, কেবলমাত্র এক জায়গায় বা প্রসঙ্গে ঘটেছে এবং স্বীকৃত অর্থ সহ। 0 টি ARRAY_BEGINNING হিসাবে উদাহরণস্বরূপ বা 1 টি ARRAY_INCREMENT হিসাবে সংজ্ঞায়িত করার কোনও অর্থ নেই।
অন্যান্য উত্তরের সংযোজন হিসাবে। সম্ভব হলে স্ট্রিংয়ের জন্য ধ্রুবক ব্যবহার করুন। অবশ্যই, আপনি চান না
const string server_var="server_var";
তবে তোমার উচিত ছিল
const string MySelectQuery="select * from mytable;";
(ধরে নিলাম আপনার কাছে আসলে একটি কোয়েরি রয়েছে যেখানে আপনি সর্বদা নির্দিষ্ট টেবিল থেকে সমস্ত ফলাফল পেতে চান)
এটির বাইরে 0 (সাধারণত) ব্যতীত অন্য কোনও সংখ্যার জন্য ধ্রুবক ব্যবহার করুন। আপনার যদি 255 এর অনুমতি বিটমাস্কের প্রয়োজন হয় তবে ব্যবহার করবেন না
const int 8th_bit=255; //or some other obscure naming scheme that equates to 255.
পরিবর্তে ব্যবহার
const int AllowGlobalRead=255;
অবশ্যই, ধ্রুবকগুলির সাথে, কখন গণক ব্যবহার করতে হবে তা জেনে নিন। উপরের কেসটি সম্ভবত একটির মধ্যে খুব ভাল ফিট হবে।
typedef enum {init_state=0, parse_state=1, evaluation_state=2, ... }
এটি নির্ভর করে আপনি হার্ডকডিং কী বিবেচনা করছেন। যদি আপনি কোনও এবং সমস্ত হার্ডকোডযুক্ত জিনিস এড়াতে চেষ্টা করেন তবে আপনি সফটকোডিং অঞ্চলটিতে পৌঁছেছেন এবং এমন একটি সিস্টেম তৈরি করেন যা কেবল স্রষ্টা পরিচালনা করতে পারেন (এবং এটি চূড়ান্ত হার্ডকোড)
প্রচুর জিনিসগুলিকে যেকোন যুক্তিসঙ্গত কাঠামোর মধ্যে হার্ডকড করা হয় এবং তারা কাজ করে। অর্থাত্ আমার কোনও সি # অ্যাপ্লিকেশন (স্ট্যাটিক শূন্যস্থানীয়) প্রবেশের পয়েন্টটি পরিবর্তন করতে সক্ষম না হওয়ার কোনও প্রযুক্তিগত কারণ নেই, তবে হার্ডকোডিং যা কোনও ব্যবহারকারীর জন্য কোনও সমস্যা তৈরি করে না (মাঝে মাঝে এসও প্রশ্ন বাদে )
আমি যে থাম্বটি ব্যবহার করি তার নিয়মটি হ'ল পুরো সিস্টেমের অবস্থাকে প্রভাবিত না করে যা কিছু পরিবর্তন করতে পারে এবং পরিবর্তন করতে পারে তা বিভ্রান্তিকর হওয়া উচিত।
সুতরাং, আইএমএইচও, এটি হার্ডকোড জিনিসগুলি কখনও বদলাবে না (পিআই, মহাকর্ষীয় ধ্রুবক, একটি গাণিতিক সূত্রে একটি ধ্রুবক - একটি গোলকের আয়তন ভাবেন) না ly
এছাড়াও এমন কোনও বিষয় বা প্রক্রিয়াগুলির হার্ডকোড নয় যা আপনার সিস্টেমে কোনও প্রভাব ফেলবে যা কোনও পরিস্থিতিতে প্রোগ্রামিংয়ের প্রয়োজন হবে, অর্থাত্ এটি কোনও ব্যবহারকারীর ক্ষেত্রে কোনও রক্ষণাবেক্ষণ বিকাশকারীকে প্রয়োজন হয় এমন কোনও ফর্মের সাথে ব্যবহারকারীকে গতিময় ক্ষেত্রগুলি যুক্ত করার অনুমতি দেবে এটি অপ্রয়োজনীয় ভিতরে যান এবং কিছু স্ক্রিপ্ট লিখুন যা সেই জিনিসটিকে কাজ করতে সক্ষম করবে। কিছু কনফিগারেশন সরঞ্জাম তৈরি করতে এটি বোকা (এবং আমি এটি এন্টারপ্রাইজ পরিবেশে কয়েকবার দেখেছি), তাই কোনও কিছুই হার্ডকোড করা হয়নি, তবে কেবল তথ্য বিভাগের বিকাশকারীরা এটি ব্যবহার করতে পারে, এবং এটির চেয়ে এটি ব্যবহার করা সামান্য সহজ ভিজ্যুয়াল স্টুডিওতে এটি করতে।
সুতরাং, নীচের লাইনটি, কোনও জিনিসকে হার্ডকোড করা উচিত কিনা তা দুটি ভেরিয়েবলের কাজ:
আমাদের অ্যাপ্লিকেশনগুলিতে মানকগুলি হার্ডকোড করা কি কখনও ভাল ধারণা?
আমি হার্ডকোডগুলি কেবলমাত্র মানগুলি নির্দিষ্টকরণে নির্দিষ্ট করে (স্পেসিফিকেশনের চূড়ান্ত প্রকাশের ক্ষেত্রে) উদাহরণস্বরূপ, যেমন HTTP ঠিক আছে প্রতিক্রিয়া সর্বদা 200
(এটি আরএফসিতে পরিবর্তিত না হলে) থাকবে, সুতরাং আপনি দেখতে পাবেন (আমার কয়েকটি কোডে) ) ধ্রুবকগুলির মতো:
public static final int HTTP_OK = 200;
অন্যথায়, আমি সম্পত্তি ফাইলগুলিতে ধ্রুবক সঞ্চয় করি।
যে কারণে আমি নির্দিষ্টকরণ নির্দিষ্ট করেছি, তা হ'ল স্পেসিফিকেশনগুলিতে স্থির পরিবর্তনগুলির পরিবর্তনের জন্য পরিবর্তন পরিচালনার প্রয়োজন হয়, এতে স্টেকহোল্ডাররা পরিবর্তনটি পর্যালোচনা করবে এবং অনুমোদন / অস্বীকার করবে। এটি কখনই রাতারাতি ঘটে না এবং অনুমোদনের জন্য কয়েক মাস / বছর সময় নেয়। ভুলে যাবেন না যে অনেক বিকাশকারী নির্দিষ্টকরণ (যেমন HTTP) ব্যবহার করে তাই এটির পরিবর্তনের অর্থ লক্ষ লক্ষ সিস্টেম ভাঙা।
আমি লক্ষ্য করেছি যে যে কোনও সময় আপনি আপনার কোড থেকে ডেটা উত্তোলন করতে পারবেন, যা অবশিষ্ট রয়েছে তা উন্নতি করে। আপনি নতুন সংশোধনকারীদের লক্ষ্য করা এবং আপনার কোডের পুরো বিভাগগুলি উন্নত করতে শুরু করেন।
ধ্রুবকগুলি বের করার পক্ষে কাজ করা কেবল একটি ভাল ধারণা, এটিকে কিছু বোকা নিয়ম হিসাবে বিবেচনা করবেন না, এটিকে আরও ভাল কোড করার সুযোগ হিসাবে ভাবেন।
সবচেয়ে বড় সুবিধা হ'ল যেভাবে আপনি একই ধরণের ধ্রুবকগুলি কোডের গোষ্ঠীতে একমাত্র পার্থক্য হিসাবে দেখতে পাচ্ছেন - সেগুলিকে অ্যারেতে বিমূর্ত করা আমাকে কিছু ফাইলের আকারের 90% হ্রাস করতে এবং এর মধ্যে বেশ কয়েকটি অনুলিপি এবং পেস্ট বাগগুলি ঠিক করতে সহায়তা করেছে ।
ডেটা উত্তোলন না করার জন্য আমি এখনও একটি একক সুবিধা দেখতে পেয়েছি।
দুটি ল্যাট / লম্বা জোড়ার মধ্যবর্তী দূরত্বটি সঠিকভাবে গণনা করতে আমি সম্প্রতি একটি মাইএসকিউএল ফাংশনটি কোড করেছি। আপনি কেবল পাইথাগরাস করতে পারবেন না; দ্রাঘিমাংশের দিকে অক্ষাংশ বাড়ার সাথে সাথে দ্রাঘিমাংশের রেখাগুলি একত্রে আরও কাছাকাছি চলে আসে, তাই এর সাথে যুক্ত রয়েছে কিছু লোমশ লোমযুক্ত ট্রি। পয়েন্টটি হ'ল, আমি মাইলগুলিতে পৃথিবীর ব্যাসার্ধের প্রতিনিধিত্ব করে এমন মানটি হার্ড-কোড করব কিনা তা সম্পর্কে আমি বেশ ছিঁড়ে গিয়েছিলাম।
আমি এটি শেষ করেছিলাম, যদিও সত্য, ল্যাট / ল্যাংগ লাইনগুলি একসাথে আরও বেশি কাছাকাছি রয়েছে, বলুন, চাঁদ। এবং আমার ফাংশন বৃহস্পতির পয়েন্টগুলির মধ্যে মারাত্মক দূরত্বে দূরত্বে হবে port আমি যে ওয়েবসাইটটি তৈরি করছি তার অদ্ভুততা অনুভব করেছি একটি বহির্মুখী অবস্থান প্রবেশ করানো বেশ পাতলা।
ভাল এটি নির্ভর করে যদি আপনার ভাষা সংকলিত হয়। যদি এটি সংকলিত না হয় তবে এটি কোনও বড় বিষয় নয়, আপনি কেবল উত্স কোডটি সম্পাদনা করুন, এমনকি এটি কোনও নন প্রোগ্রামারের জন্য কিছুটা সূক্ষ্ম হবে।
আপনি যদি একটি সংকলিত ভাষা নিয়ে প্রোগ্রামিং করছেন, এটি স্পষ্টভাবে একটি ভাল ধারণা নয়, কারণ যদি ভেরিয়েবলগুলি পরিবর্তন হয়, আপনাকে পুনরায় সংকলন করতে হবে, যদি আপনি এই পরিবর্তনশীলটি সামঞ্জস্য করতে চান তবে এটি সময়ের ব্যয়।
গতিশীলভাবে তার পরিবর্তনশীল পরিবর্তন করতে আপনাকে কিছু স্লাইডার বা ইন্টারফেস তৈরি করার দরকার নেই, তবে আপনি যা করতে পারেন তা একটি পাঠ্য ফাইল।
উদাহরণস্বরূপ আমার ওগ্রে প্রকল্পের সাথে আমি একটি কনফিগার ফাইলে লিখেছি এমন একটি ভেরিয়েবল লোড করতে আমি সর্বদা কনফিগার ফাইল ব্যবহার করি।
দুটি অনুষ্ঠান যেখানে ধ্রুবক রয়েছে (আমার মতে কমপক্ষে) ঠিক আছে:
ধ্রুবকগুলি যা অন্য কোনও কিছুর সাথে সম্পর্কিত নয়; আপনি যখনই অন্য কোনও পরিবর্তন না করেই এই ধ্রুবকগুলি পরিবর্তন করতে পারেন। উদাহরণ: গ্রিড কলামের ডিফল্ট প্রস্থ।
একেবারে অপরিবর্তনীয়, নির্ভুল, সুস্পষ্ট ধ্রুবক, যেমন "প্রতি সপ্তাহে দিনের সংখ্যা" " একটি ধ্রুবক সঙ্গে days = weeks * 7
প্রতিস্থাপন খুব কমই মান প্রদান করে।7
DAYS_PER_WEEK
আমি জোনাথনের সাথে সম্পূর্ণরূপে একমত নই তবে সমস্ত বিধি হিসাবে ব্যতিক্রম রয়েছে ...
"বর্ণনায় ম্যাজিক নম্বর: কোডে ম্যাজিক নম্বর"
মূলত উল্লেখ করে যে যে কোনও যাদু নম্বর তাদের জন্য বর্ণনামূলক প্রসঙ্গটি পাওয়ার জন্য যুক্তিসঙ্গত প্রয়াসের পরেও অনুপস্থিতিতে থেকে যায় সেগুলি কোডের মতোই প্রতিফলিত হওয়া উচিত। যদি ম্যাজিক নম্বরগুলি কোডে থেকে যায় তবে এগুলি আলাদা করার এবং তাদের স্পষ্টতই তাদের উত্সের সাথে যুক্ত করার জন্য সর্বাত্মক প্রচেষ্টা করা উচিত।
আমি কয়েকটি ইন্টারফেসিং চুক্তি সম্পাদন করেছি যেখানে ডাটাবেস থেকে মানচিত্রযুক্ত মান সহ বার্তাগুলি স্থাপন করা প্রয়োজন। বেশিরভাগ ক্ষেত্রে ম্যাপিংটি মোটামুটি সোজা এগিয়ে থাকে এবং জোনাথনের সাধারণ গাইড লাইনগুলিতে ফিট হয়ে যায় তবে লক্ষ্য বার্তার কাঠামোটি কেবল সাদামাটা ছিল এমন ক্ষেত্রে আমি মুখোমুখি হয়েছি। কাঠামোটিতে যে মানগুলি পাস করতে হয়েছিল তার 80% এরও বেশি ছিল দূরবর্তী সিস্টেমের স্পেসিফিকেশন দ্বারা প্রয়োগ করা ধ্রুবক। এটি এই বার্তার কাঠামোটি অত্যন্ত গুরুত্বপূর্ণ যে এই ধরণের ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে দাঁড়িয়ে থাকতে হবে। বেশিরভাগ ক্ষেত্রে তারা কোনও অর্থ বা কারণ সরবরাহ করেনি, কেবল "এম এখানে রাখুন" বা "এখানে 4.10.53.10100.889450.4452" রেখেছেন said আমি তাদের সবার পাশে কোনও মন্তব্য করার চেষ্টা করি নি এটি ফলাফল কোডটি অপঠনযোগ্য রেন্ডার করে।
এটি বলেছিল, যখন আপনি এটি সম্পর্কে চিন্তা করেন ... এটি স্পষ্ট করে তোলা সম্পর্কে অনেক কিছুই ...
যদি আপনি পৃথিবীর মহাকর্ষীয় ধ্রুবকের মান হার্ডকোডিং করে থাকেন তবে নুনের যত্ন নেই। আপনি যদি নিজের প্রক্সি সার্ভারের আইপি ঠিকানাটি হার্ডকোড করেন তবে আপনি সমস্যার জন্য রয়েছেন।
বেশিরভাগভাবে না, তবে আমি মনে করি এটি লক্ষ্যণীয় যে আপনি হার্ড কোডিং মানটির নকল করা শুরু করলে আপনার সবচেয়ে বেশি সমস্যা হবে। যদি আপনি এটির সদৃশ না করেন (উদাহরণস্বরূপ এটি কোনও শ্রেণীর প্রয়োগের জন্য একবার ব্যবহার করুন) তবে ধ্রুবকটি ব্যবহার না করা ঠিক হবে।