- docx (মাইক্রোসফ্ট ওয়ার্ড ফরম্যাট);
- পিডিএফ (অ্যাডোব ফরম্যাট);
- mobi (সাধারণত Amazon Kindle ডিভাইসে ব্যবহৃত হয়);
- এবং আরও অনেক কিছু (ePub, djvu, fb2, ইত্যাদি)।
JSON
জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন। আপনি ইতিমধ্যে এই বিন্যাস সম্পর্কে একটু জানেন! আমরা এই পাঠে এটি সম্পর্কে কথা বলেছি , এবং আমরা এখানেই JSON-এ সিরিয়ালাইজেশন কভার করেছি । এটি একটি কারণে এর নাম পেয়েছে। JSON-এ রূপান্তরিত জাভা বস্তুগুলি আসলে জাভাস্ক্রিপ্টের বস্তুর মতো দেখতে। আমাদের অবজেক্ট বোঝার জন্য আপনাকে জাভাস্ক্রিপ্ট জানার দরকার নেই:{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
}
আমরা একটি একক বস্তু পাঠানোর মধ্যে সীমাবদ্ধ নই। JSON বিন্যাস বস্তুর একটি অ্যারের প্রতিনিধিত্ব করতে পারে:
[
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
},
{
"title": "Demons",
"author": "Fyodor Dostoyevsky",
"year": 1872
},
{
"title": "The Seagull",
"author": "Anton Chekhov",
"year": 1896
}
]
যেহেতু JSON জাভাস্ক্রিপ্ট অবজেক্টের প্রতিনিধিত্ব করে, এটি নিম্নলিখিত জাভাস্ক্রিপ্ট ডেটা ফর্ম্যাটগুলিকে সমর্থন করে:
- স্ট্রিং
- সংখ্যা;
- বস্তু;
- অ্যারে;
- বুলিয়ানস (সত্য এবং মিথ্যা);
- খালি.
-
মানব-পাঠযোগ্য বিন্যাস। আপনার শেষ ব্যবহারকারী মানুষ হলে এটি একটি সুস্পষ্ট সুবিধা। উদাহরণস্বরূপ, ধরুন আপনার সার্ভারে ফ্লাইটের সময়সূচী সহ একটি ডাটাবেস রয়েছে। একজন মানব গ্রাহক, বাড়িতে তার কম্পিউটারে বসে, একটি ওয়েব অ্যাপ্লিকেশন ব্যবহার করে এই ডাটাবেস থেকে ডেটার জন্য অনুরোধ করে। কারণ আপনাকে এমন একটি বিন্যাসে ডেটা সরবরাহ করতে হবে যা সে বুঝতে পারে, JSON একটি দুর্দান্ত সমাধান।
-
সরলতা। এটা খুবই সহজ :) উপরে, আমরা দুটি JSON ফাইলের উদাহরণ দিয়েছি। এমনকি যদি আপনি জাভাস্ক্রিপ্ট সম্পর্কে না শুনে থাকেন (জাভাস্ক্রিপ্ট অবজেক্টের কথাই ছেড়ে দিন), আপনি সহজেই সেখানে বর্ণিত অবজেক্টের ধরন বুঝতে পারবেন।
পুরো JSON ডকুমেন্টেশনে কয়েকটি ছবি সহ একটি ওয়েবপৃষ্ঠা থাকে। -
ব্যাপকভাবে ব্যবহার. জাভাস্ক্রিপ্ট হল প্রভাবশালী ফ্রন্ট-এন্ড ভাষা, এবং এর নিজস্ব প্রয়োজনীয়তা রয়েছে। JSON ব্যবহার করা আবশ্যক। অতএব, বিপুল সংখ্যক ওয়েব পরিষেবা JSON কে ডেটা এক্সচেঞ্জ ফর্ম্যাট হিসাবে ব্যবহার করে। প্রতিটি আধুনিক IDE JSON ফর্ম্যাট (IntelliJ IDEA সহ) সমর্থন করে। JSON এর সাথে কাজ করার জন্য সমস্ত ধরণের প্রোগ্রামিং ভাষার জন্য একগুচ্ছ লাইব্রেরি লেখা হয়েছে।
YAML
প্রাথমিকভাবে, YAML ছিল "এখনও আরেকটি মার্কআপ ভাষা"। যখন এটি শুরু হয়েছিল, তখন এটি XML-এর প্রতিযোগী হিসাবে অবস্থান করেছিল। এখন, সময়ের সাথে সাথে, YAML এর অর্থ এসেছে "YAML মার্কআপ ভাষা নয়"। এটা ঠিক কি? আসুন কল্পনা করি যে একটি কম্পিউটার গেমের চরিত্রগুলিকে উপস্থাপন করার জন্য আমাদের 3টি ক্লাস তৈরি করতে হবে: ওয়ারিয়র, ম্যাজ এবং থিফ। তাদের নিম্নলিখিত বৈশিষ্ট্য থাকবে: শক্তি, তত্পরতা, সহনশীলতা, অস্ত্রের একটি সেট। আমাদের ক্লাসগুলি বর্ণনা করে এমন একটি YAML ফাইল দেখতে কেমন হবে তা এখানে:classes:
class-1:
title: Warrior
power: 8
agility: 4
stamina: 7
weapons:
- sword
- spear
class-2:
title: Mage
power: 5
agility: 7
stamina: 5
weapons:
- magic staff
class-3:
title: Thief
power: 6
agility: 6
stamina: 5
weapons:
- dagger
- poison
একটি YAML ফাইলের একটি গাছের গঠন রয়েছে: কিছু উপাদান অন্যগুলিতে নেস্ট করা হয়। আমরা নির্দিষ্ট সংখ্যক স্পেস ব্যবহার করে নেস্টিং নিয়ন্ত্রণ করতে পারি, যা আমরা প্রতিটি স্তর বোঝাতে ব্যবহার করি। YAML বিন্যাসের সুবিধা কি?
-
মানব পাঠযোগ্য. আবার, এমনকি একটি বর্ণনা ছাড়াই একটি YAML ফাইল দেখে, আপনি এটি বর্ণনা করে এমন বস্তুগুলি সহজেই বুঝতে পারবেন। YAML এতটাই মানুষের পঠনযোগ্য যে ওয়েবসাইট yaml.org হল একটি সাধারণ YAML ফাইল :)
-
কম্প্যাক্টনেস। ফাইলের কাঠামোটি স্পেস ব্যবহার করে তৈরি করা হয়েছে: বন্ধনী বা উদ্ধৃতি চিহ্ন ব্যবহার করার দরকার নেই।
-
প্রোগ্রামিং ভাষার জন্য নেটিভ ডেটা স্ট্রাকচারের জন্য সমর্থন। JSON এবং অন্যান্য অনেক ফরম্যাটের তুলনায় YAML এর বিশাল সুবিধা হল এটি বিভিন্ন ডেটা স্ট্রাকচারকে সমর্থন করে। তারা সংযুক্ত:
-
!!ম্যাপ
কী-মানের জোড়ার একটি ক্রমবিহীন সেট যাতে সদৃশ হতে পারে না; -
!!ওমাপ
কী-মানের জোড়ার একটি ক্রমানুসারে যা সদৃশ হতে পারে না; -
!!জোড়া:
কী-মানের জোড়ার একটি আদেশকৃত ক্রম যাতে সদৃশ থাকতে পারে;
একে অপরের সমান নয় এমন মানগুলির একটি অবিন্যস্ত ক্রম সেট করুন ;- !!seq
নির্বিচারে মানগুলির একটি ক্রম;
আপনি জাভা থেকে এই কাঠামোর কিছু চিনতে পারবেন! :) এর মানে হল যে প্রোগ্রামিং ল্যাঙ্গুয়েজ থেকে বিভিন্ন ডাটা স্ট্রাকচার YAML-এ সিরিয়ালাইজ করা যায়।
-
-
অ্যাঙ্কর এবং উপনাম ব্যবহার করার ক্ষমতা
এই মার্কারগুলি আপনাকে একটি YAML ফাইলের কিছু উপাদান সনাক্ত করার অনুমতি দেয় এবং তারপরে এটি বারবার ঘটলে বাকি ফাইলগুলিতে এটি উল্লেখ করুন। চিহ্ন ব্যবহার করে একটি অ্যাঙ্কর তৈরি করা হয় এবং * ব্যবহার করে একটি উপনাম তৈরি করা হয় ।
ধরুন আমাদের কাছে লিও টলস্টয়ের বই বর্ণনা করার একটি ফাইল আছে। প্রতিটি বইয়ের জন্য লেখকের নাম লেখা এড়াতে, আমরা কেবল লিও অ্যাঙ্কর তৈরি করি এবং যখন এটির প্রয়োজন হয় তখন একটি উপনাম ব্যবহার করে এটি উল্লেখ করি:
books: book-1: title: War and Peace author: &leo Leo Tolstoy year: 1869 book-2: title: Anna Karenina author: *leo year: 1873 book-3: title: Family Happiness author: *leo year: 1859
যখন এই ফাইলটি পার্স করা হয়, তখন "লিও টলস্টয়" মানটি সঠিক জায়গায় প্রতিস্থাপিত হয় যেখানে আমাদের উপনাম রয়েছে৷
- YAML অন্যান্য বিন্যাসে ডেটা এম্বেড করতে পারে। উদাহরণস্বরূপ, JSON:
books: [ { "title": "War and Peace", "author": "Leo Tolstoy", "year": 1869 }, { "title": "Anna Karenina", "author": "Leo Tolstoy", "year": 1873 }, { "title": "Family Happiness", "author": "Leo Tolstoy", "year": 1859 } ]
অন্যান্য ক্রমিক বিন্যাস
এক্সএমএল
এই বিন্যাস একটি ট্যাগ ট্রি উপর ভিত্তি করে.<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
প্রতিটি উপাদান একটি খোলা এবং বন্ধ ট্যাগ (<> এবং </>) নিয়ে গঠিত। প্রতিটি উপাদান নেস্টেড উপাদান থাকতে পারে. XML হল একটি সাধারণ বিন্যাস যা JSON এবং YAML এর মতই ভালো (যদি আমরা বাস্তব প্রকল্পের কথা বলি)। এক্সএমএল সম্পর্কে আমাদের একটি পৃথক পাঠ রয়েছে ।
BSON (বাইনারী JSON)
এর নাম থেকে বোঝা যায়, BSON JSON-এর মতোই, কিন্তু এটি মানব-পাঠযোগ্য নয় এবং বাইনারি ডেটা ব্যবহার করে। ফলস্বরূপ, এটি ছবি এবং অন্যান্য সংযুক্তি সংরক্ষণ এবং স্থানান্তর করার জন্য খুব ভাল। এছাড়াও, BSON কিছু ডেটা প্রকার সমর্থন করে যা JSON-এ উপলব্ধ নয়। উদাহরণস্বরূপ, একটি BSON ফাইলে একটি তারিখ (মিলিসেকেন্ড বিন্যাসে) বা জাভাস্ক্রিপ্ট কোডের একটি অংশও অন্তর্ভুক্ত থাকতে পারে। জনপ্রিয় MongoDB NoSQL ডাটাবেস BSON ফর্ম্যাটে তথ্য সঞ্চয় করে।অবস্থান ভিত্তিক প্রোটোকল
কিছু পরিস্থিতিতে, আমাদের পাঠানো ডেটার পরিমাণ ব্যাপকভাবে কমাতে হবে (উদাহরণস্বরূপ, যদি আমাদের অনেক ডেটা থাকে এবং লোড কমাতে হয়)। এই পরিস্থিতিতে, আমরা অবস্থান-ভিত্তিক প্রোটোকল ব্যবহার করতে পারি, অর্থাৎ, প্যারামিটারের নাম ছাড়াই প্যারামিটারের মান পাঠাতে পারি।"Leo Tolstoy" | "Anna Karenina" | 1873
এই ফর্ম্যাটে ডেটা একটি সম্পূর্ণ JSON ফাইলের চেয়ে কয়েকগুণ কম জায়গা নেয়। অবশ্যই, অন্যান্য ক্রমিক বিন্যাস আছে, কিন্তু আপনার এখনই সেগুলির সবগুলি জানার দরকার নেই :) অ্যাপ্লিকেশনগুলি তৈরি করার সময় আপনি যদি বর্তমান শিল্পের মানক বিন্যাসের সাথে পরিচিত হন এবং তাদের সুবিধাগুলি এবং কীভাবে সেগুলি একটি থেকে আলাদা তা মনে রাখতে পারেন অন্য এবং এর সাথে, আমাদের পাঠ শেষ হয় :) আজকে কয়েকটি কাজ সমাধান করতে ভুলবেন না! পরের বার পর্যন্ত! :)