সাধারণ মানব পাঠযোগ্য কনফিগারেশন ফাইল ফর্ম্যাটটি কী? [বন্ধ]


13

বর্তমান কনফিগারেশন ফাইলটি নিম্নরূপ:

mainwindow.title = 'test'
mainwindow.position.x = 100
mainwindow.position.y = 200

mainwindow.button.label = 'apply'
mainwindow.button.size.x = 100
mainwindow.button.size.y = 30

logger.datarate = 100
logger.enable = True
logger.filename = './test.log'

এটি একটি নেস্টেড অভিধানে অজগর দিয়ে পড়া হয়:

{
  'mainwindow':{
    'button':{
      'label': {'value':'apply'},
       ...
  },
  'logger':{
     datarate: {'value': 100},
     enable: {'value': True},
     filename: {'value': './test.log'}
  }, 
  ...    
}

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

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


11
পরম সরলতমটি হ'ল আপনার ক্লায়েন্টকে একটি ছোট অ্যাপ্লিকেশন তৈরি করা যা এই কনফিগার ফাইলগুলি সম্পাদনা ছাড়া কিছুই করে না।
প্যাট্রিক হিউজেস

11
মানুষের জন্য সহজতম কনফিগারেশন ফাইলটি হ'ল: Do what I want.কম্পিউটারগুলির পক্ষে এটি সবচেয়ে শক্ত, যদিও: পি
সজর্ড

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

@ এসোয়ার্ড এটি আমি জানতে চেয়েছিলাম এই অর্থে প্রোগ্রামগুলির চেয়ে মানব ভাষাতে আরও রয়েছে এমন কি অ্যালগরিদম রয়েছে?
জুহ

2
ব্যবহারকারীরা যে কোনও কিছু ভাঙতে পারেন। যদি তারা ম্যানুয়ালি এডিট করতে চলেছে তবে সমর্থন করার জন্য প্রস্তুত থাকুনmainwindow.title =='test"
এমএসাল্টাররা

উত্তর:


15

আপনি YAML এর মতো কিছু ব্যবহার করতে পারেন । এখানে একটি উদাহরণের একটি লিঙ্ক:

http://www.yaml.org/start.html

--- !clarkevans.com/^invoice
invoice: 34843
date   : 2001-01-23
bill-to: &id001
    given  : Chris
    family : Dumars
    address:
        lines: |
            458 Walkman Dr.
            Suite #292
        city    : Royal Oak
        state   : MI
        postal  : 48046
ship-to: *id001
product:
    - sku         : BL394D
      quantity    : 4
      description : Basketball
      price       : 450.00
    - sku         : BL4438H
      quantity    : 1
      description : Super Hoop
      price       : 2392.00
tax  : 251.42
total: 4443.52
comments: >
    Late afternoon is best.
    Backup contact is Nancy
    Billsmer @ 338-4338.

পাইথাম বাইলে এটির জন্য পাইথন বাইন্ডিংগুলি সন্ধান করতে পারেন । এটি JSON এর চেয়ে কিছুটা বেশি ব্যবহারকারী বান্ধব (এটি আপনার দ্বিতীয় উদাহরণটি দেখতে কেমন)।


10
ওয়াইএএমএল হ'ল ডান্ডি, তবে স্পষ্টভাবে সহজ নয়।
9000

1
আমি তার প্রশ্নের প্রসঙ্গে সবচেয়ে সহজ চিন্তা করেছি: "এক্সএমএল ধরনের আচরণ পান এবং যতক্ষণ সম্ভব এক্সএমএল এড়িয়ে চলুন"। এই প্রয়োজনীয়তাটি পূরণ করার সময় আমি সহজ কিছু সম্পর্কে নিশ্চিত নই।
জেএমকিউ

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

3
আমি মোটামুটি নিশ্চিত অ প্রযুক্তিগত ব্যবহারকারীদের খাঁজ ভুল পেতে যাচ্ছি - মত আরো অস্পষ্ট কাপড় একা থাকতে দাও >পর comments:, এবং &এবং *সামনেid001
Izkata

6

আপনি যে সর্বোত্তম কাজটি করতে পারেন তা হ'ল আপনার সমাধানটির একটি মকআপ এবং সম্ভবত কয়েকজন সমাধান সমাধানের একটি মকআপ এবং আপনার সিস্টেমের দু'জন প্রতিনিধি ব্যবহারকারীকে জিজ্ঞাসা করুন। এই সাইটটিতে প্রশ্নের উত্তর দেওয়ার জন্য স্ব-নির্বাচিত লোকদের চেয়ে তারা কী পছন্দ করে তা জানাতে তারা আরও ভাল হবে।

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


3

আপনি হারাতে পারেন সবকিছু হারান। name.name.name=value, প্রতিটি পৃথক লাইনে থাকা, আপনি যতটা সহজ পেতে পারেন তেমন সহজ। পার্সিংয়ের জন্য আপনার উদ্ধৃতিগুলির দরকার নেই, আপনি জানেন কখন কখন trueবুলিয়ান হয় এবং কখন trueস্ট্রিং হয়, "বোবা মানুষ" আপনাকে তা বলবেন না। স্ট্রিংয়ের জন্য, যদি ক্ষেত্রের শীর্ষস্থানীয় / পিছনের ফাঁকা জায়গা না থাকে তবে সেগুলি নিজেই ছিটিয়ে দিন।


3

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

এমনকি যদি পাঠকরা ইংরেজি জানেন তবে তাদের এখনও ধারণা নেই যে "লগার.ড্যাটারেট = 100" অর্থ প্রতি সেকেন্ডে 100 টি অক্ষর, বা প্রতি ঘন্টা 100 জিবিবি, বা মেট্রিক টন 100 মুরগি।

সর্বাধিক মানব পঠনযোগ্য ফাইল ফর্ম্যাট, একটি শালীন জিইউআই ভিত্তিক ডায়ালগ বাক্স / উইজার্ড / কনফিগারারের (আন্তর্জাতিকীকরণ, সহায়তা সিস্টেম ইত্যাদি) সহ একটি বাইনারি ফাইল।


2

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


1
এখানে সমস্যাটি হ'ল অ্যাপটিকে অসক্স, জিত এবং উবুন্টুকে সমর্থন করতে হবে এবং ফাইল সিস্টেমে অ্যাক্সেস করতে হবে। সুতরাং আমার একমাত্র বিকল্প হ'ল স্ট্যাটিক পাইথন এক্সিকিউটেবল (এবং নেটিভ লুকের জন্য ডাব্লুএক্স)। নাকি অন্য কোন ভাষা আছে? আপনি কি স্থির জাভা কার্যকর করতে পারবেন?
জুহ

একটি কিউটি অ্যাপ্লিকেশনটি আপনার ক্ষেত্রে একটি সহজ এবং বৈকল্পিক সমাধান হতে পারে
রিগা

2

আমি বলছি আপনার কাছে যা আছে (বৈশিষ্ট্য ফাইল) এটি ইতিমধ্যে সর্বোত্তম মানব পাঠযোগ্য কনফিগারেশন ফর্ম্যাট। :)

এখানে আমার যুক্তি রয়েছে:

  • প্রোপার্টি ফাইল কেবল কী / মান জোড়। সহজেই মানুষের দ্বারা পঠনযোগ্য।
  • টিএমএসএল পছন্দ করে না, ছড়িয়ে সিনট্যাক্স।
  • আপনার উদাহরণের মতো '।' দিয়ে খুব সহজেই নীড়-সক্ষম।
  • ফ্ল্যাট কাঠামো উত্স নিয়ন্ত্রিত পরিবেশে সহজ আলাদা করতে দেয়।

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

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