নোদা টাইম বনাম জোদা সময়?


21

ইন নোদা সময় ব্যবহারকারী নির্দেশিকা , যুক্তিপূর্ণ অধ্যায় বলে:

পাবলিক এপিআই মূলত নতুন করে লেখা হয়েছে, দু'টি এমন একটি এপিআই সরবরাহ করার জন্য যা .NET এর চেয়ে বেশি অভিবাদনমূলক, এবং জোদা সময় সিদ্ধান্তকে কিছু সংশোধন করার জন্য যা নোদা টাইম দলটি "দুর্ভাগ্যজনক" বলে মনে করে। (এর কয়েকটি কেবল বিভিন্ন লক্ষ্য থাকার কারণে are

এই সিদ্ধান্তগুলি কি আলাদা / ভাল? এটি কেবলমাত্র ভাষা সিনট্যাক্সের জন্য পার্থক্য গণনা করবে না, তবে ব্যবহারকারীরা প্রোগ্রামিং ত্রুটি করার সম্ভাবনা কম করার জন্য যা কিছু করা হয়েছে তা অন্তর্ভুক্ত করবে (গ্রন্থাগারের ব্যবহারযোগ্যতা)।

উত্তর:


32

শুরু করার জন্য সর্বোত্তম জায়গাটি সম্ভবত ব্যবহারকারীর গাইডের "নকশা দর্শন" বিভাগ। তবে নোদা সময় এবং জোদার সময়ের মধ্যে নির্দিষ্ট পার্থক্যটি প্রকাশ করতে:

  • নোডা সময় তার কোডের অনেক বেশি অভ্যন্তরীণ রাখে। এটি এটিকে কম নমনীয় করে তোলে, এতে আপনি আসলে নিজের ক্যালেন্ডার সিস্টেম তৈরি করতে পারবেন না - তবে এর অর্থ এটিও শেখা এবং ব্যবহার করা উভয়ই সহজ simp

  • নোডলিটি প্রায় সবসময় নোদা সময়ের একটি ত্রুটি। আর কোনও "আপনি যদি সময় অঞ্চলটির জন্য শূন্য হয়ে যান, আমরা কেবলমাত্র সিস্টেম ডিফল্ট ব্যবহার করব।" আপনার স্পষ্ট হওয়া দরকার।

  • ডিফল্টের কথা বলছি ... আমরা ডিফল্ট হিসাবে সিস্টেমের ঘড়িটি ব্যবহার করি না। আমরা IClockএকটি SystemClockবাস্তবায়ন সঙ্গে একটি পৃথক ইন্টারফেস পেয়েছি , কিন্তু কিছুই "বর্তমান সময়" এর ডিফল্ট।

  • নির্দিষ্ট নির্মাতা শ্রেণিগুলি বাদে, সবকিছু অপরিবর্তনীয়। আমি মনে করি MutableDateTimeজোদা টাইমের (এট আল) একটি ভুল ছিল।

  • আমরা ক্যালেন্ডার সিস্টেম এবং সময় অঞ্চলকে একে অপরের থেকে পৃথক করেছি, কারণ তারা সত্যিই খুব আলাদা উদ্বেগ। সুতরাং LocalDateএটি যে ক্যালেন্ডার সিস্টেমটি ব্যবহার করে তা সম্পর্কে জানে, তবে সময় অঞ্চল নয়, উদাহরণস্বরূপ।

  • স্থানীয় তারিখ / সময় মানকে জোনেড তারিখ / সময় মানগুলিতে সমাধানের পদ্ধতিটি জোদা সময়ের চেয়ে জেএসআর -310 এর কাছাকাছি। আমরা কেবল কোনও নির্দিষ্ট পদ্ধতিতে অস্পষ্টতা / এড়িয়ে যাওয়া সময়গুলি পরিচালনা করি না: আমরা ব্যবহারকারীকে তারা কী চাই তা বলতে বাধ্য করি।

  • জোডা টাইমের বিভিন্ন জায়গা রয়েছে যেখানে এটি দুর্বল-টাইপযুক্ত API (যেমন নতুন Instant(Object)) থেকে আপনি কী চান তা অনুমান করার চেষ্টা করে । নোডা সময় এটি যতটা সম্ভব এড়াতে পারে - এটি আরও স্পষ্ট।

  • কোন ধরণের গাণিতিক আপনি কোন ধরণের উপর পারফর্ম করতে পারেন তাতে নোডা সময় আরও কঠোর। সুতরাং উদাহরণস্বরূপ, আপনি একটি যোগ করতে পারেন Periodএকটি থেকে ZonedDateTime, কারণ সেখানে প্রায় দিবালোক ট্রানজিশন সংরক্ষণ যা পারা আপ জগাখিচুড়ি জিনিষ oddities আছে। পরিবর্তে, আমরা ব্যবহারকারীদের LocalDateTimeজোনবিহীন প্রেক্ষাপটে তারা যে পরিমাণ গাণিতিক চান তা রূপান্তর করতে উত্সাহিত করি এবং তারপরে ফিরে রূপান্তর করতে পারি।

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


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