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