প্রোটোবুফের সিন্ট্যাক্স 3 সমস্ত ক্ষেত্রগুলি কীওয়ার্ডগুলি required
এবং optional
পূর্ববর্তী প্রোটো 2 সিনট্যাক্স থেকে বাদ দিয়ে alচ্ছিক করে তুলেছিল। বিকাশকারীদের কাছ থেকে কিছু মন্তব্য পড়ে মনে হচ্ছে এটি এগিয়ে / পিছিয়ে বাইনারি সামঞ্জস্য বাড়ানোর জন্য করা হয়েছিল।
তবে আমার জন্য, এটি কেবল প্যাকেজের নামগুলির সংস্করণ দিয়ে প্রয়োগ করা যেতে পারে, বলুন com.example.messages.v1
এবং তারপরে ক্লায়েন্টদের তারা বুঝতে পেরে ডিসরিওালাইজারগুলি প্রয়োগ করতে দিন। একই সাথে এটি কোনও ধরণের হিসাবে বর্ণিত কিছু চুক্তি সরিয়ে দেয় যা একটি সফ্টওয়্যার ইঞ্জিনিয়ারিং দৃষ্টিকোণ থেকে কার্যকর। উদাহরণস্বরূপ আমি যদি
message Location {
double latitude = 1;
double longitude = 2;
}
প্রোটো 3-তে একটি অর্ধ ব্যাকযুক্ত তৈরি করা সম্ভব Location
তবে প্রয়োজনীয় ক্ষেত্রগুলির একটি সরবরাহ না করে পুরোপুরি বৈধ ।
ক্লায়েন্টদের মধ্যে ডেটা আদান-প্রদানের জন্য স্কিমা ভিত্তিক সিরিয়ালাইজেশন ফর্ম্যাট তৈরি করার সময় কি এটি একটি বড় ত্রুটি নয়? সমস্ত প্রয়োজনীয় ক্ষেত্রের বৈধ মান আছে কিনা তা পরীক্ষা করে প্রতিটি ক্লায়েন্টের অতিরিক্ত বৈধতা কোডটি স্থানান্তর করা আরও খারাপ নয়?