সংহত শব্দটি মূলত মডিউলটির উত্স কোড একে অপরের সাথে কীভাবে সম্পর্কিত তার গুণগত পরিমাপ হিসাবে উত্স কোডের মডিউলগুলি বর্ণনা করতে ব্যবহৃত হয়েছিল। একত্রিত করার ধারণাটি বিভিন্ন ক্ষেত্রে ব্যবহৃত হয়। উদাহরণস্বরূপ, সামরিক ইউনিটের মতো একদল লোক সম্মিলিত হতে পারে, যার অর্থ ইউনিটের লোকজন একসাথে একটি সাধারণ লক্ষ্যের জন্য কাজ করে।
উত্স কোড সংহতির সারমর্মটি হ'ল মডিউলটির উত্স কোডটি একটি সাধারণ, ভাল সংজ্ঞায়িত লক্ষ্যের দিকে একত্রে কাজ করে। মডিউল আউটপুটগুলি তৈরি করতে প্রয়োজনীয় নূন্যতম পরিমাণের কোডটি মডিউলে রয়েছে এবং আরও কিছু নয়। ইন্টারফেসটি সুস্পষ্টভাবে সংজ্ঞায়িত করা হয়েছে এবং ইনপুটগুলি ইন্টারফেসের মাধ্যমে প্রবাহিত হয় এবং ইন্টারফেসের মাধ্যমে আউটপুটগুলি আবার প্রবাহিত হয়। কোনও পার্শ্ব প্রতিক্রিয়া নেই এবং জোরটি ন্যূনতমতার উপর রয়েছে।
কার্যকরীভাবে সমন্বিত মডিউলগুলির একটি সুবিধা হ'ল ইউনিট পরীক্ষাগুলি বিকাশ এবং স্বয়ংক্রিয়করণ সোজা straight প্রকৃতপক্ষে মডিউলটির একাত্মতার একটি ভাল পরিমাপ হল মডিউলটির জন্য সম্পূর্ণ ইউনিট পরীক্ষার সম্পূর্ণ সেট তৈরি করা কত সহজ easy
মডিউল কোনও অবজেক্ট ওরিয়েন্টেড ল্যাঙ্গুয়েজে কোনও ক্লাস বা কোনও ফাংশনাল ল্যাংগুয়েজ বা নন-অবজেক্ট ওরিয়েন্টেড ল্যাংগুয়েজ যেমন সি এর মতো মূল কাজটির বেশিরভাগ অংশই আইবিএম-এর ফিরে কোবোল প্রোগ্রামগুলির সাথে জড়িত কাজটি অন্তর্ভুক্ত করে ১৯ 1970০ এর দশকে সুতরাং সংহতি অবশ্যই কোনও অবজেক্ট ওরিয়েন্টেড ধারণা নয়।
সংঘবদ্ধতার ধারণা এবং সংযুক্তির সম্পর্কিত ধারণাটি যে গবেষণার কাছ থেকে এসেছে সেই গবেষণার মূল অভিপ্রায়টি ছিল কোথায় কোথায় প্রোগ্রামগুলির বৈশিষ্ট্যগুলি যা বুঝতে, বজায় রাখা এবং প্রসারিত করা সহজ ছিল সে সম্পর্কে গবেষণা research লক্ষ্যটি ছিল প্রোগ্রামিংয়ের সর্বোত্তম অনুশীলনগুলি শিখতে, সেই সেরা অনুশীলনের কোডিং করা এবং তারপরে অন্যান্য প্রোগ্রামারগুলিকে অনুশীলনগুলি শেখানো teach
ভাল প্রোগ্রামারদের লক্ষ্য হ'ল উত্স কোডটি লিখুন যার পরিবেশ এবং সমস্যাটি সমাধান হওয়ার কারণে সংযোগ যতটা সম্ভব as এর দ্বারা বোঝা যায় যে একটি বৃহত প্রয়োগে উত্স কোডের প্রধান অংশের কিছু অংশ সেই মডিউল বা শ্রেণীর উত্স কোডের সংহতকরণের স্তর হিসাবে অন্যান্য অংশ থেকে পৃথক হবে। আপনি যে সমস্যার সমাধান করতে চেষ্টা করছেন তার কারণে কিছু সময় সেরা আপনি পেতে পারেন তা সাময়িক বা ক্রমযুক্ত সম্মিলন।
একাত্মতার সেরা স্তর হ'ল কার্যকরী সংহতি। ক্রিয়ামূলক সমন্বয়যুক্ত একটি মডিউল গাণিতিক ফাংশনের অনুরূপ যাতে আপনি ইনপুটগুলির একটি সেট সরবরাহ করেন এবং আপনি একটি নির্দিষ্ট আউটপুট পান। সত্যিকারের ক্রিয়ামূলক মডিউলটির আউটপুট ছাড়াও পার্শ্ব প্রতিক্রিয়া থাকবে না এবং এটি কোনও ধরণের অবস্থাও বজায় রাখতে পারবে না। পরিবর্তে এটিতে একটি সুস্পষ্ট সংজ্ঞাযুক্ত ইন্টারফেস থাকবে যা মডিউলের কোনও ইন্টার্নাল প্রকাশ না করেই মডিউলটির কার্যকারিতা encapsulates এবং মডিউলটি ব্যবহার করা ব্যক্তি একটি নির্দিষ্ট ইনপুট সরবরাহ করবে এবং বিনিময়ে একটি নির্দিষ্ট আউটপুট পাবে। সত্যিকারের কার্যকরী মডিউলটি থ্রেডও নিরাপদ হওয়া উচিত।
অনেক প্রোগ্রামিং ভাষার লাইব্রেরিতে ক্লাস, টেম্পলেট বা ফাংশন কিনা সেগুলি কার্যকরী মডিউলগুলির বেশ কয়েকটি উদাহরণ ধারণ করে। সর্বাধিক কার্যকরী সমন্বয়মূলক উদাহরণগুলি হ'ল গাণিতিক ক্রিয়া যেমন পাপ, কোসাইন, বর্গমূল ইত্যাদি be
অন্যান্য ফাংশনগুলির পার্শ্ব প্রতিক্রিয়া থাকতে পারে বা কোনও ধরণের স্থিতি বজায় রাখতে পারে যার ফলে এই ফাংশনগুলির ব্যবহার আরও জটিল করে তোলে।
উদাহরণস্বরূপ এমন একটি ফাংশন যা একটি ব্যতিক্রম ছুঁড়ে দেয় বা একটি বৈশ্বিক ত্রুটি পরিবর্তনশীল ( errno
সি তে) সেট করে বা অনুক্রমের মধ্যে ব্যবহার করা আবশ্যক ( strtok()
ফাংশনটি স্ট্যান্ডার্ড সি লাইব্রেরি থেকে উদাহরণ হিসাবে এটি অভ্যন্তরীণ অবস্থা বজায় রাখে) বা যা একটি পয়েন্টার সরবরাহ করে যা তখন অবশ্যই পরিচালনা করা হবে বা কিছু লগ ইউটিলিটিতে একটি লগ ইস্যু করা হ'ল সমস্ত ফাংশনের উদাহরণ যা আর কার্যকরী একাত্মতা নয়।
আমি তোমারডন এবং কনস্ট্যান্টাইনের মূল বই স্ট্রাকচার্ড প্রোগ্রামিং উভয়ই পড়েছি, যেখানে আমি প্রথম 1980 এর দশকে মেলির পেজ-জোনসের বইয়ের প্র্যাকটিক্যাল গাইড টু স্ট্রাকচার্ড সিস্টেমস ডিজাইন, এবং পেজ-জোনস বর্ণনা করার ক্ষেত্রে আরও ভাল কাজ করেছি। উভয় সংযোগ এবং সংহতি। থিওরডন এবং কনস্ট্যান্টাইন বইটি কিছুটা বেশি একাডেমিক বলে মনে হচ্ছে। স্টিভ ম্যাককনেলের বই কোড কমপ্লিটটি বেশ ভাল এবং ব্যবহারিক এবং সংশোধিত সংস্করণটিতে ভাল প্রোগ্রামিং অনুশীলন সম্পর্কে কিছুটা বলা যেতে পারে।