'সংযুক্তিতে কম এবং সংহতিতে কম' এর অর্থ কী


151

বিবৃতিটি বুঝতে আমার সমস্যা হচ্ছে low in coupling and high in cohesion। আমি এটি সম্পর্কে গুগল করেছি এবং পড়েছি, তবে এখনও এটি বুঝতে অসুবিধা হচ্ছে।

আমি যা বুঝি তার High cohesionঅর্থ হ'ল আমাদের এমন ক্লাস থাকা উচিত যা একটি বিশেষ ফাংশন সম্পাদন করার জন্য বিশেষীযুক্ত। আশা করি এটি ঠিক আছে? ক্রেডিট কার্ড যাচাইকরণ শ্রেণীর মতো, যা কেবলমাত্র ক্রেডিট কার্ডকে বৈধতা দেওয়ার জন্য বিশেষজ্ঞ specialized

এবং এখনও বুঝতে পারছেন না কম কাপলিংয়ের অর্থ কী?


4
আরও বিশদ ব্যাখ্যার জন্য, আপনি এই পোস্টের উত্তরটি পছন্দ করতে পারেন সংহতি এবং সংযোগ
অনন্ত

এই উত্তরটি অবশ্যই এখানে আরও দেওয়া ভাল এবং সংক্ষিপ্ত।
লোকেশ

আসলে, এটি তাদের সদৃশ। অনন্ত দ্বারা উত্তর হ'ল এখানে এখন পর্যন্ত উল্লেখ করা হয়নি এমন একমাত্র নন-অনুলিপি।
cellepo

উত্তর:


232

আমি যা বিশ্বাস করি তা হ'ল:

একাত্মতা বলতে বোঝায় যে কোনও মডিউল / শ্রেণীর উপাদানগুলি এক সাথে সম্পর্কিত, এটি প্রস্তাবিত যে কোডটি একে অপরের নিকটবর্তী হওয়া উচিত, সুতরাং আমাদের উচ্চ সংহতির জন্য চেষ্টা করা উচিত এবং যতটা সম্ভব সম্ভব সমস্ত সম্পর্কিত কোডকে একত্রে আবদ্ধ করা উচিত। এটি মডিউল / শ্রেণীর মধ্যে থাকা উপাদানগুলির সাথে সম্পর্কিত ।

কাপলিং বলতে বিভিন্ন ডিগ্রি / ক্লাসগুলি একে অপরের উপর নির্ভর করে এমন ডিগ্রি বোঝায়, এটি প্রস্তাবিত যে সমস্ত মডিউল যতদূর সম্ভব স্বতন্ত্র হওয়া উচিত, এজন্যই কম সংযোগ। এটি বিভিন্ন মডিউল / শ্রেণীর মধ্যে উপাদানগুলির সাথে কাজ করে ।

পুরো চিত্রটি কল্পনা করা সহায়ক হবে:

এখানে চিত্র বর্ণনা লিখুন

স্ক্রিনশটটি নেওয়া হয়েছিল কুরসেরা থেকে ।


20
আমাদের অধ্যাপক বলেছেন "উচ্চ সংহতি নিশ্চিত করা মডিউলটি অনেক কিছু না করে তা নিশ্চিত করার বিষয়ে, এটি কেবল একটি নির্দিষ্ট কাজ করার জন্য বোঝানো হয়"।
লোকেশ

2
আমি যা বিশ্বাস করি তা থেকে এটি আরও অনেকটা "একটি মডিউল একটি কাজ করে তা নিশ্চিত করে তোলে, অনেকগুলি মডিউল একই কাজ করে না", এর মাধ্যমে আপনি নিশ্চিত করতে পারেন যে কেবল একটি একক মডিউল আচরণটি নির্দিষ্ট করে, তাই কোনও জিনিসের সামগ্রিক আচরণ সম্মতিযুক্ত।
sschras

5
@ লোকেশ আমার মনে হয় আপনার মন্তব্যগুলি বিষয়গুলিকে বিশৃঙ্খলা করে। আপনার অধ্যাপক "একক দায়িত্বের নীতি" দিয়ে উচ্চ সংহতিকে বিভ্রান্ত করছেন। উচ্চ সংহতি মানে অনুরূপ এবং সম্পর্কিত জিনিস একসাথে রাখা। আপনার কোনও অবজেক্ট বা একটি পরিষেবাদিতে উচ্চ সংহতি থাকতে পারে যা অনেকগুলি ফাংশন নিয়ে গঠিত।
ম্যাক্স হজস

17
এই চিত্রটি আক্ষরিক অর্থে কিছুই নয়।
লিয়াম

1
মাইক্রো-সার্ভিস আর্কিটেকচারের মেয়াদে উচ্চ সংহতির অর্থ হ'ল দৃ strongly়ভাবে সম্পর্কিত জিনিসগুলি একটি মাইক্রো-সার্ভিসে একসাথে রাখা উচিত এবং আলগা সংযোগের অর্থ একটি মাইক্রো-পরিষেবা নিজেই সীমান্ত প্রসঙ্গে কাজ করার জন্য সূক্ষ্মভাবে তৈরি হওয়া উচিত অর্থাৎ একটি জিনিস স্বাধীনভাবে করা উচিত।
পরিত্যক্ত

41

সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ের একাত্মতা , বাস্তব জীবনের মতোই, সামগ্রিকভাবে গঠিত উপাদানগুলি কতটা (আমাদের ক্ষেত্রে বলা যাক একটি শ্রেণি বলা যায়) বলা যেতে পারে যে তারা আসলে একত্রিত। সুতরাং, এটি একটি পরিমাপ যা কোনও সফ্টওয়্যার মডিউলের উত্স কোড দ্বারা প্রকাশিত কার্যকারিতাটির প্রতিটি অংশটি কত দৃ strongly়ভাবে সম্পর্কিত।

ক্লাসের পদ্ধতিগুলি যদি কোনও ব্যক্তিগত বৈশিষ্ট্য ব্যবহার করে তবে ওওর বিবেচনায় সংহতি দেখার এক উপায়।

এখন আলোচনাটি এর চেয়ে বড় তবে হাই কোহশন (বা সংঘের সর্বোত্তম ধরণ - ক্রিয়ামূলক সংহতি) তখন যখন মডিউলের অংশগুলি শ্রেণিবদ্ধ করা হয় কারণ তারা সকলেই মডিউলটির একক সুসংজ্ঞায়িত কার্যে অবদান রাখে।

সহজ কথায় একত্রিত হওয়া, এটিই যে একটি উপাদান (আবার কোনও শ্রেণীর কল্পনা করুন, যদিও তা অপরিহার্য নয়) অন্য একটির অভ্যন্তরীণ কাজগুলি বা অভ্যন্তরীণ উপাদানগুলি সম্পর্কে জানেন, অর্থাৎ এটি অন্য উপাদানটির কতটা জ্ঞান রয়েছে।

লুজ কাপলিং হ'ল একটি সিস্টেম বা নেটওয়ার্কের উপাদানগুলিকে আন্তঃসংযোগ করার একটি পদ্ধতি যাতে এই উপাদানগুলি ব্যবহারিকভাবে সম্ভব কমপক্ষে একটি একে অপরের উপর নির্ভর করে…

আমি এই সম্পর্কে একটি ব্লগ পোস্ট লিখেছি । এটি উদাহরণস্বরূপ ইত্যাদির সাথে এগুলি আরও বিস্তারিতভাবে আলোচনা করে It কেন আপনাকে এই নীতিগুলি অনুসরণ করা উচিত তার সুবিধাগুলিও ব্যাখ্যা করে।


26

সফ্টওয়্যার ডিজাইনে উচ্চ সংহতি মানে শ্রেণীর একটি জিনিস এবং একটি জিনিস খুব ভাল করা উচিত। উচ্চ সামঞ্জস্য একক দায়িত্বের নীতিটির সাথে নিবিড়ভাবে সম্পর্কিত ।

কম সংযোগের পরামর্শ দেয় যে শ্রেণীর কমপক্ষে সম্ভাব্য নির্ভরতা থাকা উচিত। এছাড়াও, নির্ভরশীলতাগুলির অবশ্যই উপস্থিতি দুর্বল নির্ভরতা হওয়া উচিত - কংক্রিট বর্গের উপর নির্ভরতার চেয়ে ইন্টারফেসের উপর নির্ভরতা পছন্দ করুন, বা উত্তরাধিকারের চেয়ে রচনা পছন্দ করুন।

হাই কোহশন এবং লো কাপলিং আমাদের আরও ভাল ডিজাইনের কোড দেয় যা বজায় রাখা সহজ।


আপনি নির্ভরতা ইনজেকশন মিস করেছেন। কোনও শ্রেণীর ন্যূনতম / কোনও নির্ভরতা নেই তা নিশ্চিত করতে এটি কম সংযোগের সাথে নিবিড়ভাবে সম্পর্কিত।
বাগহান্টরুক

16

সংক্ষিপ্ত এবং স্পষ্ট উত্তর

  • উচ্চ সংহতি : এক শ্রেণি / মডিউলের মধ্যে উপাদানগুলি কার্যকরীভাবে একত্রিত হওয়া উচিত এবং একটি নির্দিষ্ট কাজ করা উচিত।
  • আলগা সংযোগ : বিভিন্ন শ্রেণি / মডিউলগুলির মধ্যে ন্যূনতম নির্ভরতা হওয়া উচিত।

9

লো সংযুক্তি দুটি বা অনেকগুলি মডিউলের প্রসঙ্গে। যদি কোনও মডিউলের পরিবর্তনের ফলে অন্যান্য মডিউলে অনেকগুলি পরিবর্তন আসে তবে সেগুলিকে অত্যন্ত মিলিত বলা হয়। এটি যেখানে ইন্টারফেস ভিত্তিক প্রোগ্রামিং সহায়তা করে। মডিউলটির মধ্যে থাকা যে কোনও পরিবর্তন অন্য মডিউলে প্রভাব ফেলবে না কারণ তাদের মধ্যে ইন্টারফেস (ইন্টারঅ্যাকশনর মাধ্যম) পরিবর্তন হয়নি।

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

আশা করি এইটি কাজ করবে.


5

লম্বা গল্পের সংক্ষিপ্ত, নিম্ন সংশ্লেষটি বোঝার সাথে সাথে বোঝা গেল যে কোনও সিস্টেমের যথাযথ কার্যকারিতা প্রভাবিত না করেই উপাদানগুলি সরিয়ে নেওয়া যেতে পারে। বেসিক্যালি আপনার সিস্টেমকে কার্যকারী উপাদানগুলিতে রূপান্তরিত করে যা সিস্টেমটি না ভেঙে পৃথকভাবে আপডেট করা যেতে পারে


1
এটি কি হাই কোহেন্সের মতো নয়?
ব্যবহারকারী 1315906

4

আপনার কি স্মার্ট ফোন আছে? একটি বড় অ্যাপ্লিকেশন বা ছোট প্রচুর আছে? একটি অ্যাপ্লিকেশন কি অন্যটির উত্তর দেয়? ইনস্টল, আপডেট এবং / অথবা অন্যটিকে আনইনস্টল করার সময় আপনি কি একটি অ্যাপ্লিকেশন ব্যবহার করতে পারেন? প্রতিটি অ্যাপ্লিকেশন স্বয়ংসম্পূর্ণ যা উচ্চ সংহতি। প্রতিটি অ্যাপ্লিকেশন অন্যদের থেকে স্বতন্ত্র যে কম সংযুক্ত is ডিভোপস এই আর্কিটেকচারের পক্ষে, কারণ এর অর্থ আপনি পুরো সিস্টেমটিকে ব্যাহত না করেই বিভিন্ন ধরণের নিরবচ্ছিন্ন স্থাপনা করতে পারেন।


> একটি অ্যাপ্লিকেশন কি অন্যটির উত্তর দেয়? । । হ্যাঁ, কিছু না। অনেক অ্যাপ্লিকেশন ক্যামেরা অ্যাপ্লিকেশন ব্যবহার করে, ওয়ার্কআউট অ্যাপ্লিকেশন দ্বারা স্বাস্থ্য এবং ক্রিয়াকলাপগুলিতে হার্ট এবং ওয়ার্কআউট ডেটা ফিড করে। আমি অন্য একটি অ্যাপ্লিকেশন থেকে একটি স্নিপেট ভাগ করতে পারি। আমার অ্যালার্ম অ্যাপটি সময়টি জানে এবং মিউজিক অ্যাপ্লিকেশন থেকে একটি ট্র্যাক খেলুন ...
ম্যাক্স হজস

@ ম্যাক্সহজস সেই জিনিসটিকে (নিম্ন সংহতি এবং উচ্চ সংযুক্তি) অবমূল্যায়ন করা হয়েছে এবং কমপক্ষে সম্ভব হ্রাস করা উচিত। কিছু ক্ষেত্রে যেমন আপনি উল্লেখ করেছেন। এটি পুরোপুরি সরানো যাবে না cannot
এম হাবিব

2

উত্তরাধিকার বা জেনারেলাইজেশন উচ্চ সংযুক্তির উদাহরণ (যেমন উচ্চ আন্তঃনির্ভরশীলতা)। আমি এর দ্বারা যা বোঝাতে চেয়েছি তা হ'ল উত্তরাধিকার সূত্রে অভিভাবক শ্রেণি প্রায়শই মূল কার্যকারিতা সংজ্ঞায়িত করে যা তার শিশু শ্রেণি দ্বারা ব্যবহৃত হয় এবং পিতাম শ্রেণীর পদ্ধতির পরিবর্তনগুলি সরাসরি তার শিশু শ্রেণিকে প্রভাবিত করে। সুতরাং আমরা বলতে পারি যে ক্লাসগুলির মধ্যে আন্তঃনির্ভরতার বৃহত্তর ডিগ্রি রয়েছে।

উপলব্ধি বা ইন্টারফেস ব্যবহার উচ্চ সংযুক্তির উদাহরণ (যেমন স্বল্প আন্তঃনির্ভরতা)। এর অর্থ হ'ল ইন্টারফেসটি যে কোনও শ্রেণীর জন্য একটি চুক্তি পেশ করে যা এটি প্রয়োগ করে তবে প্রতিটি শ্রেণীর নিজস্ব পদ্ধতিতে ইন্টারফেসে ঘোষিত পদ্ধতিগুলি প্রয়োগ করার অধিকার রয়েছে এবং এক শ্রেণিতে ঘোষিত পদ্ধতিতে পরিবর্তনগুলি অন্য কোনও শ্রেণিকে প্রভাবিত করে না।


2

একাত্মতা - সবকিছু একে অপরের সাথে কতটা ঘনিষ্ঠভাবে সম্পর্কিত।
সংযোজন - কীভাবে সবকিছু একে অপরের সাথে সংযুক্ত থাকে।

আসুন একটি উদাহরণ নেওয়া যাক - আমরা একটি স্ব-ড্রাইভিং কার ডিজাইন করতে চাই।

(1) সঠিকভাবে চালনার জন্য আমাদের মোটর প্রয়োজন।

(২) গাড়িটি গাড়ি চালানোর জন্য আমাদের গাড়ি প্রয়োজন।

(1) এর সমস্ত ক্লাস এবং ফাংশন মোটর শুরু করে এটিকে একসাথে দুর্দান্তভাবে চালিত করে তোলে তবে গাড়ী চালককে সহায়তা করবেন না। সুতরাং আমরা এই শ্রেণিগুলিকে একটি ইঞ্জিন নিয়ন্ত্রকের পিছনে রাখি।

(2) এর সমস্ত শ্রেণি এবং ক্রিয়াকলাপ গাড়ি চালিত করতে, ত্বরান্বিত করতে এবং ব্রেক করতে দুর্দান্ত কাজ করে। তারা পিস্টনগুলিতে গাড়ি শুরু করতে বা পেট্রল পাঠাতে সহায়তা করে না। সুতরাং আমরা এই ক্লাসগুলি তার নিজস্ব ড্রাইভিং কন্ট্রোলারের পিছনে রাখি।

এই কন্ট্রোলারগুলি উপলব্ধ ক্লাস এবং ফাংশনগুলির সাথে যোগাযোগের জন্য ব্যবহৃত হয়। নিয়ন্ত্রণকারীরা তখন একে অপরের সাথে যোগাযোগ করে। এর অর্থ গাড়িটি দ্রুততর করার জন্য আমি পিডন ক্লাসে গ্যাস প্যাডেল ক্লাস থেকে কোনও ফাংশন কল করতে পারি না।

প্যাডেল ক্লাসটি ড্রাইভিং কন্ট্রোলারকে ইঞ্জিন কন্ট্রোলারের সাথে কথা বলতে বলতে হয় যা পিস্টন শ্রেণিকে দ্রুত যেতে বলে। এটি আমাদের প্রোগ্রামারদের সমস্যাগুলি সন্ধান করতে সক্ষম হতে দেয় এবং আমাদের উদ্বেগ ছাড়াই বড় প্রোগ্রামগুলি একত্রিত করার অনুমতি দেয়। কারণ কোডটি সমস্ত নিয়ামকের পিছনে কাজ করে।


1

লো সংযুক্তি এবং উচ্চ সংহতি একটি প্রস্তাবিত ঘটনা।

কাপলিংয়ের অর্থ বিভিন্ন মডিউলগুলি কতটা পারস্পরিক নির্ভরশীল এবং মডিউলটির কিছু / যথেষ্ট কার্যকারিতা পরিবর্তনের ক্ষেত্রে অন্যান্য মডিউলগুলি কীভাবে প্রভাবিত হয়। নিম্ন মিলনকে জোর দেওয়া হয় কারণ নির্ভরতা কম বজায় রাখতে হয় যাতে অন্যান্য মডিউলগুলিতে খুব কম / অবহেলিত পরিবর্তন হয়।


1

একটি উদাহরণ সহায়ক হতে পারে। এমন কোনও সিস্টেমের কল্পনা করুন যা ডেটা উত্পন্ন করে এবং এটি একটি ডেটা স্টোরের মধ্যে রাখে, হয় ডিস্কে একটি ফাইল বা একটি ডাটাবেস।

ডেটা প্রোডাকশন কোড থেকে ডেটা স্টোর কোড পৃথক করে উচ্চ সংহতি অর্জন করা যায়। (এবং প্রকৃতপক্ষে ডাটাবেস স্টোরেজ থেকে ডিস্ক স্টোরেজ পৃথক করে)।

ডেটা প্রোডাক্টের ডেটা স্টোর সম্পর্কিত কোনও অপ্রয়োজনীয় জ্ঞান নেই (তা যেমন ফাইলের নাম বা ডিবি সংযোগ সম্পর্কে ডেটা স্টোরকে জিজ্ঞাসা করে না) তা নিশ্চিত করে লো কাপলিং অর্জন করা যায়।


1

এখানে কিছু বিমূর্ত, গ্রাফ তাত্ত্বিক কোণ থেকে একটি উত্তর দেওয়া হয়েছে:

আসুন রাষ্ট্রীয় অবজেক্টগুলির মধ্যে নির্ভরশীলতা গ্রাফগুলি কেবল (নির্দেশিত) দেখে সমস্যাটি সহজ করুন।

নির্ভরতা গ্রাফের দুটি সীমিত ক্ষেত্রে বিবেচনা করে একটি অত্যন্ত সাধারণ উত্তর চিত্রিত করা যেতে পারে :

প্রথম সীমাবদ্ধ কেস : একটি ক্লাস্টার গ্রাফ

একটি ক্লাস্টার গ্রাফ একটি উচ্চ সংহতি এবং কম সংশ্লেষ (ক্লাস্টারের আকারের একটি সেট দেওয়া) নির্ভরতা গ্রাফের সবচেয়ে নিখুঁত উপলব্ধি।

ক্লাস্টারগুলির মধ্যে নির্ভরতা সর্বাধিক (সম্পূর্ণ সংযুক্ত) এবং আন্ত ক্লাস্টারের নির্ভরতা ন্যূনতম (শূন্য)।

এটি সীমিত ক্ষেত্রেগুলির একটিতে উত্তরের একটি বিমূর্ত চিত্র ।

২ য় সীমাবদ্ধ কেস একটি সম্পূর্ণ সংযুক্ত গ্রাফ, যেখানে সবকিছুই নির্ভর করে on

বাস্তবতা আমার কোথাও কোথাও, ক্লাস্টার গ্রাফের আরও কাছাকাছি, আমার নম্র বোঝায়।

অন্য দৃষ্টিকোণ থেকে : একটি নির্দেশিত নির্ভরতা গ্রাফের দিকে তাকানোর সময়, আদর্শভাবে এটি অ্যাসাইক্লিক হওয়া উচিত, যদি তা না হয় তবে চক্রগুলি সবচেয়ে ছোট ক্লাস্টার / উপাদানগুলি গঠন করে।

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

শ্রেণিবিন্যাসের সিস্টেমের এই জাতীয় ক্ষয়টি তাত্পর্যপূর্ণ জটিলতা বোধ করতে সহায়তা করে (বলুন যে প্রতিটি ক্লাস্টারে 10 টি উপাদান রয়েছে)। তারপরে 6 স্তরে এটি ইতিমধ্যে 1 মিলিয়ন অবজেক্ট:

10 টি ক্লাস্টারগুলি 1 সুপারক্লাস্টার গঠন করে, 10 সুপারক্লাস্টারগুলি 1 হাইপারক্র্লাস্টার গঠন করে এবং আরও অনেক কিছু ... শক্ত সংহতি, আলগা সংযোগের ধারণা ব্যতীত এ জাতীয় শ্রেণিবিন্যাস সম্ভব হবে না architect

সুতরাং এটি গল্পের আসল গুরুত্ব হতে পারে এবং কেবলমাত্র দুটি স্তরের মধ্যে কম সংযুক্তি কম সংযোগ নয়। উচ্চ স্তরের বিমূর্ততা এবং তাদের মিথস্ক্রিয়া বিবেচনা করে প্রকৃত গুরুত্ব স্পষ্ট হয়ে যায়।


0

আমার মনে হয় আপনার অনেকগুলি সংজ্ঞা লাল হয়েছে তবে আপনি যদি এখনও সন্দেহ করেন বা যদি আপনি প্রোগ্রামিংয়ে নতুন হন এবং আপনি আরও গভীরভাবে যেতে চান তবে আমি আপনাকে এই ভিডিওটি দেখার পরামর্শ দেব, https://youtu.be/HpJTGW9AwX0 পলিমারফিজম সম্পর্কে আরও তথ্য পাওয়ার জন্য এটি কেবলমাত্র রেফারেন্স ... আশা করি আপনি এটির সাথে আরও ভাল করে বুঝতে পারবেন


0

লো সংযুক্তি: - এটি খুব সহজ রাখবে। আপনি যদি নিজের মডিউলটি পরিবর্তন করেন তবে এটি অন্যান্য মডিউলগুলিকে কীভাবে প্রভাবিত করে।

উদাহরণ: - যদি আপনার পরিষেবা এপিআই জেআর হিসাবে প্রকাশিত হয় তবে পদ্ধতি স্বাক্ষরে কোনও পরিবর্তন কলিং এপিআই (উচ্চ / আঁটসাঁট মিলন) কেটে ফেলবে।

আপনার মডিউল এবং অন্যান্য মডিউল যদি অ্যাসিঙ্ক বার্তাগুলির মাধ্যমে যোগাযোগ করে। যতক্ষণ আপনি বার্তা পাবেন ততক্ষণ আপনার পদ্ধতি পরিবর্তন স্বাক্ষরটি আপনার মডিউলে স্থানীয় হবে (লো সংযোগ)।

অফ-কোর্স যদি মেসেজ ফর্ম্যাটে পরিবর্তন হয়, কলিং ক্লায়েন্টকে কিছুটা পরিবর্তন করা দরকার।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.