[অস্বীকৃতি: এই প্রশ্নটি বিষয়গত, তবে আমি তথ্য এবং / বা প্রতিক্রিয়ার দ্বারা সমর্থন পেয়ে উত্তর পেতে পছন্দ করব]
আমি মনে করি সবাই দৃ the ়তা নীতি সম্পর্কে জানে , সাধারণত পোস্টেলের আইনে সংক্ষিপ্ত:
আপনি যা প্রেরণ করেন তাতে রক্ষণশীল হন; আপনি যা গ্রহণ করেন তাতে উদার হন।
আমি সম্মত হব যে একটি বিস্তৃত যোগাযোগ প্রোটোকলের নকশার জন্য এটি উপলব্ধি করতে পারে (সহজ সম্প্রসারণের অনুমতি দেওয়ার লক্ষ্যে) তবে আমি সর্বদা ভেবেছি যে এইচটিএমএল / সিএসএসে এর প্রয়োগটি সম্পূর্ণ ব্যর্থতা ছিল, প্রতিটি ব্রাউজার তার নিজস্ব নীরব টুইটকে বাস্তবায়ন করে সনাক্তকরণ / আচরণ, একাধিক ব্রাউজার জুড়ে একটি সামঞ্জস্যপূর্ণ রেন্ডারিং অর্জন করা অসম্ভবকে প্রায় করে তুলেছে।
যদিও আমি লক্ষ্য করেছি যে সেখানে টিসিপি প্রোটোকলের আরএফসি "নীরব ব্যর্থতা" গ্রহণযোগ্য বলে মনে করে, অন্যথায় নির্দিষ্ট না করা পর্যন্ত ... যা একটি আকর্ষণীয় আচরণ, অন্তত বলতে গেলে।
সফ্টওয়্যার বাণিজ্য জুড়ে এই নীতি প্রয়োগের অন্যান্য উদাহরণ রয়েছে যা নিয়মিতভাবে পপ আপ হয় কারণ তারা আমার মাথা থেকে উপরে থেকে বিকাশকারীদের দংশন করেছে:
- জাভাস্ক্রিপ্ট আধা-কোলন সন্নিবেশ
- সি (নীরব) অন্তর্নির্মিত রূপান্তর (এটি যদি কেটে না যায় তবে এটি এত খারাপ হবে না ...)
এবং "স্মার্ট" আচরণ বাস্তবায়নে সহায়তা করার জন্য সরঞ্জামগুলি রয়েছে:
- নাম মেলে ফোনেটিক অ্যালগরিদম ( ডাবল মেটাফোন )
- স্ট্রিং দূরত্ব অ্যালগরিদম ( লেভেনস্টেইন দূরত্ব )
তবে আমি দেখতে পেয়েছি যে প্রযুক্তিবিহীন ব্যবহারকারীর সাথে কথা বলার ক্ষেত্রে বা ত্রুটি পুনরুদ্ধারের প্রক্রিয়াতে ব্যবহারকারীদের সহায়তা করার ক্ষেত্রে এটি কার্যকর হতে পারে, যখন গ্রন্থাগার / শ্রেণি ইন্টারফেসের নকশার ক্ষেত্রে প্রয়োগ হয় তখন কিছুটা ত্রুটি রয়েছে:
- এটি অ্যালগরিদম "সঠিক" অনুমান করে কিনা কিছুটা বিষয়গত হয় এবং সুতরাং এটি সর্বনিম্ন বিস্ময়ের নীতিবিরোধী হতে পারে
- এটি বাস্তবায়ন আরও কঠিন করে তোলে, এভাবে বাগ প্রবর্তনের আরও সম্ভাবনা রয়েছে ( YAGNI লঙ্ঘন ?)
- আচরণটি পরিবর্তনের জন্য আরও সংবেদনশীল করে তোলে, কারণ "অনুমান" রুটিনের কোনও পরিবর্তন পুরানো প্রোগ্রামগুলি ভেঙে দিতে পারে, প্রায় রিফ্যাক্টরিং সম্ভাবনাগুলি বাদ দিয়ে ... শুরু থেকেই!
এবং এটিই আমাকে নিম্নলিখিত প্রশ্নের দিকে নিয়ে গেল:
একটি ইন্টারফেস ডিজাইন করার সময় (গ্রন্থাগার, শ্রেণি, বার্তা), আপনি দৃ principle়তার নীতিটির দিকে ঝুঁকছেন কিনা?
আমি নিজেই আমার ইন্টারফেসগুলিতে বিস্তৃত ইনপুট বৈধতা ব্যবহার করে বেশ কঠোর হতে থাকি এবং আমি ভাবছিলাম যে আমি সম্ভবত খুব কঠোর কিনা।