ফ্রেমওয়ার্ক এবং লাইব্রেরির মধ্যে পার্থক্য কী? [বন্ধ]


865

ফ্রেমওয়ার্ক এবং লাইব্রেরির মধ্যে পার্থক্য কী ?

আমি সবসময় একটি লাইব্রেরি অবজেক্ট এবং ফাংশনগুলির সেট হিসাবে ভেবেছিলাম যা কোনও নির্দিষ্ট সমস্যা বা অ্যাপ্লিকেশন বিকাশের একটি নির্দিষ্ট ক্ষেত্রের (যেমন ডাটাবেস অ্যাক্সেস) সমাধান করার দিকে দৃষ্টি নিবদ্ধ করে; এবং অন্যদিকে কাঠামোগত একটি নির্দিষ্ট পদ্ধতিতে (যেমন এমভিসি) কেন্দ্রিক গ্রন্থাগারগুলির সংগ্রহ হিসাবে এবং অ্যাপ্লিকেশন বিকাশের সমস্ত ক্ষেত্রকে কভার করে।


18
@ ভিবা 4 সব: এটি যখন সদৃশ জিজ্ঞাসা করা হয়েছিল তখন এটি কীভাবে হতে পারে?
নুব সাইবোট

5
এটি প্রথম তৈরি করা হয়েছিল বলে এর অর্থ এটি কোনও সদৃশ নয়;) এটি কেবল নকল / অত্যন্ত অনুরূপ প্রশ্নগুলি সনাক্তকরণ এবং সম্পদ / উত্তরগুলি ভাগ করা নিশ্চিত করা (এবং সর্বাধিক সক্রিয় / সর্বোত্তম উত্তরের প্রশ্ন উন্মুক্ত)
গ্রেডফক্স


3
@ টুপল_ক্যাটটি আসলে আপনার লিঙ্কটি সদৃশ বলে মনে হচ্ছে: এটির পরে জিজ্ঞাসা করা হয়েছিল
ছারভে

1
আমাদের কিছু কার্যকারিতা দরকার, আমরা লাইব্রেরি কল করি। আমাদের কিছু কার্যকারিতা দরকার আমরা ফ্রেমওয়ার্ক এবং ফ্রেমওয়ার্ককে আমাদের কোড (যেমন ইউআইকিট) কল করি help
কমলেশ্বর

উত্তর:


350

প্রকৃতপক্ষে এই পদগুলির ব্যবহার করা হচ্ছে প্রসঙ্গের উপর নির্ভর করে প্রচুর ভিন্ন ভিন্ন জিনিস বোঝাতে পারে।

উদাহরণস্বরূপ, ম্যাক ওএস এক্স ফ্রেমওয়ার্কগুলিতে কেবল লাইব্রেরি রয়েছে, একটি বান্ডিলের মধ্যে প্যাক করা। বান্ডেলের মধ্যে আপনি একটি আসল গতিশীল লাইব্রেরি পাবেন (libW વ્হস.ডিলিব)। খালি লাইব্রেরি এবং ম্যাকের কাঠামোর মধ্যে পার্থক্য হ'ল একটি কাঠামোর লাইব্রেরির একাধিক বিভিন্ন সংস্করণ থাকতে পারে। এতে অতিরিক্ত সংস্থান থাকতে পারে (চিত্রগুলি, স্থানীয়ীকৃত স্ট্রিংগুলি, এক্সএমএল ডেটা ফাইলগুলি, ইউআই অবজেক্টস ইত্যাদি) এবং যদি ফ্রেমওয়ার্কটি সর্বজনীনভাবে প্রকাশ না করা হয় তবে এটিতে সাধারণত লাইব্রেরিটি ব্যবহার করার জন্য আপনার প্রয়োজনীয় প্রয়োজনীয় .h ফাইলগুলি থাকতে পারে।

সুতরাং আপনার একক প্যাকেজের মধ্যে আপনার সমস্ত কিছু রয়েছে আপনার অ্যাপ্লিকেশনটিতে লাইব্রেরিটি ব্যবহার করার দরকার (একটি সি / সি ++ / উদ্দেশ্য-সি লাইব্রেরি .h ফাইলগুলি ব্যতীত আপনি যদি কিছু লাইব্রেরির ডকুমেন্টেশন অনুযায়ী নিজেকে না লিখে থাকেন তবে এটি বেশ অকেজো) গুচ্ছ ফাইলগুলি ঘুরে দেখার জন্য (ম্যাক বান্ডেলটি ইউনিক্স স্তরের একটি ডিরেক্টরি মাত্র, তবে ইউআই এটি একক ফাইলের মতো আচরণ করে, আপনার জাভাতে জার ফাইল রয়েছে এবং আপনি যখন এটি ক্লিক করেন, আপনি সাধারণত দেখতে পাবেন না ভিতরে কী রয়েছে, যদি না আপনি স্পষ্টভাবে সামগ্রীটি দেখানোর জন্য নির্বাচন করেন)।

উইকিপিডিয়া ফ্রেমওয়ার্ককে একটি "বাজওয়ার্ড" বলে। এটি হিসাবে একটি সফ্টওয়্যার কাঠামো সংজ্ঞায়িত

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

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

একটি কাঠামো অ্যাপ্লিকেশন বিকাশে আপনি যে ব্যবহার করেন তা হতে পারে। এটি একটি গ্রন্থাগার, অনেক লাইব্রেরির সংগ্রহ, স্ক্রিপ্টগুলির সংগ্রহ বা আপনার অ্যাপ্লিকেশন তৈরি করতে আপনার যে কোনও সফ্টওয়্যারের প্রয়োজন হতে পারে। ফ্রেমওয়ার্ক কেবল একটি খুব অস্পষ্ট শব্দ।

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


2
মজার বিষয় যে ২০০৮ সালে উইকিপিডিয়ায় নিবন্ধ "ফ্রেমওয়ার্ক "টিকে" বুজওয়ার্ড "হিসাবে বর্ণনা করেছিল।
জেব্রাফিশ

2
আইএমও, একটি কাঠামো হ'ল "ফাঁকা" প্রকল্পের পরিবেশ।
কুলভর

514

একটি গ্রন্থাগার সুনির্দিষ্ট, সংজ্ঞায়িত ক্রিয়াকলাপ সম্পাদন করে।

একটি কাঠামো হ'ল একটি কঙ্কাল যেখানে অ্যাপ্লিকেশন কঙ্কালটি পূরণ করে ক্রিয়াকলাপের "মাংস" সংজ্ঞায়িত করে। কঙ্কালটির এখনও অংশগুলি লিঙ্ক করার কোড রয়েছে তবে সর্বাধিক গুরুত্বপূর্ণ কাজটি অ্যাপ্লিকেশন দ্বারা করা হয়।

গ্রন্থাগারের উদাহরণ: নেটওয়ার্ক প্রোটোকল, সংক্ষেপণ, চিত্রের ম্যানিপুলেশন, স্ট্রিং ইউটিলিটিস, নিয়মিত প্রকাশের মূল্যায়ন, গণিত। অপারেশনগুলি স্বয়ংসম্পূর্ণ।

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


10
বাস্তব উদাহরণগুলির জন্য +1। বিটিডব্লিউ, আপনি "ওয়েব অ্যাপ্লিকেশন সিস্টেম" বলতে কী বোঝাতে চান তা বোঝাতে কি আপত্তি আছে?
পেসারিয়ার

3
@ পেসারিয়র সম্ভবত এমন কিছু যা আপনাকে একটি সম্পূর্ণ ওয়েব অ্যাপ্লিকেশন তৈরি করতে দেয়, যেমন নূবি.এসএস এর জন্য রুবির জন্য সেলস এবং সেলস like
গুস্তাভোহেঙ্কে

চমৎকার উত্তর. আপনি কি আইওএস ফ্রেমওয়ার্ক এবং লাইব্রেরি সম্পর্কিত আরও কিছু উদাহরণ দিতে পারেন?
এনএসপ্র্যাটিক

বা জাজানো, সময়সীমা সহ পারফেকশনিস্টদের ওয়েব ফ্রেমওয়ার্ক।
এয়ারট্রাইক

2
আমি কঙ্কালটি 'মাংস' না দিয়ে 'পেশী' দিয়ে পূর্ণ করার কথা ভাবব। আমি মনে করি এটি আরও সঠিক উপমা কারণ 'পেশী' কঙ্কালের গতিতে সেট করছে।
altgov3en

290

আমি মনে করি যে মূল পার্থক্য হ'ল ফ্রেমওয়ার্কগুলি " হলিউডের নীতি " অনুসরণ করে , অর্থাত "" আমাদের ডাকবেন না, আমরা আপনাকে ডাকব। "

মার্টিন ফাউলারের মতে :

একটি লাইব্রেরি মূলত ফাংশনগুলির একটি সেট যা আপনি কল করতে পারেন, এই দিনগুলিতে সাধারণত শ্রেণিতে ভাগ করা হয়। প্রতিটি কল কিছু কাজ করে এবং ক্লায়েন্টকে নিয়ন্ত্রণ ফিরিয়ে দেয়।

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


2
@ পানোস ব্যাখ্যাটির জন্য আপনাকে ধন্যবাদ, তবে আপনি আরও বিস্তারিতভাবে বলতে পারেন। উদাহরণস্বরূপ, আমি ফেসবুকএসডিকে কাঠামোটি ব্যবহার করছি এবং আমি এই কাঠামো থেকে শ্রেণি পদ্ধতিগুলি কল করছি। ফেসবুকএসডিके কাঠামোটি আমার কোডটিতে এমন কিছু কল করছে না যা আপনার সংজ্ঞার বিপরীত অর্থাৎ "আমাদের ডাকবে না, আমরা আপনাকে ডাকব।"
চার্লস রবার্টসন

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

1
@ পানোস ধন্যবাদ আমার ধারণা স্যুটকেস আইকন যা ফেসবুকএসডিকে উপস্থাপন করে তখন কিছুটা বিভ্রান্তিকর। এবং নাম 'ফেসবুকএসডিকে.ফ্রেমওয়ার্ক'। ফেসবুকের নাম 'ফেসবুকএসডিকে.ইডিলেব' এর মতো করে রাখা উচিত? তবে এটি পরিষ্কার করার জন্য ধন্যবাদ। সঠিক সংজ্ঞাটি কী তা জেনে রাখা ভাল ...
চার্লস রবার্টসন

এটি একটি আকর্ষণীয় সংজ্ঞা। আমি সম্প্রতি d3.js ব্যবহার শুরু করেছি এবং লক্ষ্য করেছি যে এটি সাধারণত একটি কাঠামো হিসাবে বিবেচিত হয়। তবে আমি যাই লিখি না কেন D3 কোড একটি সাধারণ জাভাস্ক্রিপ্ট কোডের মধ্যে তাই আমি এই সংজ্ঞাটি ডি 3-তে প্রসারিত করতে অক্ষম।
দিলিপ কুমার পাচিগোল্লা

1
@ দিলিপ ডি 3.জেএস এর হোমপেজটি প্রথম বাক্যে বলেছে: "D3.js ডেটা ভিত্তিক ডকুমেন্টগুলি চালিত করার জন্য একটি জাভাস্ক্রিপ্ট লাইব্রেরি" " আমি মনে করি এটি একটি কাঠামো হিসাবে বিবেচনা করা ভুল।
পানোস

243

আপনি লাইব্রেরি কল।

ফ্রেমওয়ার্ক আপনাকে কল করে।


書館 助 け
足 場 が 痛 い
多 く の 涙 涙


12
আপনি একটি হাইকু হিসাবে এটি চুল্লি করতে পারেন?
ডেরেক টোমস

18
@ ডেরেকটমস বিটিডাব্লু: আমি হাইকু ফর্মটি যুক্ত করেছি।
ইয়ান বয়ড

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

27
দেখতে ভাল যে কোনও মোড প্রথম দুটি মন্তব্য মুছে ফেলেছে। এখন এটি বোঝা যায় যে জাপানী পাঠ্যটি কেন যুক্ত করা হয়েছিল (এটি একটি রসিকতা হিসাবে অনুরোধ করা হয়েছিল) এবং এটি অনুবাদ করার চেষ্টা ছিল, এবং আসল জনপ্রিয় জাপানি কবিতা নয়।
জ্যানন

9
সোভিয়েত রাশিয়ায় ফ্রেমওয়ার্ক আপনাকে কল করে।
রবার্ট মুর

242

লাইব্রেরী:

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

ফ্রেমওয়ার্ক:

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

গ্রন্থাগার, ফ্রেমওয়ার্ক এবং আপনার কোড চিত্র উপস্থাপনা:

গ্রন্থাগার, ফ্রেমওয়ার্ক এবং আপনার কোড চিত্র সম্পর্কিত relation

KeyDifference:

একটি লাইব্রেরি এবং একটি কাঠামোর মধ্যে মূল পার্থক্য হ'ল "নিয়ন্ত্রণের বিপরীতমুখী" । আপনি যখন কোনও লাইব্রেরি থেকে কোনও পদ্ধতি কল করেন তখন আপনি নিয়ন্ত্রণে থাকেন। তবে একটি কাঠামোর সাহায্যে নিয়ন্ত্রণটি উল্টে যায়: ফ্রেমওয়ার্ক আপনাকে কল করেসূত্র.

রিলেশন:

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


14
নিয়ন্ত্রণের বিপরীতমুখী দুর্দান্ত গভীরতার ব্যাখ্যা!
প্যাট্রিসিয়া

3
ছবিটির মতো, এটি খুব সহজেই অঙ্কিত হয় এবং কেন কিছু সময় লোকেরা বিভ্রান্ত হয় তাও দেখায়, কারণ ফ্রেমওয়ার্কগুলি প্রায়শই গ্রন্থাগারগুলিকেও বান্ডিল করে।
দিদিয়ের এ।

1
@ ডিডিবাস যদি আপনি মনে করেন উত্তরটি ভাল ব্যাখ্যা দেয় তবে আপনি উত্তরটিকে উচ্চতর করতে পারেন যাতে পোস্ট দর্শকরা সহজেই ফলস্বর উত্তর খুঁজে পেতে পারে।
দুরাই আমুথান.এইচ

সুতরাং FFmpeg (প্রোগ্রাম নয়, তবে মূলত প্রকল্প থেকে LibAVUtil) একটি কাঠামো, এবং লাইভাভোডেক ইত্যাদি লাইব্রেরি?
মার্কাস জে

1
@ মার্কাসজে - লিবিএভিটিল এবং লাইবকোডেক উভয়ই গ্রন্থাগার
দুরাই আমুথান। এইচ

110

আমি যেমন এটি সর্বদা বর্ণনা করেছি:

একটি গ্রন্থাগার একটি সরঞ্জাম।

একটি ফ্রেমওয়ার্ক জীবনযাত্রার একটি উপায়।

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


9
উভয় পদ সম্পূর্ণরূপে বোঝার পরে এই উত্তরটি আরও বেশি অর্থবোধ করে।
অন্য

45

ওয়েব বিকাশকারী দৃষ্টিকোণ থেকে:

  1. লাইব্রেরি সহজেই অন্য গ্রন্থাগার দ্বারা প্রতিস্থাপনযোগ্য হতে পারে। কিন্তু কাঠামো পারে না।

    আপনি jquery তারিখ চয়নকারী লাইব্রেরি পছন্দ না করে, আপনি অন্যান্য তারিখ চয়নকারী যেমন বুটস্ট্র্যাপ তারিখ চয়ন বা পিকাদেটের সাথে প্রতিস্থাপন করতে পারেন।

    আপনি যদি অ্যাংুলার জেএস পছন্দ করেন না যার ভিত্তিতে আপনি নিজের পণ্যটি তৈরি করেছেন তবে আপনি কেবল অন্য কোনও ফ্রেমওয়ার্কের সাথে প্রতিস্থাপন করতে পারবেন না। আপনাকে আপনার পুরো কোড বেসটি আবার লিখতে হবে।

  2. ফ্রেমওয়ার্কের তুলনায় বেশিরভাগ গ্রন্থাগারটি খুব কম শিক্ষার বক্ররেখা নেয়। উদাহরণস্বরূপ: আন্ডারস্কোর.জেএস একটি লাইব্রেরি, এমবার.জেএস একটি কাঠামো।


সেরা উত্তর. সহজ, প্রত্যক্ষ এবং স্পষ্ট।
ফিলিপ সান্টিয়াগো

41

আমি কোহেনস উত্তরটি পছন্দ করি তবে আরও প্রযুক্তিগত সংজ্ঞা হ'ল: আপনার কোডটি একটি লাইব্রেরি কল করে। একটি ফ্রেমওয়ার্ক আপনার কোডকে কল করে । উদাহরণস্বরূপ একটি জিইউআই ফ্রেমওয়ার্ক ইভেন্ট-হ্যান্ডলারের মাধ্যমে আপনার কোডকে কল করে। একটি ওয়েব কাঠামো কিছু অনুরোধ-প্রতিক্রিয়া মডেল মাধ্যমে আপনার কোড কল।

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


30

আমি এই সংজ্ঞাটি কোথায় দেখেছি তা ভুলে গিয়েছি তবে আমি মনে করি এটি বেশ সুন্দর।

একটি লাইব্রেরি এমন একটি মডিউল যা আপনি আপনার কোড থেকে কল করেন এবং ফ্রেমওয়ার্কটি এমন একটি মডিউল যা আপনার কোডকে কল করে।


6
তবে libc এ qsort () অন্তর্ভুক্ত করে, যা আপনার কোডকে কল করে। আমি মনে করি না যে libc একটি কাঠামো করে তোলে।
মার্ক বাকের

মডিউল বলতে কী বোঝায়?
নেটিসি

18

বিভিন্ন লাইব্রেরির বাইরে একটি কাঠামো তৈরি করা যেতে পারে। একটি উদাহরণ নেওয়া যাক।

ধরা যাক আপনি একটি মাছের তরকারী রান্না করতে চান। তারপরে আপনার তেল , মশলা এবং অন্যান্য ইউটিলিটিগুলির মতো উপাদানগুলির প্রয়োজন । আপনার ডিশটি প্রস্তুত করতে আপনার এমন মাছও প্রয়োজন যা এটি আপনার আবেদনের ডেটা) সমস্ত উপাদান একসাথে একটি কাঠামো বলা হয় । এখন আপনি এগুলিকে একে একে ব্যবহার করতে যাবেন বা আপনার চূড়ান্ত পণ্য হিসাবে আপনার মাছের তরকারি তৈরি করতে একত্রিত করুন । তুলনা করুন একটি সঙ্গে যে ওয়েব ফ্রেমওয়ার্ক যার মধ্যে তৈরি করা হয় underscore.js , bootstrap.css , bootstrap.js , fontawesome , AngularJS , ইত্যাদি একটি উদাহরণ টুইটার বুটস্ট্র্যাপ v.35

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

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


ফ্রেমওয়ার্ক : গ্রন্থাগারগুলির একটি সংগ্রহ যা আপনার অ্যাপ্লিকেশনটিতে অনন্য বৈশিষ্ট্য এবং আচরণ সরবরাহ করে। (সমস্ত উপাদান)

গ্রন্থাগার : আপনার ডেটাতে অনন্য বৈশিষ্ট্য এবং আচরণ সরবরাহকারী নির্দেশাবলীর একটি সংজ্ঞায়িত সেট। (মাছের উপর তেল)

প্লাগইন : একটি লাইব্রেরির জন্য ইউটিলিটি বিল্ড (ইউআই-রাউটার -> অ্যাঙ্গুলারজেএস) বা অনেক লাইব্রেরির সংমিশ্রণ (তারিখ-চয়নকারী -> বুটস্ট্র্যাপ.সিএস + জ্যাকুয়ারি) ছাড়া আপনার প্লাগইন এখন প্রত্যাশা অনুযায়ী কাজ করতে পারে।


পিএস অ্যাঙ্গুলারজেএস একটি এমভিসি ফ্রেমওয়ার্ক তবে একটি জাভাস্ক্রিপ্ট লাইব্রেরি। কারণ আমার বিশ্বাস লাইব্রেরিটি দেশীয় প্রযুক্তির ডিফল্ট আচরণকে প্রসারিত করে (এই ক্ষেত্রে জাভাস্ক্রিপ্ট)।


সুন্দর ব্যাখ্যা :)
মানো

14

আমি এটিকে এভাবেই ভাবি (এবং অন্যরা যুক্তিযুক্ত দেখেছে):

একটি লাইব্রেরি এমন কিছু যা আপনার কোডের মধ্যে অন্তর্ভুক্ত থাকে। এবং একটি কাঠামো আপনার আবেদনের জন্য ধারক।



8

একটি লাইব্রেরি সংক্ষিপ্ত-স্কোপযুক্ত উদ্দেশ্যে কার্যকারিতা প্রয়োগ করে যেখানে কাঠামোগত গ্রন্থাগারগুলির সংকলন হিসাবে বিভিন্ন বিস্তৃত বৈশিষ্ট্যগুলির জন্য সমর্থন সরবরাহ করে। উদাহরণস্বরূপ, System.Drawing.dll লাইব্রেরি অঙ্কন কার্যকারিতা পরিচালনা করে, তবে সামগ্রিক .NET কাঠামোর একটি অংশ।


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

আমি বিশ্বাস করি। নেট খুব বড় লাইব্রেরি। খুব বড় একটি লাইব্রেরি যাকে বলা হয় গ্রন্থাগার, তবে এখনও একটি গ্রন্থাগার। ফ্রেমওয়ার্কগুলি একটি নির্দিষ্ট নকশা প্রয়োগ করে, কন্ট্রোল প্রবাহ ইত্যাদির জন্য ছোট্ট টিঙ্কারের সাথে ঘর নির্ধারণ করে। । নেট যেমন করে না। আমি বিশ্বাস করি। নেট একটি লাইব্রেরি যখন এএসপি.এনইটি এমভিসি একটি কাঠামো। তবে এমএসের বাজারের জন্য ভাল শব্দ দরকার।
নওফাল

6

গ্রন্থাগার - ক্লাস বা উপাদানগুলির যে কোনও সেট যা ক্লায়েন্ট হিসাবে বিবেচিত হতে পারে কোনও নির্দিষ্ট কাজ সম্পাদনের জন্য উপযুক্ত।
ফ্রেমওয়ার্ক - আপনার চেয়ে বড় কিছুতে "প্লাগ-ইন" ​​করার জন্য নির্দিষ্ট নির্দেশিকাগুলি নির্দেশ করে। আপনি কেবল প্রকাশিত-প্রয়োজনীয় পদ্ধতিতে আপনার প্রয়োগ / প্রয়োজনীয়তার জন্য নির্দিষ্ট টুকরো সরবরাহ করেন, যাতে 'ফ্রেমওয়াক আপনার জীবনকে সহজ করে তুলতে পারে'


6

লাইব্রেরিগুলি ব্যবহার ও দক্ষতার স্বাচ্ছন্দ্যের জন্য রয়েছে You আপনি উদাহরণস্বরূপ বলতে পারেন যে জেন্ড লাইব্রেরি আমাদের ভালভাবে সংজ্ঞায়িত ক্লাস এবং ফাংশন দিয়ে বিভিন্ন কাজ সম্পাদন করতে সহায়তা করে W তবে একটি কাঠামো এমন একটি জিনিস যা সাধারণত এমভিসি (মডেল) এর মতো কোনও সমাধান কার্যকর করার একটি নির্দিষ্ট উপায়কে বাধ্য করে forces -দর্শন-নিয়ামক) (রেফারেন্স) । এটি এমভিসি-র মতো কাজের বিতরণের জন্য একটি সুনির্দিষ্ট সংজ্ঞায়িত সিস্টেম M


5

আপনার ব্যাখ্যাটি আমার কাছে বেশ ভাল লাগছে ... একটি লাইব্রেরি এমন কিছু হতে পারে যা সংকলিত এবং অন্য কোডগুলিতে পুনরায় ব্যবহারের জন্য স্ব-অন্তর্ভুক্ত ছিল, এর সামগ্রীতে আক্ষরিকভাবে কোনও বাধা নেই।

একটি ফ্রেমওয়ার্ক অন্যদিকে শুধু আপনার উদাহরণস্বরূপ, MVC মত, এপ্লিকেশন ডেভেলপমেন্ট কিছু নির্দিষ্ট Arena এ ব্যবহারের জন্য সুবিধা একটি সীমার আছে আশা করা হচ্ছে।


5

আমি মনে করি আপনি এই পার্থক্যটি বেশ ভালভাবে লিখেছেন: ফ্রেমওয়ার্কটি এমন একটি ফ্রেম সরবরাহ করে যা আমরা আমাদের কাজটি করি ... একরকম, এটি একটি সাধারণ লাইব্রেরির চেয়ে বেশি "সীমাবদ্ধ" is
ফ্রেমওয়ার্কটি গ্রন্থাগারের একটি সেটে ধারাবাহিকতা যুক্ত করার কথা।


5

আমি মনে করি লাইব্রেরি একটি লক্ষ্যে পৌঁছানোর জন্য ইউটিলিটির একটি সেট (উদাহরণস্বরূপ, সকেট, ক্রিপ্টোগ্রাফি, ইত্যাদি)। ফ্রেমওয়ার্ক হ'ল লাইব্রেরি + রন্টটাইম EINVIRONNEMENT। উদাহরণস্বরূপ, এএসপি.এনইটি একটি কাঠামো: এটি HTTP অনুরোধগুলি গ্রহণ করে, পৃষ্ঠা অবজেক্ট তৈরি করে, লাইফ কিকেল ইভেন্টগুলি শুরু করে etc. বর্তমান অনুরোধ!

যাইহোক, খুব আন্তরিক প্রশ্ন!


5

আমি এই উত্তরটির উত্সটি মনে করতে পারি না (আমি অনুমান করি যে আমি এটি ইন্টারনেটে একটি পিপিতে পেয়েছি) তবে উত্তরটি বেশ সহজ।

একটি লাইব্রেরি এবং একটি ফ্রেমওয়ার্ক হল ক্লাস, মডিউল এবং / বা কোড (প্রোগ্রামিং ভাষার উপর নির্ভর করে) এর সেট যা আপনার অ্যাপ্লিকেশনগুলিতে ব্যবহার করা যেতে পারে এবং আপনাকে একটি স্বতন্ত্র "সমস্যা" সমাধান করতে সহায়তা করে।

এই সমস্যাটি কোনও অ্যাপ্লিকেশনটিতে লগ বা ডিবাগিং তথ্য হতে পারে, চার্ট আঁকতে, একটি নির্দিষ্ট ফাইল ফর্ম্যাট তৈরি করতে (এইচটিএমএল, পিডিএফ, এক্সএলএস), একটি ডেটা বেসের সাথে সংযোগ স্থাপন, কোনও অ্যাপ্লিকেশনটির একটি অংশ বা একটি সম্পূর্ণ অ্যাপ্লিকেশন বা কোনও কোড প্রয়োগ করা কোড হতে পারে নকশা প্যাটার্ন

এই সমস্ত সমস্যা সমাধানের জন্য আপনার ফ্রেমওয়ার্ক বা একটি লাইব্রেরি থাকতে পারে এবং আরও অনেকগুলি, সাধারণভাবে ফ্রেমওয়ার্কগুলি আপনাকে আরও জটিল বা বড় সমস্যাগুলি সমাধান করতে সহায়তা করে তবে তাদের মূল পার্থক্যের একটি দৃu়তা উভয়ের জন্য একটি প্রধান সংজ্ঞা নয়।

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

এর অর্থ হ'ল যদি কোনও ফ্রেমওয়ার্কের মধ্যে, উদাহরণস্বরূপ আপনার কোনও অ্যাপ্লিকেশনটিতে কাঠামোটি ব্যবহার করার জন্য 50 টি ক্লাস থাকে তবে আপনার কোডে 10-15 বা আরও ক্লাসের কথা বলা যাক, কারণ এটি ফ্রেমওয়ার্কটি ডিজাইন করা হয়েছে, কিছু ক্লাস (সেই শ্রেণীর অবজেক্ট) ফ্রেমওয়ার্কে অন্যান্য ক্লাসের পদ্ধতির জন্য ইনপুট / পরামিতি। .NET ফ্রেমওয়ার্ক, স্প্রিং বা কোনও এমভিসি ফ্রেমওয়ার্ক দেখুন।

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

ফ্রেমওয়ার্ক এবং গ্রন্থাগারগুলির চেয়ে আরও বিভাগ রয়েছে তবে এটি বিষয়বস্তু।

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