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