আপনি সহকর্মী সত্যই আইফেল ভাষা থেকে চুক্তি দ্বারা ডিজাইন প্রয়োগ করার চেষ্টা করছেন (ডিবিসি) এবং বইটির উপর ভিত্তি করে: অবজেক্ট ওরিয়েন্টেড সফটওয়্যার কনস্ট্রাকশন, ২ য় সংস্করণ।
উক্তিটি তিনি যেমন ব্যবহার করেছিলেন, তেমনটি হ্যারে লজিক বা হোয়ার ট্রিপল-এর {পি}-অংশ হবে: {পি} সি {কিউ}, যেখানে {পি} পূর্ব শর্তের দাবী (আয়ন) এর এবং {কিউ} শর্ত-পরবর্তী দাবী (আয়ন) গুলি।
আমি পিএইচপি-তে বাগ থাকা বাছাই বৈশিষ্ট্য সম্পর্কে দেওয়া পরামর্শের সমালোচনামূলক নোট নেব। আপনি বগী কোডটি ব্যবহার করতে চান না। আপনি যা চান তা হ'ল পিএইচপি নির্মাতারা হ'ল বাগটি ঠিক করার জন্য। যতক্ষণ না তারা না করে ততক্ষণ আপনি দৃsert়তাটি ব্যবহার করতে পারেন তবে এটি বর্তমান বগী অবস্থার প্রতি মনোযোগ দিয়ে ব্যবহার করতে পারেন।
তদুপরি, যদি দৃ feature় বৈশিষ্ট্যটি বগি হয় তবে আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি এটি উত্পাদন কোডে ব্যবহার করবেন না। তবুও, আমি আপনাকে প্রস্তাব দিচ্ছি যে আপনি এটি উপযুক্ত এবং বিকাশকারী কোডের ক্ষেত্রে উপযুক্ত যেখানে ব্যবহার করুন।
শেষ অবধি contract আপনি যদি চুক্তি অনুসারে ডিজাইনের একটি অধ্যয়ন করেন, আপনি দেখতে পাবেন যে বস্তু-ভিত্তিক শাস্ত্রীয় উত্তরাধিকারের আলোকে বুলিয়ান দাবিগুলি ব্যবহার করার পরিণতি রয়েছে — এটি — আপনাকে অবশ্যই কোনও পূর্বশর্তকে দুর্বল করা উচিত নয়, বা পোস্ট-শর্তকে দুর্বল করা উচিত নয়। একে অপরের সাথে ইন্টারঅ্যাক্ট করা আপনার বহুকোষী বংশধরদের পক্ষে এটি বিপজ্জনক হতে পারে। যতক্ষণ না আপনি বুঝতে পেরেছেন — আমি এটিকে একা রেখে যাব!
তদুপরি — আমি দৃ highly়ভাবে পরামর্শ দিচ্ছি যে পিএইচপি নির্মাতারা চুক্তি করে নকশার একটি বিস্তৃত অধ্যয়ন করুন এবং পিএইচপি এটি ASAP এ রাখার চেষ্টা করুন! তারপরে আমরা সকলেই একটি ডিবিসি-সচেতন সংকলক / দোভাষা থাকা থেকে উপকৃত হতে পারি, যা উত্তরের (উপরে) বর্ণিত সমস্যাগুলি পরিচালনা করবে:
- একটি যথাযথভাবে প্রয়োগ করা ডিজাইন-বাই-কন্ট্রাক্ট-সচেতন সংকলক (আশাবাদী) বাগ-মুক্ত (বর্তমান পিএইচপি জোরের বিপরীতে) হবে।
- একটি যথাযথভাবে বাস্তবায়িত ডিজাইন-বাই-কন্ট্রাক্ট-সচেতন সংকলক বিষয়টি আপনার মস্তিষ্ককে ধর্ষণ করার পরিবর্তে আপনার জন্য পলিমারফিক এ্যাসারেশন লজিক ম্যানেজমেন্টের প্রয়োজনীয়তাগুলি পরিচালনা করবে!
দ্রষ্টব্য: এমনকি if
পূর্বশর্তটিকে শক্তিশালী করতে বা পোস্ট-শর্তকে দুর্বল করতে যদি আপনার দাবির বিকল্প হিসাবে পূর্বশর্ত (পূর্বশর্ত) হিসাবে ব্যবহার করা হয় তবে মারাত্মক পরিণতি ভোগ করতে হবে। এর অর্থ কী তা বোঝার জন্য, আপনাকে চুক্তি অনুসারে ডিজাইন অধ্যয়ন করতে হবে! :-)
সুখী পড়াশোনা এবং শেখা।
'isset
(সহ কোড লাইনassert
)? শুধুisset
(একক উদ্ধৃতি ব্যতীত'
) নয়?