এটি সম্পর্কে চিন্তা করার এক উপায় আপনার সময় / তারিখ বলতে কী বোঝায় ? কম্পিউটারগুলি এই ধারণাগুলিগুলি কী তা জানে না: সেগুলি কোনওভাবে প্রোগ্রাম করাতে হবে। "যুগের পর থেকে সেকেন্ড" এর UNIX ফর্ম্যাটে সময়ের প্রতিনিধিত্ব করা বেশ সাধারণ এবং ওএস কলের মাধ্যমে কোনও প্রোগ্রামে একটি নির্দিষ্ট মান প্রদান করা সাধারণ common তবে, এই ব্যবহারটি কতটা সাধারণ তা বিবেচনা করা উচিত, এটি "আসল" সময় নয় তা মনে রাখা গুরুত্বপূর্ণ: এটি কেবল একটি যৌক্তিক উপস্থাপনা।
অন্যরা যেমন উল্লেখ করেছে যে আপনি যদি এই প্রক্রিয়াটি ব্যবহার করে একটি "সময়সীমা" তৈরি করেন তবে অন্য সময়ে খাওয়ানো এবং সেই "সময়সীমা" ভঙ্গ করা তুচ্ছ। এটি এনটিপি সার্ভারের জিজ্ঞাসার মতো আরও বিস্তৃত ব্যবস্থার জন্যও (এমনকি "সুরক্ষিত" সংযোগেরও পরে, যেহেতু আমরা আমাদের নিজস্ব শংসাপত্র, শংসাপত্র কর্তৃপক্ষ বা ক্রিপ্টো লাইব্রেরিগুলিকে প্যাচ করতে পারি)। প্রথমে এটি প্রদর্শিত হতে পারে যে এই ধরনের ব্যক্তিরা আপনার প্রক্রিয়াটি ঘিরে কাজ করার জন্য দোষী, তবে এটি স্বয়ংক্রিয়ভাবে এবং ভাল কারণে সম্পন্ন হতে পারে । উদাহরণস্বরূপ, পুনরুত্পাদনযোগ্য বিল্ডস এবং এটির সাহায্যে সরঞ্জামগুলি এটির জন্য স্বয়ংক্রিয়ভাবে পুনরায় সেট / আটকানো যেমন নন-ডিস্ট্রিমেন্টিক সিস্টেম কলগুলি রাখা ভাল ধারণা । লাইফফেকটাইম ঠিক তাই করে,সমস্ত ফাইলের টাইমস্ট্যাম্পগুলি এতে সেট করে 1970-01-01 00:00:01
, কেমুর রেকর্ড / রিপ্লে বৈশিষ্ট্যটি সমস্ত হার্ডওয়্যার ইন্টারঅ্যাকশন ইত্যাদি জাল করে etc.
এটি গুডাহার্টের আইনের অনুরূপ : আপনি যদি কোনও প্রোগ্রামের আচরণটি লজিকাল সময়ের উপর নির্ভর করে থাকেন তবে লজিকাল সময়টি "আসল" সময়ের একটি ভাল পরিমাপ হিসাবে বন্ধ হয়ে যায়। অন্য কথায়, লোকেরা সাধারণত সিস্টেমের ঘড়ির সাথে জগাখিচুড়ি করে না, তবে তারা যদি তাদের কোনও কারণ দেয় তবে তা করবে।
সময়ের অন্যান্য যৌক্তিক উপস্থাপনা রয়েছে: এর মধ্যে একটি হ'ল সফটওয়্যারটির সংস্করণ (হয় আপনার অ্যাপ বা কিছু নির্ভরতা)। উদাহরণস্বরূপ ইউনিক্স সময়ের চেয়ে এটি একটি "সময়সীমা" এর জন্য একটি আরও আকাঙ্ক্ষিত উপস্থাপনা, যেহেতু এটি আপনার যত্নের বিষয়টির জন্য আরও সুনির্দিষ্ট (বৈশিষ্ট্য সেট / এপিআইগুলি পরিবর্তন করা) এবং তাই অরথোগোনাল উদ্বেগগুলিতে পদদলিত হওয়ার সম্ভাবনা কম (যেমন ইউএনআইএক্স সময়ের সাথে মিলিয়ে যাওয়া) আপনার সময়সীমা কাজ করে লগ ফাইল, ক্রোন জবস, ক্যাশে ইত্যাদি ভাঙতে পারে)।
অন্যরা যেমন বলেছে, আপনি যদি গ্রন্থাগারটি নিয়ন্ত্রণ করেন এবং এই পরিবর্তনটিকে "ধাক্কা" দিতে চান, তবে আপনি একটি নতুন সংস্করণটি ধাক্কা দিতে পারেন যা বৈশিষ্ট্যগুলিকে হ্রাস করে (সতর্কতা সৃষ্টি করে, গ্রাহকদের তাদের ব্যবহার সন্ধান করতে এবং আপডেট করতে সহায়তা করে), তবে অন্য একটি নতুন সংস্করণ যা মুছে ফেলে সম্পূর্ণরূপে বৈশিষ্ট্য। আপনি চাইলে আপনি একে অপরের সাথে সাথেই প্রকাশ করতে পারেন, যেহেতু (আবার) সংস্করণগুলি কেবল সময়ের যৌক্তিক উপস্থাপনা, সেগুলির "প্রকৃত" সময়ের সাথে সম্পর্কিত হওয়ার দরকার নেই। শব্দার্থক সংস্করণ এখানে সহায়তা করতে পারে।
বিকল্প মডেলটি পরিবর্তনটি "টান" করা। এটি আপনার "পরিকল্পনা বি" এর মতো: গ্রাহক অ্যাপ্লিকেশনটিতে একটি পরীক্ষা যুক্ত করুন, যা পরীক্ষা করে যে এই নির্ভরতার সংস্করণ কমপক্ষে নতুন মান। যথারীতি, লাল / সবুজ / রিফ্যাক্টর কোডবেসের মাধ্যমে এই পরিবর্তনটি প্রচার করতে। কার্যকারিতা "খারাপ" বা "ভুল" না হলে এটি আরও উপযুক্ত হতে পারে তবে কেবল "এই ব্যবহারের ক্ষেত্রে একটি খারাপ ফিট"।
"টানুন" পদ্ধতির সাথে একটি গুরুত্বপূর্ণ প্রশ্ন হ'ল নির্ভরতা সংস্করণটি "ইউনিট" ( কার্যকারিতার ) হিসাবে গণ্য হয় এবং না, এবং তাই পরীক্ষার প্রাপ্য; বা এটি কেবলমাত্র "ব্যক্তিগত" বাস্তবায়ন বিশদ, যা কেবলমাত্র প্রকৃত ইউনিটের ( কার্যকারিতা ) পরীক্ষার অংশ হিসাবে ব্যবহার করা উচিত । আমি বলব: যদি নির্ভরতার সংস্করণগুলির মধ্যে পার্থক্যটি সত্যিই আপনার অ্যাপ্লিকেশনটির একটি বৈশিষ্ট্য হিসাবে গণনা করে তবে পরীক্ষাটি করুন (উদাহরণস্বরূপ, পাইথন সংস্করণটি> = 3.x পরীক্ষা করে)। যদি না হয়, তবে নাপরীক্ষা যুক্ত করুন (যেহেতু এটি ভঙ্গুর, তথ্যহীন এবং অত্যধিক সীমাবদ্ধ); আপনি যদি গ্রন্থাগারটি নিয়ন্ত্রণ করেন তবে "ধাক্কা" রুটের নিচে যান। আপনি যদি লাইব্রেরিটি নিয়ন্ত্রণ না করেন তবে যা যা সংস্করণ সরবরাহ করা হয়েছে তা কেবল ব্যবহার করুন: যদি আপনার পরীক্ষাগুলি পাস হয় তবে এটি নিজেকে সীমাবদ্ধ রাখার মতো নয়; যদি তারা পাস না করে তবে এটিই আপনার "সময়সীমা"!
আরেকটি পদ্ধতির উপায় রয়েছে, যদি আপনি নির্ভরতার বৈশিষ্ট্যগুলির কয়েকটি ব্যবহারকে নিরুৎসাহিত করতে চান (উদাহরণস্বরূপ এমন কিছু ফাংশনগুলি কল করা যা আপনার কোডের বাকী অংশের সাথে ভাল না খায়), বিশেষত যদি আপনি নির্ভরতা নিয়ন্ত্রণ না করেন: আপনার কোডিং মানগুলি নিষিদ্ধ করুন / এই বৈশিষ্ট্যগুলির ব্যবহারকে নিরুৎসাহিত করুন এবং আপনার ল্যাটারে তাদের জন্য চেক যুক্ত করুন।
এর প্রত্যেকটি বিভিন্ন পরিস্থিতিতে প্রযোজ্য হবে।