PDA

View Full Version : سوال: معیار های انتخاب فریم ورک جاوا



rasoolgh1
پنج شنبه 29 فروردین 1392, 11:15 صبح
سلام من چندتا سوال داشتم اما تو انجمن چیزی بتونم کامل فهمم پیدا نکردم:

1. معیار های انتخاب یه فریم ورک خوب برای هر کاری چیه ؟ باید به چه چیزایی دقت کنم ؟

2. چند تا فروم ورک خوب بهم معرفی کنید و ممنون میشم بگید هر کدوم چه چیزایی دارن

agusta.ada
پنج شنبه 29 فروردین 1392, 21:28 عصر
سلام
دوست عزیز ببخشید که اینطوری میگم ولی اگه مفهوم فریمورک رو بدونی سوال اول خودش حل میشه و سوال دوم هم کمی تا قسمتی محلول میشه.
فریمورک مجموعه ای از کتابخانه ها و کلاس ها میباشد که هر کدام برای کار خاصی نوشته میشوند فرقش هم با کتابخانه ها و کلاس های از پیش تعریف شده در یک زبان یا پلت فرم خاص اینکه اون کلاس ها جزء لابریری استاندارد میباشند ولی فریمورک را شما باید دانلود کنی و در classpath معرفی کنی تا بتونی استفاده کنی.
تعدادی از فریمورک های معروف پلتفرم جاوا hibernate , struts, spring, log4j, cactus, ... میباشند که اونا هم اگه پلتفرم مورد نیاز رو بلد نباشی به دردت نمیخورند.

cups_of_java
پنج شنبه 29 فروردین 1392, 21:48 عصر
1) میزان فعال بودن و به روز شدن اون فریم ورک توسط سازنده هاش - خیلی مهم
2) داشتن مستندات (documentation) خوب و سایتی با اطلاعات شفاف در دسترس - مهم
3) داشتن فروم و پشتیبانی مناسب
4) داشتن استفاده کنندگان و مشتریان زیاد (معروف یا معتبر بودن)
5) استاندارد بودن و قابلیت جفت شدن با تکنولوژی ها فریم ورک های دیگه مورد نیازتون - مهم
6) محدود نکردن شما و وابسته نکردنتون به چارچوبی که در اختیارتون قرار میده
7) سرعت توسعه توسط اون فریم ورک (چقدر باید کد بزنید؟ براتون قابل درک هست چرا دارین توش یه کاری رو انجام میدین؟) - خیلی مهم
معیار هایی هم هستن که بسته به شرایط و به صورت موردی در هر پروژه دیده میشن:
8) اون موارد مورد نیاز در پروژتون رو خوب پشتیبانی میکنه؟ (مثلن وب سرویس، پورتال، REST، ...)
9) پروژتون Web2 هست؟ Single Page هست؟ ... شما در لایه کلاینت می خواید جاوااسکریپت و ... هم کد بزنید؟ یا اینکه می خواین این مسائل دیده نشه و کامپوننت های آماده کلاینتی رو داشته باشید؟
10) تکنولوژی هایی که می خواین رو پشتیبانی می کنه؟
11) آیا از الگوها (Patterns)ی شناخته شده در توسعه و کد نویسی استفاده می کنه؟ - مهم
من اینا فعلن به ذهنم رسید...

شما باید بگید موردتون چیه تا بشه فریم ورک مرتبطی رو معرفی کرد! اما به طور کلی در دنیای Java EE فریم ورک هایی هستن که شناخته شده اند:
Spring - fullstack
Jboss Seam - fullstack
GWT - web
Struts - web
Wicket - web
...
یه جستجوی ساده بکنید اسم ده ها مورد دیگه رو هم پیدا می کنید!

rasoolgh1
جمعه 30 فروردین 1392, 01:11 صبح
ممنون از همتون

برای بررسی 2 مدل نرم افزار

اولی بیشتر روی کلایینت نصب می خوام شه البته احتمال زیاد به صورت نرم افزار تحت شبکه برای ورژن های بعدی میشه
با سخت افزار هایی RFID و اسنکر و..... به این وصل میشه و 99% تحت ویندوز اجرا میشه . خیلی مهم نیست که در لایه کلاینت از کامپوننت های آماده و یا صفحه وبی باشه اما ترجیآ کامپوننتی . این رو عنوان محصول می خواییم بدیم

دومی توی سرور 99% لینوکس بیشتر وارد کردن داده هست . امنیت خیلی مهم . بازم خیلی مهم نیست که در لایه کلاینت از کامپوننت های آماده یاد یا صفحه وبی باشه اما ترجیآ کامپوننتی . برای سازمانی خاص می خوایی نویسیم توی کلایت ها
ازم از سخت افزار هایی مثل بالا استفاده میشه

گزارش گیری تو هر دو مهم حتی نموداری - سرعت هم مهم

ممنون میشم راهنماییم کنید . امیدوارم تقریبا کامل بوده باشه

javaphantom
جمعه 30 فروردین 1392, 12:09 عصر
سلام من چندتا سوال داشتم اما تو انجمن چیزی بتونم کامل فهمم پیدا نکردم:

1. معیار های انتخاب یه فریم ورک خوب برای هر کاری چیه ؟ باید به چه چیزایی دقت کنم ؟

2. چند تا فروم ورک خوب بهم معرفی کنید و ممنون میشم بگید هر کدوم چه چیزایی دارن


اصلا فریم ورک چی هست؟
چه تعریفی از فریم ورک در ذهن شما هست که دنبال چندتا خوبش هستین؟

javaphantom
جمعه 30 فروردین 1392, 12:12 عصر
فریمورک مجموعه ای از کتابخانه ها و کلاس ها میباشد که هر کدام برای کار خاصی نوشته میشوند فرقش هم با کتابخانه ها و کلاس های از پیش تعریف شده در یک زبان یا پلت فرم خاص اینکه اون کلاس ها جزء لابریری استاندارد میباشند ولی فریمورک را شما باید دانلود کنی و در classpath معرفی کنی تا بتونی استفاده کنی.

خیلی جملتون سخت بود فهمش می شه بیشتر و ساده تر توضیح بدین فریم ورک تعریفش چیه؟

rasoolgh1
جمعه 30 فروردین 1392, 13:42 عصر
یه سری کلاسه که اون کلاس ها ابزاری برای کار کردن با اون زبون بهت میده
توی php اینجوری بود

javaphantom
جمعه 30 فروردین 1392, 14:12 عصر
یه سری کلاسه که اون کلاس ها ابزاری برای کار کردن با اون زبون بهت میده
توی php اینجوری بود

پس api یا همان application programming interface داستانش چیه؟ در ضمن در تمام زبان ها ما این api ها رو داریم که می تون کنار هم باشند یا در یک مجموعه خاصی با هدف مشترکی کنار هم باشند استفاده کنیم ولی باز فریم ورک به حساب نمی آیند.

rasoolgh1
جمعه 30 فروردین 1392, 14:29 عصر
دوست عزیز انجمن برای مشورت کمک گرفتم و استفاده از تجربه و علم دیگر دوستانه ! نه جای کل کل کردن
سوالم شاید مبتدی باشه اما علاقه ندارم یه راه برم بعد ببینم اشتباه بوده . تا حالام یادم نمیاد برای بیشتر بودن سوادم در بعضی
مسائل از بالا به دیگران نگاه کنم !

به هر حال ممنون

cups_of_java
جمعه 30 فروردین 1392, 14:38 عصر
سلام
دوست عزیز ببخشید که اینطوری میگم ولی اگه مفهوم فریمورک رو بدونی سوال اول خودش حل میشه و سوال دوم هم کمی تا قسمتی محلول میشه.
فریمورک مجموعه ای از کتابخانه ها و کلاس ها میباشد که هر کدام برای کار خاصی نوشته میشوند فرقش هم با کتابخانه ها و کلاس های از پیش تعریف شده در یک زبان یا پلت فرم خاص اینکه اون کلاس ها جزء لابریری استاندارد میباشند ولی فریمورک را شما باید دانلود کنی و در classpath معرفی کنی تا بتونی استفاده کنی.
تعدادی از فریمورک های معروف پلتفرم جاوا hibernate , struts, spring, log4j, cactus, ... میباشند که اونا هم اگه پلتفرم مورد نیاز رو بلد نباشی به دردت نمیخورند.

تعریف فریم ورک این نیست. مثلن cactus با log4j اصلن فریم ورک نیستن بلکه کتابخونه (library) اند. فریم ورک به استاندارد بودن در خود زبان نیست! فریم ورک فرقش با کتابخانه اینه که یک بستر و چارچوب برای شما فراهم می کنه که ازش استفاده کنید! این فراتر از یک سری API هستش! کتابخانه فقط به شما API میده. فریم ورک از کتابخانه حرف های بیشتری برای زدن به شما داره و بزرگ تره!
عامیانه میشه گفت شما از کتابخانه توی کد خودتون هر طور که می خواین استفاده می کنید! اما وفتی شما اونطوری که یه کتابخانه می خواد کد می زنید دیگه اون کتابخونه نیست بلکه فریم ورک هستش!

cups_of_java
جمعه 30 فروردین 1392, 14:45 عصر
ممنون از همتون

برای بررسی 2 مدل نرم افزار

اولی بیشتر روی کلایینت نصب می خوام شه البته احتمال زیاد به صورت نرم افزار تحت شبکه برای ورژن های بعدی میشه
با سخت افزار هایی RFID و اسنکر و..... به این وصل میشه و 99% تحت ویندوز اجرا میشه . خیلی مهم نیست که در لایه کلاینت از کامپوننت های آماده و یا صفحه وبی باشه اما ترجیآ کامپوننتی . این رو عنوان محصول می خواییم بدیم

دومی توی سرور 99% لینوکس بیشتر وارد کردن داده هست . امنیت خیلی مهم . بازم خیلی مهم نیست که در لایه کلاینت از کامپوننت های آماده یاد یا صفحه وبی باشه اما ترجیآ کامپوننتی . برای سازمانی خاص می خوایی نویسیم توی کلایت ها
ازم از سخت افزار هایی مثل بالا استفاده میشه

گزارش گیری تو هر دو مهم حتی نموداری - سرعت هم مهم

ممنون میشم راهنماییم کنید . امیدوارم تقریبا کامل بوده باشه

من دفیقن متوجه نشدم، اما اینطور که مشخصه شما دنبال یک برنامه وبی نیستید. مواردی هم که اشاره کردید نیازهای عمومی و کلی نرم افزاری هستن. فریم ورک رو اصولن بر اساس نیاز های تکنولوژیکی و یا معماری کل نرم افزار انتخاب می کنن. انتخاب فریم ورک حتی به توانایی های افراد حاضر در تیم پیاده سازی پروژه هم بستگی داره.
نمی تونم راهنمایی مشخصی بهتون بدم اینطوری! اما خودتون رو خیلی نگران انتخاب فریم ورک نکنید! این لغت توی جاوا متاسفانه کمی جهنمی شده!

javaphantom
جمعه 30 فروردین 1392, 16:19 عصر
دوست عزیز انجمن برای مشورت کمک گرفتم و استفاده از تجربه و علم دیگر دوستانه ! نه جای کل کل کردن
سوالم شاید مبتدی باشه اما علاقه ندارم یه راه برم بعد ببینم اشتباه بوده . تا حالام یادم نمیاد برای بیشتر بودن سوادم در بعضی
مسائل از بالا به دیگران نگاه کنم !

به هر حال ممنون


دوست عزیز انجمن برای مشورت کمک گرفتم و استفاده از تجربه و علم دیگر دوستانه ! نه جای کل کل کردن

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


سوالم شاید مبتدی باشه اما علاقه ندارم یه راه برم بعد ببینم اشتباه بوده

من احساسم این بود شما در مورد چیزی دارید سوال می کنید که مفهوم درست اون رو نمی دونید و درست حدس زدم با دیدن این پستی که گذاشتید. در پست های قبلی من سعی کردم که اول برم سراغ درد تا درمان. با سوالاتی که مطرح کردم منظورم کل کل نبود منظورم این بود که یک سرچ کوچیک در گوگل که معنی و مفهوم یک موضوع بود نه کل کل . دوست دارم که عذاب بکشی برای یاد گرفتن چون می دونم خودتم توی یادگیری و انتقال اطلاعات دخیل هستی.


تا حالام یادم نمیاد برای بیشتر بودن سوادم در بعضی
مسائل از بالا به دیگران نگاه کنم !

نه اینم باز شامل کم لطفی شما می شه. از بالا دیدن بازی با کلماته. اگر واقعا به این مسئله ایمان داری که من بالاتر از شما هستم استفاده کن چی کار داری به حاشیه.

ولی جواب منو هنوز ندادی فریم ورک چی هست؟

agusta.ada
جمعه 30 فروردین 1392, 16:26 عصر
تشکر بابت توضیحات نمیدونستم ولی از شانس من cactus فریمورک هست و log4j هم قسمت عمده فریمورک apache logging هست.
http://jakarta.apache.org/cactus/
http://logging.apache.org/

و تشکر بابت تنه های دیگر دوستان باعث میشه ادم عالم تر بشه.

javaphantom
جمعه 30 فروردین 1392, 16:35 عصر
فریم ورک فرقش با کتابخانه اینه که یک بستر و چارچوب برای شما فراهم می کنه که ازش استفاده کنید! این فراتر از یک سری API هستش!

قبول داری که خود فریم ورک از همون API ها ساخته شده. تازه اینهم قبول داری که extend کردن یک api ساده تر و قابل فهم تر تا یک فریم ورک. از طرفی جفتوشون هم محدودیت دارن مثلا یک api این محدودیت رو به شما می ده که از یک کلاس خاص و یک متدود خاص با ورودی خاصی استفاده کنی تا خروجی خاص رو بگیری برای همین که مفهوم ارث بری وجود داره تا بتونی این محدودیت رو جلوشو بگیری.


فریم ورک از کتابخانه حرف های بیشتری برای زدن به شما داره و بزرگ تره!

من هم دارم دنبال همین می گردم چون اگر بدونم اون حرفها چی هستن می تونم برم انتخاب کنم دیگه یا حتی بسازم.


اما وفتی شما اونطوری که یه کتابخانه می خواد کد می زنید دیگه اون کتابخونه نیست بلکه فریم ورک هستش!

می فهمم که چی می خوای بگی ولی خیلی بد گفتی. اینکه فریم ورک چارچوب داره کاملا موافقم از اسمشم معلومه ولی اینکه کد زدن رو داره جهت می ده مخالفم شاید منظورت این بوده که داری یک روند مشخص هست برای استفاده؟؟

cups_of_java
جمعه 30 فروردین 1392, 19:00 عصر
تشکر بابت توضیحات نمیدونستم ولی از شانس من cactus فریمورک هست و log4j هم قسمت عمده فریمورک apache logging هست.
http://jakarta.apache.org/cactus/
http://logging.apache.org/

و تشکر بابت تنه های دیگر دوستان باعث میشه ادم عالم تر بشه.

در مورد هر جفتشون حق با شماست! البته اینم در نظر بگیرید که استفاده از این لغت عمومی شده و گاهن هر فریم ورکی هم اصلاتن فریم ورک نیست! ما اینجا نمی خوایم غلط دیکته بگیریم. لغت فریم ورک هم مثل لغت معماری می مونه توی صنعت نرم افزار که کاربرد های متنوعی داره.
در مورد فریم ورک اینجا بخونید (http://en.wikipedia.org/wiki/Software_framework).
برای مقایسش با کتابخانه هم این (http://stackoverflow.com/questions/3057526/framework-vs-toolkit-vs-library)و این (http://stackoverflow.com/questions/148747/what-is-the-difference-between-a-framework-and-a-library)و این (http://programmers.stackexchange.com/questions/54451/library-vs-framework-vs-api)رو می تونید بخونید! این ها همون جزییاتی هستند که من به طور کلی و عامیانه و شایدم فلسفی بهشون اشاره کردم برای اینکه وارد جزییات نشیم و حق مطلب رو بگیریم. شما این ها رو بخونید در مورد هر جزیی که سوال داشتید اینجا می تونید بپرسید من در خدمتم.

cups_of_java
جمعه 30 فروردین 1392, 19:02 عصر
قبول داری که خود فریم ورک از همون API ها ساخته شده. تازه اینهم قبول داری که extend کردن یک api ساده تر و قابل فهم تر تا یک فریم ورک. از طرفی جفتوشون هم محدودیت دارن مثلا یک api این محدودیت رو به شما می ده که از یک کلاس خاص و یک متدود خاص با ورودی خاصی استفاده کنی تا خروجی خاص رو بگیری برای همین که مفهوم ارث بری وجود داره تا بتونی این محدودیت رو جلوشو بگیری.



من هم دارم دنبال همین می گردم چون اگر بدونم اون حرفها چی هستن می تونم برم انتخاب کنم دیگه یا حتی بسازم.



می فهمم که چی می خوای بگی ولی خیلی بد گفتی. اینکه فریم ورک چارچوب داره کاملا موافقم از اسمشم معلومه ولی اینکه کد زدن رو داره جهت می ده مخالفم شاید منظورت این بوده که داری یک روند مشخص هست برای استفاده؟؟

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