আমি টাইপস্ক্রিপ্টে একটি গেম লিখছি, এবং সিদ্ধান্ত নিয়েছি যে আমি " ইন্টারফেস ভিত্তিক প্রোগ্রামিং " ধারণাটি মেনে চলার চেষ্টা করতে যাচ্ছি , যেখানে আপনি কোনও বস্তুর প্রয়োগের পরিবর্তে কোনও ইন্টারফেসের ভিত্তিতে কোড লেখেন।
আমি বেশ কয়েকটি ইন্টারফেস লিখেছি এবং ক্লাসগুলি সেগুলি প্রয়োগ করে, তারপরে একটি পদক্ষেপ নিয়েছিল এবং বুঝতে পেরেছিল যে ক্লাসগুলি যথেষ্ট সহজ ছিল যে আমার সম্ভবত বাস্তবায়ন পরিবর্তন করার দরকার নেই, যেহেতু এটি করার একমাত্র উপায় আছে বর্গটি করে ( Phaser.Sprite
একটি সীমাবদ্ধ উপায়ে একটি ট্যাঙ্কের মতো কাজ করার জন্য)।
তারপরে আমার মনে আছে কয়েক বছর আগে YAGNI এর ধারণা সম্পর্কে পড়া যা মূলত হ'ল আপনি কখনই ব্যবহার করতে পারবেন না এমন জিনিসগুলি অন্তর্ভুক্ত করার জন্য আপনার কোডটি অতিরিক্ত ইঞ্জিনিয়ার করা উচিত নয়।
সর্বোত্তম অনুশীলনগুলি অনুসরণ করে, প্রতিটি শ্রেণির একটি ইন্টারফেস বাস্তবায়ন করা উচিত, না আপনি ভবিষ্যতে সম্ভাব্যভাবে সরিয়ে নেওয়া আশা করেন এমন ক্লাসগুলির মধ্যে সীমাবদ্ধ রাখবেন?