আমি দিকনির্দেশক প্রোগ্রামিং সম্পর্কে অনেকবার শুনেছি, বেশিরভাগ ক্ষেত্রে এটি প্রোগ্রামিংয়ের "পরবর্তী প্রজন্ম" প্রযুক্তি এবং এটি 'কিল' ওওপি-তে চলছে।
এটা কি ঠিক? ওওপি মারা যাচ্ছে নাকি এর কারণ কী হতে পারে?
আমি দিকনির্দেশক প্রোগ্রামিং সম্পর্কে অনেকবার শুনেছি, বেশিরভাগ ক্ষেত্রে এটি প্রোগ্রামিংয়ের "পরবর্তী প্রজন্ম" প্রযুক্তি এবং এটি 'কিল' ওওপি-তে চলছে।
এটা কি ঠিক? ওওপি মারা যাচ্ছে নাকি এর কারণ কী হতে পারে?
উত্তর:
যে কোনও সময় যখন কেউ আপনাকে বলে যে একটি সফ্টওয়্যার প্রযুক্তি অন্য একজনকে হত্যা করবে বা পুরো বাজার / ব্যবহার / দর্শকদের উপর প্রভাব ফেলবে, এটি মনে রাখবেন:
একটি বুদ্ধিমান (গতিশীল তবে স্থিতিশীল) বাস্তুতন্ত্র বিভিন্ন ধরণের বিভিন্ন প্রজাতির তৈরি।
এর অর্থ হ'ল যে কোনও নতুন হাইপড প্রযুক্তি হাইপ বক্ররেখার মধ্য দিয়ে যাবে এবং শেষ পর্যন্ত এটির নির্দিষ্ট (গুলি) উদ্দেশ্য এবং এর সাথে অভিজ্ঞতা অর্জনের মাধ্যমে এটি খুঁজে পাবে।
এর অর্থ এইও হয় যে দৃষ্টিভঙ্গি ভিত্তিক প্রোগ্রামিংয়ের মতো চূড়ান্ত ধারণাটি যদি প্রয়োজন হয় তবে এটি কার্যকর, অর্থ হ'ল সর্বদা এবং খুব প্রায়ই নয়, অন্তর্ভুক্ত ব্যয়ের কারণে।
তবে এর ইতিমধ্যে এটির জায়গা রয়েছে যেমন ওওপোগ্র্যামিংয়ের মতো জেনেরিক প্রোগ্রামিংয়ের মতো, কার্যকরী প্রোগ্রামিংয়ের মতো, পদ্ধতিগত প্রোগ্রামিং ইত্যাদি etc.
আপনি কি লক্ষ্য করেছেন যে যে ভাষাগুলি বেশি ব্যবহৃত (এবং বিতর্কিতভাবে জনপ্রিয়) এবং বাস্তব জীবনে ব্যাপকভাবে ছড়িয়ে রয়েছে সেগুলি "খাঁটি নয়"? এর কারণ বেশ কয়েকটি প্যারাডাইমগুলি মঞ্জুরি দেওয়া তাদেরকে সময়ের সাথে সাথে প্রেক্ষাপটের পরিবর্তনে আরও নমনীয় করে তোলে এবং তারা আরও ব্যবহারের কুলুঙ্গি পূরণ করে।
এওপি-র কারণে ওওপি মারা যাচ্ছে না। এওপি কিছু মান যুক্ত করে তবে এটি ওওপির সাথে নিখুঁত সহাবস্থানে বাস করে। আমি মনে করি না যে ফাংশনাল প্রোগ্রামিং ওওপিকে হত্যা করবে। বিভিন্ন ধরণের সমস্যাযুক্ত ডোমেনের জন্য ওওপি খুব ভাল ফিট, এটি কার্যকরী দৃষ্টান্তের সাথে এটি প্রতিস্থাপন করা বুদ্ধিমান হবে না।
সংক্ষিপ্ত উত্তর: না, আমি এটি মনে করি না।
দীর্ঘ উত্তর: আমি এওপি-র যা বুঝতে পেরেছি তা থেকে এটি নিজের মধ্যে প্রোগ্রামিং দৃষ্টান্ত নয় (যেমন এটি ওওপি প্রতিস্থাপন করে না), তবে আরও একটি সংযোজন, এমন একটি টুলকিট যা আপনাকে ছোট পদ্ধতিগুলি, সহজ, একক-দায়বদ্ধ ক্লাস লিখতে সহায়তা করে , ইত্যাদি। তবে এটি ওওপি প্রতিস্থাপন করে না।
জিনিস যে আছে (অন্তত আংশিকভাবে) প্রতিস্থাপন বা গলি যোগ কার্যকরী প্রোগ্রামিং, যা আসলে হয় হয় একটি ভিন্ন প্রোগ্রামিং দৃষ্টান্ত (যদিও এটা, গলি সঙ্গে মিশ্রিত করা যাবে উদাহরণস্বরূপ Scala প্রোগ্রামিং ভাষা )। এটি অপরিবর্তনীয় ডেটাস্ট্রাকচার এবং সমস্ত ধরণের অভিনব বৈশিষ্ট্য পছন্দ করে যা ওওপি বিকাশকারীদের হতাশায় প্রবণ করে, বিশেষত যখন এটি সম্মতিতে আসে।
ওওপি-র আজকের দিনে কম আলোচনা করা হয়েছে যেহেতু এটি অনেক পরিস্থিতিতে ডি-ফ্যাক্টো অ্যাপ্রোচ হিসাবে ধরে নেওয়া হয়েছে। এওপি কোনও ধরণের গণআন্দোলন হিসাবে কখনই মাঠ থেকে নামেনি।
আমার মনে আছে প্রথমবারের মতো কোনও ওপসলা '97 টিউটোরিয়ালে বসে অ্যাস্পেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের কথা শুনেছি। তারা বলেছিল যে এটি তখন ওওকে হত্যা করবে। সেই থেকে, ওও কেবলমাত্র বন্য প্রত্যাশা ছাড়িয়ে গেছে। এওপি, কমপিউটিং শিল্পে মূলত কোনও প্রভাব নিয়ে সবেমাত্র পরিচিত। আমি মনে করি উত্তরটি সুস্পষ্ট যে এওপি কোনও ওও হত্যাকারী নয়।
কিছু বিদ্যমান এওপি সিস্টেম দেখুন। তারা আপনার কোনও আকারে কিছু কোড লিখিত থাকার উপর নির্ভর করে - উদাহরণস্বরূপ, স্প্রিং এওপি আপনার ক্লাসে আপনার পদ্ধতিগুলি সংজ্ঞায়িত করার উপর নির্ভর করে। ক্যাসেল উইন্ডসর এটি সি # তে সমর্থন করে যা একটি অবজেক্ট ওরিয়েন্টেড ভাষা।
আপনি তাত্ত্বিকভাবে ওওপি থেকে কাঠামোগত প্রোগ্রামিংয়ে স্যুইচ করতে পারেন এবং এখনও এওপি রাখতে পারেন, তবে বাস্তবে এটি কঠিন হবে। কোনও কিছু সাবক্লাস করা সহজ, ফিল্টারগুলির আগে / পরে যথাযথ কল করার জন্য প্রাসঙ্গিক পদ্ধতিটিকে ওভাররাইড করুন এবং নির্ভরতা ইনজেকশন প্রক্রিয়ায় এটি পাস করুন।
ব্যবহারকারী-সংজ্ঞায়িত ফিল্টারগুলিকে কল করার জন্য ট্রাম্পোলিন পদ্ধতিতে রুট করতে স্থির পদ্ধতি কলগুলি পুনরায় লেখার তুলনায় এটি রক্তাক্ত শক্ত।
সুতরাং সাধারণ প্রয়োগের দৃষ্টিকোণ থেকে, এওপি-র জন্য ওওপি প্রয়োজন।
যদিও ওওপি অবশ্যই রূপালী বুলেট নয়, তবে এওপি-র ক্ষেত্রেও একই কথা বলা যেতে পারে। এটি উপাদান ভিত্তিক নকশাকে সমর্থন করে, তবে গ্র্যান্ডার স্কিমে আপনার উপাদানগুলি নতুন অবজেক্ট এবং উপাদান ইন্টারফেসগুলি মূলত পদ্ধতির একটি লেনদেনের তালিকা, যা সত্য ওওপি নয়।
আরও এওপি এবং উপাদান ভিত্তিক ডিজাইন একটি অ্যানেমিক ডেটা মডেলকে সমর্থন করে, যা আমার চেয়ে সমালোচিত লোকদের সমালোচনা করে।
http://martinfowler.com/bliki/AnemicDomainModel.html
(আমি জানি উপরের নিবন্ধটি পুরানো, তবে আশ্চর্যের সাথে প্রাসঙ্গিক)
মূল কথাটি হ'ল এওপি সিস্টেমগুলি এখানে থাকার জন্য রয়েছে তবে এগুলি যথাযথ থেকেও দূরে। কোন সিস্টেম নিখুঁত।