PDA

View Full Version : حرفه ای: مفهوم واقعی SDK , plugin , Framework ,Library چیست؟؟



aminghaderi
سه شنبه 28 دی 1389, 20:50 عصر
با سلام ارادت خدمت اساتید و دوستان عزیزم.
عذر خواهی می کنم از مدیران عزیز به خاطر اینکه من این سوال رو در چند تالار مختلف مطرح کردم و یه خورده شاید سوال بی نمکی به نظر بیاد ولی حقیقت نیاز به راهنمایی دارم.:خجالت:
این تاپیک رو از تمام بخش ها ثبت شده پیشین ، به دلیل عدم جواب گویی و گرفتن فضا و ... حذف کردم .
--------------------------------------------------------------------------------------------------------------------
یه مقدار با مفهوم واژه های SDK , plugin , Framework , Library به مشکل خوردم می خوام راهنماییم کنید ، که معنی واقعی این لغات چی هست و به چه چیزی اطلاق می شه؟؟؟؟

و یه سوال دیگه در همین مورد ، اینکه من الان یه سری کلاس های جاوااسکریپتی نوشتم که همه اونها داخل یه فایل هست مثلا فایل dajax.js ، فایل نصبتا بزرگ هست و تمام کارهای با اون انجام می شه و یه مقدار از لحاظ روش کاری مثل استفاده از jqury هست .
حالا سوال دوم من اینکه الان به این فایلی که من ساختم می شه گفت پلاگن؟؟ یا می شه گفت فریم ورک؟؟ یا کتابخونه ؟؟ چی می شه گفت بهش؟؟

لطفا در صورت اطلاع راهنمایی فرمایید. :قلب:
ممنون.

Javad_Darvish_Amiry
چهارشنبه 29 دی 1389, 03:07 صبح
سلام دوست خوبم. من خودم هم اینا رو جایی مستقیما نخوندم (به نظرم بیشتر واژه هایی ان که بعد از پیشنهاد از چند جای معتبر - به شکل های مختلف - خود به خود عمومیت پیدا میکنن و تعاریفی هم که ازشون میشه معمولا بسته به منبع تعریف و مورد استفاده و فرهنگ کاربرد و اینجور چیزا فرق میکنه) ولی برداشت خودمو عرض میکنم خدمتتون. اول چند تا تعریف از کتابخونه از چند تا مرجع مختلف:


A library is a collection of sources, resources, and services, and the structure in which it is housed;
http://en.wikipedia.org/wiki/Library

(1) A collection of files.
(2) In programming, a library is a collection of precompiled routines that a program can use.
http://www.webopedia.com/TERM/L/library.html

In computing, a library is a collection of similar objects that are stored for occasional use - most frequently, programs in source code or object code form, data files, scripts, templates, fonts, and physical storage units such as tape cartridges. Here are some common types of libraries.
http://searchsqlserver.techtarget.com/definition/library

که این اخری خیلی باز کرده مطلبو و از چند دیدگاه لغتو تعریف کرده. که نشوندهده اینه که چیزی که بشه بهش گفت تعریف هنوز ارائه نشده (اگه با بازی با کلمات اشتباه نشه منظورمو اینطوری بیان میکنم: تعریف باید جامع و مانع باشه، جامع یعنی باید جهان شمول باشه - در جهان مورد کاربرد نه این جهان به این بزرگیو نمیگم - و تمامی جنبه ها رو پوشش بده؛ و مانع یعنی این که نشه از توش چیزی رو حذف و یا چیزی رو بهش اضافه کرد)

Library یا همون کتابخونه، مجموعه ای از کدهای با کاربرد عمومی در راستای اهدافی همسو. مثلا کتابخونه stdio.h کتابخونه ایه که کدها و متود هایی که برای کار با ورودی و خروجی استاندارد تو سی نیازن توش گرد آوری شده (کاربرد عمومیه و اهداف همسو هستن: کار با ورودی و خروجی استاندارد) یا کتابخونه های دات نت که هممون باهاشون آشناییم یا کتابخونه های جاوا و غیره.
Framework یا بستر کاری: نمیدونم چطوری بگم تو ذهنم چیه، یه بستر برای کار (خیلی تابلوئه میدونم) عموما بسترها از اجتماع کتابخونه ها و ابزار و امکانات برای رسیدن به اهداف تجاری به وجود میان. مثل دات نت که مجموعه ایه از یه عالمه کتابخونه در کنار ابزار دیگه مثل MS SQL و زبان و کامپایلرها و سرور و دسکتاپ و ... یعنی وقتی برای پیشبرد یه فرایند تجاری، یه بستر کاری رو انتخاب کردیم، عملا باید از تمامی ابزارهای دیگه بی نیاز باشیم و اون بستر همه موارد مورد نیاز برای توسعه و نیل به هدف رو فراهم کرده باشه.
plugin یه قابلیت که به یه ابزار موجود اضافه میشه. بهترین مثالش پلاگین های فایرفاکس هستن که هممون میشناسیم یا پلاگ این های جی کوئری. این نرم افزار یا مثلا جی کوئری وجود داره و پلاگ این ها قابلیت هایی رو بهش اضافه میکنن (اما خود ابزار کماکان مستقل از اونا میتونه به حیات و فعالیتش ادامه بده).
SDK یا Software Development Kit که تا اونجایی که یادمه اولین بار از جاوا دراومد (JDK = Java Development Kit) و بعد توسط مراجع دیگه به SDK تغییر نام یافت (به خاطر عمومیت پیدا کردن مفهوم و این که دیگه فقط با جاوا طرف نبودیم، پس به یه اسم عمومی تر نیاز بود) کیت توسعه نرم افزار. میتونم اینطوری منظورمو بگم که یه بسته برنامه نویسیه که برنامه نویس رو قادر میکنه برای یه framework برنامه بنویسه. یعنی کیت ها بر مبنای بستر ها به وجود میان. شامل ابزار توسعه، داکیومنت، سمپل ها و چنین چیزایی هستن.
کلا همه اینا برآیند یافته های من بود که برای خودم خلاصه کردم. حالا درست و غلطشون رو نمیدونم و از نظرات دوستان دیگه حتما استفاده میکنم.
موفق و پیروز باشید.

aminghaderi
چهارشنبه 29 دی 1389, 13:13 عصر
ممنون از توضیحات کاملتون جواد جان.
خیلی استفاده کردم.
اما نگفتید این فایلی که من الان ساختم و قراره در اینده توسعش هم بدم ، بهش چه چیزی گفته می شه؟؟
با توضیحاتی که شما دادین ، پلاگن که بهش نمی شه گفت ؟! فریم ورکم که ...:لبخند: می مونه کتابخونه و کیت توسعه نرم افزاری.
به نظر من همون کیت توسعه نرم افزاری هستش؟؟؟
نظر شما چیه؟؟
چون فایل پر از توابع و کلاس های جاوا اسکریپتی هست که همه کار مشخصی رو در برنامه های تحت وب انجام می دهند.
به عبارت ساده تر ، تمام برنامه های تحت وب ما برای عملیات زیباسازی و فرم دهی شان از کلاس های داخل این فایل استفاده می کنند.

Javad_Darvish_Amiry
چهارشنبه 29 دی 1389, 23:00 عصر
سلام دوست من. خواهش میکنم وظیفه ام بود. ببخشید اونو اصلا یادم رفت. به این جمله دقت کنیم:

شامل ابزار توسعه، داکیومنت، سمپل ها و چنین چیزایی هستن.
کیت توسعه باید همچین شرایطی داشته باشه - در حالت کلی، نه به عنوان یه تعریف -. چیزی که شما نوشتید، اگه مستقل باشه - و یه سری شرایط مثل قابلیت استفاده مجدد داشته باشه - (که برداشت من اینه که هست) کتابخونه است.

eshpilen
شنبه 02 بهمن 1389, 08:57 صبح
جناب Javad_Darvish_Amiry همه رو درست گفتن.
راستی تعریف add-on چی میشه؟ بنظرم خیلی شبیه plugin میاد، اما احتمالا متفاوت هستن.

JaguarXF
یک شنبه 03 بهمن 1389, 00:25 صبح
پلاگین: مثلا فلش پلیر : فارغ از نوع برازر : این امکان رو به هر برازری اضافه میکنه که فایل فلش نمایش بده
اد-آن : مخصوص یک برنامه خاص . مثلا یک اد-آن برای گوگل کروم که آدرس صفحه جاری رو به تلفن آندروید ارسال میکنه .

amir_1351
سه شنبه 11 بهمن 1390, 22:49 عصر
SDK یا Software Development Kit که تا اونجایی که یادمه اولین بار از جاوا دراومد (JDK = Java Development Kit) و بعد توسط مراجع دیگه به SDK تغییر نام یافت
البته پیشینه SDKمربوط به خیلی قبل تر از جاوا است .
بطوری که سال 1990 SDK مخصوص foxpro وجود داشت ( شاید قبل تر از آن هم یعنی زمانی که foxpro متعلق به شرکت foxit بود.

ASedJavad
شنبه 26 فروردین 1391, 14:09 عصر
سلامممنون از توضیحاتتون
خوشحال میشم تعریف platform رو هم بگید.

سوداگر
شنبه 26 فروردین 1391, 21:33 عصر
a platform is an underlying computer system on which application programs can run
(http://searchservervirtualization.techtarget.com/definition/platform)
توضیحات فارسی (http://barnamenevis.org/showthread.php?196635-%D9%81%D8%B1%D9%82-framework-%D8%A8%D8%A7-platform-%D8%AF%D8%B1-%DA%86%DB%8C%D8%B3%D8%AA)

سوداگر
سه شنبه 29 فروردین 1391, 20:49 عصر
پلاگین: مثلا فلش پلیر : فارغ از نوع برازر : این امکان رو به هر برازری اضافه میکنه که فایل فلش نمایش بده

پس چرا میگن پلاگین برای Opera، پلاگینش به FireFox نمیخوره؟ اگه اینجوری بود بایستی میگفتن اد-آن برای اپرا:متفکر:

aminghaderi
چهارشنبه 30 فروردین 1391, 03:30 صبح
سلام به همه دوستان.

پس چرا میگن پلاگین برای Opera، پلاگینش به FireFox نمیخوره؟ اگه اینجوری بود بایستی میگفتن اد-آن برای اپرا:متفکر:
معمولا نرم افزار های بزرگ برای خودشان بستر توسعه خاصی دارند که به انها Software Development Kit یا SDK می گویند.(دوست عزیزم آقای درویش امیری در بالا مفصل توضیح دادند.)حالا معمولا پلاگن به قطعاتی گفته می شود که توسط همین SDK برای اون سیستم ساخته شده است و مفهوم واحد رو هم برای اون قطعه دارد.
البته ADD-ON که شما فرموید هم تقریبا به همین شکل است منتها جامعیت پلاگن رو نداره ؟! (تفاوت دقیقشان رو نمی دونم.)

Felony
جمعه 01 اردیبهشت 1391, 18:49 عصر
به نظر من همون کیت توسعه نرم افزاری هستش؟؟؟
نظر شما چیه؟؟
چون فایل پر از توابع و کلاس های جاوا اسکریپتی هست که همه کار مشخصی رو در برنامه های تحت وب انجام می دهند.

چیزی که شما طراحی کردید هر چقدر هم کامل و ... باشه یک کتابخانه هست نه SDK ، واژه SDK برای زمانی هست که شما یک سخت افزار یا نرم افزار خاص طراحی کردید و میخواین این قابلیت رو به برنامه نویس ها بدید که برای سخت افزارتون نرم افزار طراحی کنند یا به نرم افزارتون قابلیت هایی رو از طریق ساخت پلاگین یا ... اضافه کنن ، مثل دستگاه های اثر انگشت خوان یا نرم افزار Multimedia Builder ؛ شما نرم افزار یا سخت افزاری طراحی نکردید که حالا کیت توسعه نرم افزاری براش ارائه کنید !

kiarashk
شنبه 02 اردیبهشت 1391, 12:17 عصر
چیزی که شما طراحی کردید هر چقدر هم کامل و ... باشه یک کتابخانه هست نه SDK ، واژه SDK برای زمانی هست که شما یک سخت افزار یا نرم افزار خاص طراحی کردید و میخواین این قابلیت رو به برنامه نویس ها بدید که برای سخت افزارتون نرم افزار طراحی کنند یا به نرم افزارتون قابلیت هایی رو از طریق ساخت پلاگین یا ... اضافه کنن ، مثل دستگاه های اثر انگشت خوان یا نرم افزار Multimedia Builder ؛ شما نرم افزار یا سخت افزاری طراحی نکردید که حالا کیت توسعه نرم افزاری براش ارائه کنید !

خب یه سوال مثلا ما برای برنامه نویس توی ویندوز باید Windows SDK و توی مک هم Mac OSX SDK رو داشته باشیم این یعنی SDK برای ما محیط سیستم عامل ویندوز رو شبیه سازی می کنه یا نه دستورات ما رو به اون سیستم عامل وصل می کنه مثلا API ها بخشی از این SDK هاست؟