কনফিগারেশন বজায় রাখতে কনস্ট্যান্ট বনাম কনফিগারেশন ফাইলগুলি কখন ব্যবহার করবেন


20

আমি প্রায়শই নিজের সাথে আমার ওয়েবকনফাইগ বা কনস্ট্যান্টস সি-এর ক্লাসে বা এই জাতীয় কিছুতে কী কী রাখি তা নিয়ে লড়াই করি।

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

আপনি কনফিগারেশন কীগুলির উপর থেকে কনস্ট্যান্ট কখন ব্যবহার করতে চান?

এই প্রশ্নটি আমার মনে হয় যে কোনও ভাষার ক্ষেত্রেই সত্যিই প্রযোজ্য।

উত্তর:


20

ব্যক্তিগতভাবে আমি কেবলমাত্র ডিফল্ট মান হিসাবে ধ্রুবক ব্যবহার করব এবং সেগুলি কনফিগারেশন ফাইল থেকে মানগুলিতে ওভাররাইড করা যাক।

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


3

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

সুতরাং আমি রাখার পরামর্শ দেব:

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

আপনি কী সঠিক টাইপ বলতে চান ... কনফিগার কীগুলি ... এটি এক্সএমএল ...
WeDoTDD.com

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

অসম্মতি: "কনফিগারেশন ফাইলের মান ধ্রুবক শ্রেণীর মানের চেয়ে বজায় রাখা শক্ত" - আপনি কীভাবে আপনার কনফিগারেশনকে কোড করেছেন এবং এই কনফিগারযোগ্য আইটেমগুলির মধ্যে কতগুলি রয়েছে তার উপর নির্ভর করে: নিজেকে পুনরাবৃত্তি করবেন না!
ইঞ্জিনিয়ার

3

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

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

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

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


1

থাম্বের একটি সহজ নিয়ম হ'ল স্থিরতা তৈরি করা যখন আপনি জানেন যে আপনি স্থির মানগুলির একটি নির্দিষ্ট সেট নিয়ে কাজ করবেন যা আপনি জানেন যে কোনও প্রসঙ্গে পরিবর্তনের প্রয়োজন ছাড়াই প্রয়োগ করা যেতে পারে; অন্য কিছুর জন্য বাহ্যিক কনফিগারেশন সরবরাহ করুন।

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

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



0

সংজ্ঞা অনুসারে ধ্রুবক হ'ল একটি মানের জন্য একটি মেমরি অবস্থান যা পরিবর্তন করা উচিত নয় (যেমন পিআই)।

আমি ধরে নিয়েছি আপনি 'প্যারামিটার' বলতে চেয়েছিলেন এবং ধ্রুবক নয়

যা বলা হয়েছে তা ছাড়াও, নোট করুন যে কনফিগারেশন ফাইল থেকে ব্যবহারকারী ইনপুটে ভেরিয়েবলগুলি প্রকাশ করা অ্যাপ্লিকেশনটির ক্ষতি করতে পারে।

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

আপনি যদি কখনও ডেটা সঞ্চয় করতে কনফিগারেশন ফাইল ব্যবহার করেন তবে নিশ্চিত হয়ে নিন যে আপনি সেগুলি ভার্সন করেছেন।

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