# فناوری جاوا > برنامه‌نویسی جاوا > Java EE : نگارش سازمانی جاوا >  پروژهای J2ee در ایران

## Rahmani-r3

هنگام وب گردی در اینترنت به وب سایت http://www.foursunit.ir  برخوردم که در آن پروژهای زیادی رو با J2EE انجام داده بودند .اولش خوشحال شدم که در ایران هم پروژه هایی رو با این پلت فرم قدرتمند انجام داده اند.اما بعد از این که مقاله ی آقای Inprise رو در مورد J2EE خوندم کمی نظرم تغییر کرد.می خواستم از دوستان بپرسم انجام چنین پروژهایی  با پلت فرم J2EE مناسب می باشد ؟ واگر نه با چه پلت فرمی بهتراست که انجام دهیم؟

----------


## azizi-ra

پروژه های که من دیدم فقط با j2ee میتوان آن را درست انجام داد. در مورد شکتان هم به این مقاله رجوع کنید تا رفع شود.
متشکر

----------


## amin_emami

با سلام،

واقعاً با دیدن نام پروژه ها نمی توان گفت که راه حل انتخاب شده صحیح است یا خیر.
علاوه بر آن، J2EE سطوح مختلفی دارد و شما می توانید با انتخاب و تدوین یک معماری صحیح از تکنولوژی هایی که در J2EE وجود دارد استفاده نمایید.
ضمناً کلیه پروژه هایی که در این سایت ذکر شده است به نظر می رسد واقعاً کلان Enterprise باشد و بحثهایی چون قابلیت توسعه، ارتباط با سیستم های دیگر و ... مهم به نظر می‌رسد. 

با تشکر
امین امامی

----------


## mjafari

به نظر من برای سایتی که مملو از افرادی است که تجربه برنامه نویسی دارند و بالاخره انتظار می رود قدیمی ها و خبره های آن برنامه نویسان کار کشته ای باشند درست نیست که فقط کلی گویی کند.
یعنی هیچ کس نیست   :متفکر:  که در شرکتی کارکرده باشد و بیاید بگوید ما فلان پروژه را با استفاده از این قسمت از امکانات J2EE نوشتیم و مثلا از فلان IDE و Server استفاده کردیم.
در نهایت هم  نظر خودش را در مورد کارایی نهایی پروژه و رضایت مشتری و حتی تیم توسعه پروژه بیان کند ؟

----------


## azizi-ra

قابل توجه دوست عزیز  mjafari
ما در شرکتمان خط j2ee را پیش گرفته ایم و تا به حال چهار پروژه کوچک و بزرگ با آن انجام داده ایم. خود من این کار را بعد از تقریبا ده سال کار در محیط visual c و کسب تجربه در آن انجام داده ام و حالا هم از انتخابم راضی هستم. یکی از پروژههای انجام شده در شرکت بر اساس j2ee ، سیستم جامع جمع آوری و پردازش اطلاعات پروسه های صنعتی است که بسیار خوب پیاده سازی شد.
ما از سرور tomcat و امکانات jsp برای ایجاد رابط های کاربر استفاده کردیم. محیط IDE مورد استفاده ما هم netBeans بود.  :لبخند گشاده!:

----------


## mjafari

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

----------


## Rahmani-r3

امیدوارم که در ایران هم برنامه نویسی با جاوا در شرکت های خصوصی جا بیفته و همش به دنبال استفاده از محصولات مایکروسافت نباشند. متاسفانه تفکر اشتباهی وجود داره و تا اسم جاوا رو می بری می گن هاست برای اون کمه چون جاوا را محدود به JSP می دونند. در صورتی که اگر به سایت http://www.java.com/en/everywhere سر زده باشید کلی پروژه ها رو می بینید که با جاوا نوشته شده و لی تصورش سخته.

----------


## mjafari

امیدوارم همینطور شود ولی من هنوز دوست دارم دقیقا روی مصداق ها متمرکز شوم.
ظاهرا شرکت همکاران در حال ارائه یک نسخة Web base از نرم افزار اتوماسیون اداری خود با J2EE است. چون این پروژه به صورت پکیج و عام منظوره نوشته می شود از طیف متنوعی از امکانات J2EE و ابزار های OpenSource متداول (Struts,Hibernate, Spring ) استفاده می شود.

الان کمی عذاب وجدان پیدا کرده ام که آیا اینها اسرار شرکتی نیست ؟
هرچند من که در استخدام همکاران نیستم و به همین خاطر نام آن را آوردم. یک علت دیگرش هم این است که اگر بگویم اتوماسیون اداری تحت وب معمولی باشد ولی اگر نام همکاران را با شهرتی که در این زمینه دارد بیاورم شاید دوستان امیدوارتر شوند و گفتگو به جاهای خوبی برسد
.

----------


## امیرفرجی

سلام فکر میکنم پروژه MISنیروی انتظامی بزرگترین پروژه J2ee ایران باشه

----------


## mjafari

ممنون آقای فرجی می شود بیشتر توضیح دهید.
از چه امکاناتی از J2EE استفاده کرده اند و پیمانکار یا پیمانکاران آن چه شرکت هایی بوده اند؟

----------


## Inprise

پروژه اتوماسیون جامع کتابخانهء ملی ایران هم مبتنی بر J2EE در حال توسعه است .

----------


## hps

از نظر حجم ریالی و نفر-ماه، طرح جامع فاوا در وزارت امور خارجه (پروژه MFA Online) از بزرگ‌ترین طرح‌های تکفا است که مبتنی بر J2EE پیاده‌سازی شده.

----------


## mjafari

بله فکر می کنم توسط کنسرسیومی به نام "کفا" اتجام شد و پارسال هم تحویل دادند.


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

----------


## hps

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

----------


## mjafari

کسی می داند پیمانکار پروژه اتوماسیون ناجا (110و197و ...) چه شرکتهایی بوده اند.

----------


## amin_abbaszadeh

اتوماسیون ناجا معروف به پروژه امام علی که اگه اشتباه نکرده باشم 8 تا زیر سیستم داره .این پروژه چندین ساله که روش کار شده , با تکنولوژی های مختلفی هم هست از جمله  J2EE  , Oracle - پیمانکار اون سیستم ها هم یک شرکت بود به نام مرکز تحقیقات توسعه ناجا

----------


## mjafari

پروژه سیستم آموزش و ثبت نام دانشگاه صنعتی شریف (که البته به صورت محصول درآمده  در دانشگاه های شیراز ، گیلان و شهید بهشتی نصب شده یا در حال نصب است.) با J2EE انجام شده است.

----------


## fdehghani

شرکت ما هم در زمینه J2EE کار می کنه
دو تا پروژه هم تا حالا نوشته شده پورتال استانی و اتوماسیون فرآیندهای هواشناسی
اگه اطلاعات بیشتر خواستین بگین

----------


## Rahmani-r3

> پروژه اتوماسیون جامع کتابخانهء ملی ایران هم مبتنی بر J2EE در حال توسعه است .


اگر می شود نوع GUI مورد استفاده در این پروژها را بیشتر توضیح دهید.اصولا نوشتن چنین برنامه هایی(با استفاده از جاو یا دات نت) که بیشتر به نوع پروژهای اتوماسیون اداری شبیه هستندبه صورت WebBase مناسب است یا استفاده از رابط های کاربری شبیه ویندوز.
سوال بعدی که ذهن من رو مشغول کرده اینه که سوای تئوری های مطرح شده در مورد مقایسه دات نت و جاوا اگر همین پروژه هایی که دوستان مطرح نمودند با زبان های دات نت مثلا سی شارپ نوشته می شد آیا پروژه واقعا دچار مشکل می شود؟منظورم مقایسه این دو تکنولوژی درعمل می باشد.(از نقطه نظر هایی مانند منابع مالی،انسانی،چرخه طراحی از امکان سنجی تا تست و پشتیبانی)

----------


## azizi-ra

> اگر می شود نوع GUI مورد استفاده در این پروژها را بیشتر توضیح دهید.اصولا نوشتن چنین برنامه هایی(با استفاده از جاو یا دات نت) که بیشتر به نوع پروژهای اتوماسیون اداری شبیه هستندبه صورت WebBase مناسب است یا استفاده از رابط های کاربری شبیه ویندوز.
> سوال بعدی که ذهن من رو مشغول کرده اینه که سوای تئوری های مطرح شده در مورد مقایسه دات نت و جاوا اگر همین پروژه هایی که دوستان مطرح نمودند با زبان های دات نت مثلا سی شارپ نوشته می شد آیا پروژه واقعا دچار مشکل می شود؟منظورم مقایسه این دو تکنولوژی درعمل می باشد.(از نقطه نظر هایی مانند منابع مالی،انسانی،چرخه طراحی از امکان سنجی تا تست و پشتیبانی)


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

با تشکر
همکار کوچک شما

----------


## billguess

من کوچک تر از اونم که در این بحث وارد شم ولی نظر  خودم رو از این قرار در مورد j2eeعنوان میکنم:
برای تولیدبخش هایی از نرم افزار با این تکنیک به طراحی و کد نویسی هایی نیاز است که اصطلاحاّ غیر تجاری هستند و چون نیروی انسانی و تمرکز اون بر کار هزینه بردار است در ثانی توجیه اقتصادی برای استفاده از این دست تکنیک ها خیلی مهمه در نتیجه گاهی اوقات حتی افرادی که کشته ی  عشق تکنولوژی هستند تن به مصلحت می دهند اما اگر افراد مایل هستند که بدانند در سطح کلان از چه  ابزارهایی استفاده می کنند در یک کلام عرض کنم که در راستای نیل به یک solutionهر ابزاری که با کمترین صرف وقت از جانب نیروی انسانی  کار را میسر می کند انتخاب اول است.
یک مثال:تیمی در استفاده از ابزار x مهارت دارد ولی ابزار جدید y در تئوری سریع تر است پس چون x به خاطر تجربه افراد سریعتر صورت می گیرد بهتر است حتی اگر در بحث نظری کندتر باشد ولی
حالت دوم مدیریت تولید احساس می کند که کارها به سمت y در حال سوق داده شدن است از sharpترین افراد تیم میخواهد که به سمت y سوئیچ کنند و به شکل نامتقارن تیم را بر آن مسلط می کند

----------


## javaphantom

> با سلام،
> 
> واقعاً با دیدن نام پروژه ها نمی توان گفت که راه حل انتخاب شده صحیح است یا خیر.
> علاوه بر آن، J2EE سطوح مختلفی دارد و شما می توانید با انتخاب و تدوین یک معماری صحیح از تکنولوژی هایی که در J2EE وجود دارد استفاده نمایید.
> ضمناً کلیه پروژه هایی که در این سایت ذکر شده است به نظر می رسد واقعاً کلان Enterprise باشد و بحثهایی چون قابلیت توسعه، ارتباط با سیستم های دیگر و ... مهم به نظر می‌رسد. 
> 
> با تشکر
> امین امامی


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

----------


## shahryary

بله ظاهرا همون آقای امامی هستن ...
http://www.aminemami.com

----------


## jeus

> من کوچک تر از اونم که در این بحث وارد شم ولی نظر  خودم رو از این قرار در مورد j2eeعنوان میکنم:
> برای تولیدبخش هایی از نرم افزار با این تکنیک به طراحی و کد نویسی هایی نیاز است که اصطلاحاّ غیر تجاری هستند و چون نیروی انسانی و تمرکز اون بر کار هزینه بردار است در ثانی توجیه اقتصادی برای استفاده از این دست تکنیک ها خیلی مهمه در نتیجه گاهی اوقات حتی افرادی که کشته ی  عشق تکنولوژی هستند تن به مصلحت می دهند اما اگر افراد مایل هستند که بدانند در سطح کلان از چه  ابزارهایی استفاده می کنند در یک کلام عرض کنم که در راستای نیل به یک solutionهر ابزاری که با کمترین صرف وقت از جانب نیروی انسانی  کار را میسر می کند انتخاب اول است.
> یک مثال:تیمی در استفاده از ابزار x مهارت دارد ولی ابزار جدید y در تئوری سریع تر است پس چون x به خاطر تجربه افراد سریعتر صورت می گیرد بهتر است حتی اگر در بحث نظری کندتر باشد ولی
> حالت دوم مدیریت تولید احساس می کند که کارها به سمت y در حال سوق داده شدن است از sharpترین افراد تیم میخواهد که به سمت y سوئیچ کنند و به شکل نامتقارن تیم را بر آن مسلط می کند


در جواب دوستمون باید عرض کنم  که برای توسعه پروژه بالاخص پروژه های نرم افزاری تنها به یک بعد اونم کم کردن هزینه برنامه نویسی نگاه نمی شود و جنبه های دیگری روی تصمیم گیری تاثیر گذارند . مثلا شما برای توسعه یک پروژه نیاز به تحلیل ابتدایی سیستم دارید اما زمانی که شما فریم وورک مشخصی داشته باشید تحلیل این سیستم بسیار ساده تر و امن تر خواهد بود ساده از آن نظر که خطهای  قرمز و مسیر برای شما در تحلیل مشخص شده و تمرکز شما باید تنها بر روی مسائل اصلی نرم افزار باشد و امن از این نظر که استفاده از یک فریم وورک تست شده و معتبر درصد امنیت نرم افزار شما را تا حد زیادی افزایش میدهد 
بحث دیگر توسعه نرم افزار است و استفاده از فریم وورکهای مشخص در اصل طراحی باعث می شود که هزینه شما در طول توسعه نرم افزار بسیار کم شود تولید نرم افزار یک فرایند مقطعی نیست و زمان ان تا زمان عمر نرم افزار است به طول می انجام  . قسمت دیگه ای از نرم افزار بحث Debug برنامه است که باز هم استفاده از تکنولوژی ها و فریم وورکهای استاندارد درصد اشکالات برنامه را تا حد زیادی پایین می اورد و همین باعث کاهش هزینه می گردد پس با این بحث متوجه می شویم که استفاده از یک قالب کاری استاندارد باعث کم شدن هزینه می گزدد و همانجور که مطلع هستید فریم وورکهای مختلف جاوا از جمله اسپرینگ امتحان خودشون را پس داده اند 


> اگر افراد مایل هستند که بدانند در سطح کلان از چه  ابزارهایی استفاده می  کنند در یک کلام عرض کنم که در راستای نیل به یک solutionهر ابزاری که با  کمترین صرف وقت از جانب نیروی انسانی  کار را میسر می کند انتخاب اول است.


این حرف شما هم کمی ساده انگارانه هست و شما تنها به ایران نگاه میکنید که از تمام ابزارهای Microsoft به صورت رایگان استفاده میکنیم و اینکه چون IDE دات نت محیطی ساده دارد پس هزینه را پایین می آورد . 




> حالت دوم مدیریت تولید احساس می کند که کارها به سمت y در حال سوق داده شدن  است از sharpترین افراد تیم میخواهد که به سمت y سوئیچ کنند و به شکل  نامتقارن تیم را بر آن مسلط می کند


این حالت بسیار اندک در سطح کلان اتفاق می افتد و تغییر توانایی افراد یا تسلط کاری افزاد بحثی هزینه بر است (زمان / پول) و به اصطلاح شما سوئیچ کردن چه متقارن و چه نا متقارن باعث مشکلاتی میشود که گاها جبران ناپذیر می باشند(نقش مدیر پروژه در این امر بسیار مهم است)

امیدوارم که دوستان به نقد و بررسی گفته های بنده هم بپردازند .

----------


## billguess

> در جواب دوستمون باید عرض کنم  که برای توسعه پروژه بالاخص پروژه های نرم افزاری تنها به یک بعد اونم کم کردن هزینه برنامه نویسی نگاه نمی شود [/COLOR]


از این که بنده رو دوست خودتون خطاب کردید باعث افتخار منه و از این بابت سپاس گزارم دوست خوبم
اما یادآوری چند نکته(سوال):
1-انتخاب یک معماری خاص یا یک فریم ورک وکلاً بحث در مورد ارتباط این دو موضوع ویا تکنولوژی خاص ،در چه مرحله ای از فرآیند تولید نرم افزار صورت می گیرد؟
2-از ابتدای بحث توجه و تکیه بر استفاده از این تکنولوژی (J2EE)در* ایران* بود.
یک سوال دیگر:
به نظر شما صحیح است که مثلاً بگوییم  که ما از معماری MVC استفاده می کنیم و Springهم که به قول شما جواب پس داده پس حالا بریم ببینیم که صورت مسئله چیست؟
نکته ی دیگر :
پروسه طراحی نرم افزار،به نظر شما در چه جایگاهی قرار دارد و در پروسه طراحی و معماری نرم افزار در باب چه موضوعاتی بحث می شود؟
نکتات آخر:
1-از اینکه به نظر شما ساده انگارانه ،صرف وقت کمتر از جانب تیم تولید در راستای تحقق solutionمورد نظر را،مهم می دانم و پذیرفته ام خوشحالم
2-منظور از هزینه ،هزینه فرآیند تولید نرم افزار است
3-به نظر شما تمرکز صرف روی یک فریم ورک مثلاً Springکار تحلیل را راحت تر می کند آیا به PBP و تشخیص این نکات در مراحل بالاتر فکر کرده اید؟
4-معمولاً هر تیم توسعه بر یک سری تکنیک های خاص مسلط است و بحث ها ی Xyپست قبلی بنده مبین همین مطلب بود و نحوه ی استفاده بهینه از این تکنیک ها و پیشبرد صحیح فرآیند تولید و در یک عبارت :"بهینه سازی" عملکرد
5-لطفاً بین تولید (اولیه) و توسعه(ثانویه ،استمرار) نرم افزار فرق بگذارید.
6-اگر منظور شما را خوب متوجه نشدم لطفاً بیشتر توضیح دهید تا این چالش(بحث)مفید واقع شود

با تشکر

----------


## persianshadow

در جواب به بحث‌های آخر دوستمون billguess و بدون توجه به پست‌های قبلی :

۱ - انتخاب فریم ورک و در اصل تکنولوژی مورد استفاده برای پیاده سازی بعد از تجزیه و تحلیل صورت میگیره

ولی وقتی یک شرکت و یا تیم فرضآ از JEE استفاده می‌کنند چون می‌دونن این تکنولوژی گستره هر جور 

پروژه‌ای رو پوشش میده پس امکان اینکه در حین تحلیل کار تکنولوژی رو هم مدنظر قرار بدیم وجود داره.

۲ - J2EE عبارت درستی نیست و در اصل این عبارت منسوخ شده و باید از JEE استفاده کرد به گونه‌ای 

که در حال حاضر JEE6 مورد استفاده هست.

۳ - درباره اینکه صورت مسئله رو باید ابتدا مورد بررسی قرار داد با شما کاملآ موافقم.و تکیه بر تکنولوژی 

رو میشه بعدآ هم انجام داد.

۴ - به این موضوع که شما تاکید دارید که پروسه طراحی نرم افزار در چه جایگاهی قرار دارد میشه قدری

خرده گرفت با وجود متدلوژی نظیر Agile میشه در حین طراحی پیاده سازی ، رفع خطا و تولید نسخه نمونه

[prototype] رو انجام داد.برای همین هست که میگم امکان تعیین قالب کاری در ابتدای کار هم وجود داره.


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

یک زاویه به آن نگاه کرده.از دید تحلیل گر ، توسعه دهنده ، پشتیبان و ....

----------


## billguess

در باب فرمایشات متین ،PersianShadow عزیز:

1-شما درست می فرمائید با فرض صحت اشارات شما داریم:

  1-1- اما یک توضیح غیر تخصصی :یک وانت ،یک نیسان و یک کامیون می توانند 100kgبار حمل کنند اما تشخیص استفاده از کدام یک بستگی به شرایط و پارامتر های مسئله دارد.

   2-1-توضیح تخصصی:انجام یک پروژه که توسعه آن مبتنی بر طرح زمانبندی مشخص نیست و ریت و نرخ توسعه آن به وضوح مشخص کننده بروز Scale نهایی در زمان مشخص نمی نواند باشد مستلزم در نظر گرفتن اهداف کوتاه مدت و *بهینه سازی* در هر بازه زمانی ضمن لحاظ نمودن مقصد نهایی ست(نظیر آنچه که در اکثر پروژهای نرم افزاری دولتی ایران توسط گروه های باتجربه صورت می گیرد یعنی ملاحظات نرم افزاری لازم )

2-متشکر از راهنمایی شما

3: (:

4-منظور از جایگاه ی "طراحی" ،صحبتی فارغ از متدولوژی خاصی است به عبارت دیگر همانطور که شما نیز در بین سطور خود تایید فرمودید ملاحظاتی تحت عنوان طراحی در قالب عملیاتی خاص با پیروی از یک سری اصول و منطبق بر پارامترهای مسئله با توجه به متدولوژی خاص در راه تولید نرم افزار صورت می گیرد که مراد همین پروسه است حال اگر به این توضیحات نقد(خرده ای)وارد است لازم به مباحثه بیشتری است.

با جملات آخر شما موافقم:

*همه جانها به قالبها نقوشي از پر عنقا            فروغ خور يكي باشد ، بود كثرت ز روزنها*

----------


## persianshadow

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

نگاه می‌کنید و کاملآ هم معقول و پسندیده هست.[چه بسا صحیح هم همین موضوع باشه].

متاسفانه برنامه نویسان ایرانی دقت کمتری [یا حداقل وقت کمتری] برای تحلیل ، انتخاب متدولوژی و مواردی

از این دست قرار میدن و شاید قدری باعث خستگی خودشون و کم شدن کیفیت کارها میشه.[باگ فراوان - دیر تحویل دادن پروژه ها]...

----------


## billguess

فقط چند نکته به عنوان ملحقات به فرمایشات PersianShadowعزیز اضافه کنم:
بنده در زمینه نرم افزار و کامپیوتر همیشه خودم رو یک دانش آموز میدونم ولی در کل حداقل عنوان کاری (سمت شغلی) بنده برنامه نویس می باشد
و به نظر من :علت بخش عمده ای از مشکلات تولید نرم افزار در ایران ابتدا به عدم استاندارد بودن روال های اجرایی و تعصب بر آن روال مذکور و یک کلام عرض کنم صنعتی نبودن ایران عزیز است و حتی می توان تاثیرات نفت در صنعتی شدن ایران با توجه وتاکید بر صنعت نرم افزار را به بحث نشست ولی جهت اینکه هم از بحث دور نشوم هم این دست بحث ها برای خیلی ها بخصوص جوان تر های نرم افزار کسل کننده است (اگرچه حیاتی است)از آن فاصله میگیرم

از این دست تحلیل ها فقط در سطح Enterpriseمطرح است و معمولاً افرادی که نرم افزار را به ابزارها متصل می کنند از آن بیزارند و *تحلیل* و تاکید بر *طراحی* را وقت تلف کردن می دانند

یعنی تا صحبت از تولید نرم افزار می شود سریع VS 2003/2005/2008  یا NetBeans و...به ذهنشان می آید البته این نوع نگاه  هم قابل توجیه است وهم پذیرفتنی.

اما جهت اینکه به اولین سوالات این تاپیک در صفحه اول هم که نیت از ایجاد آن هم بوده پاسخی داده باشم که سعی  بنده در چند پست گذشته هم همین بوده باید عرض کنم که تاکید خیلی از شرکت ها ی فعال در زمینه JEE بر محصولات ومیان افزار های شرکت های Oracle و IBM است حال شما خودت بسته به پروژه جایگزین کن مثلاًWebLogic+OracleJdeveloper+OracleADF,...
یا Websphere+Eclipse+IBMRational,... 

و اما در پایان قابل ذکر است که بر برنامه نوسان ایرانی و تولید کنندگان نرم افزار در ایران نیز نمی توان خیلی خرده گرفت اگرچه این جمله را از سر توجیه رفتار شغلی خودم نمی گوییم اما معتقدم که خود تولید کنندگان نرم افزار هم در پاره ای از اوقات اصلاً حرفه ای عمل نمی کنند وبعد در صدد توجیه به هر سمتی چنگ می زنند که در خور شان تولید کنندگان نرم افزار نیست

----------


## persianshadow

البته همین انتخاب فناوری هم قدری جای تامل داره فرضآ همچنان از قالب‌های کاری Struts و Hibernate

استفاده میشه و به نظر این افراد هنوز نگاهی به JEE6 و GlassFish ننداختن ! 

در جایی که شرکت سان سابق و با تاکید اوراکل بر روی استاندارهای چون JPA پافشاری میکنند نباید پای

قالب‌های کاری دیگه رو باز کرد.یا فرضآ وقتی سروری چون GLassFish 3 وجود داره.

متاسفانه عدم مطالعه دائم ، ذهنیت‌های نامنسجم و نا پویا چنین مشکلاتی رو به وجود میاره.

فرضآ فردی یا شرکتی از J2EE 1.4 استفاده میکرده و به هیچ وجه خودش رو به روز نکرده همچنان

یک بند اسم فناورهای ۶ سال پیش رو تکرار میکنه.

در حال حاضر ترکیب فناوری‌ها ، سرورها و ابزار توسعه زیر استانداردترین ، کدبازترین و کم‌هزینه‌ترین روش

برای تولید برنامه های سازمانی [Enterprise] جاواست :

Netbeans 6.8   + JEE 6   +  GlassFish

تقریبآ JEE6 در ادامه راه JEE 5 و با درک مشکلات گذشته راه کارهای جدید و قوی ارائه داده که نیاز 

به استفاده از دیگر قالب‌های کاری رو به صفر رسونده...

در تکمیل صحبت دوستمون Billguss باید ذکر کنم :

فرآیند تحلیل ، پروسه تولید صحیح ، نوشتن مستندات رو هر برنامه‌نویسی باید مدنظر قرار بده و فارغ 

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

در راه یادگرفتن این موارد نیز چیز کمی نیست.همچنین مدنظر قرار بدید که برنامه نویسان بزرگ سن‌های 

بالایی دارند.پس بدون ترس و نگرانی از چیزی مطالعه کنید و به کار خودتون ادامه بدید.

[نمونه‌اش هم خالق جاوا جیمز گازلینک که البته چند هفته پیش از شرکت اوراکل جدا شد ولی به هر حال

در سن بالا جاوا رو پایه گذاری کرد و سال ها برای پیشرفت اون تلاش کرد.]

----------


## billguess

jbossدر ایران پر استفاده تر می باشد چرا که هسته ی اولیه آن نسبت به G.Fکوچک تر بوده و در صورت نیاز موارد دیگر به آن اضافه می شود مثل XPDLو... همچنین Rule_Engineشناخته شده ی آن در کاربرد بیشترش تاثیر گذار است .
من به شخصه به G.F علاقه مندم اما در محیط های کاری کمتر به Component baseبودن کار اهمیت می دهند وبه یک کانتینر تنها به عنوان یک سرور ساده نگاه می کنند(در مواردی این نوع نگاه اجتناب ناپذیر است) یعنی از G.Fتقریباً به اندازه Apacheاستفاده می کنند با این تفاوت که دردسرهای راه اندازی تغییر ماهیت می دهند و سختی های رایج کار با آپاچی در G.Fوجود ندارد اما مسائل جدیدی در configآن جایگزین می شود در کل اگر کسی علاقه مند به به کارگیری G.Fاست توصیه می کنم EJB3ومفاهیم مرتبط با آن را نیز مد نظر قرار دهد
اما نکات آخر:
-یک پروژه دز سطح کلان بعضاً تا اولین انتشارش سالها به طول می انجامد واز آنجا که نسخ ابزارهای مورد استفاده سریع تر ارتقا می یابند پس یک ارتقا نا همگام بدیهی است

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


-به عنوان کسی که از Strutsاستفاده می کنم باور کن به G.Fنگاه انداختم اما هنوز هم در تیپ پروژه هایی که سلسله مراتب و Dispatchingمتمرکز نیاز است کار با Struts2 دارای انعطاف بیشتری است وسربار کمتری دارد 

-در مورد کم هزینه تر شدن در اثر استفاده ازتکنولوژی ها مطروحه PersianShadow عزیز هم نیاز به تعمق بیشتر بر دامنه راه حل می باشد و اینکه شعاع عملیات متداخل در سیستم طراحی شده از شعاع  بخش عملیاتی مستقل بیشتر است است یا نه(این نکته در سیستم هایی که زیر سیستم های عملیاتی زیادی دارد مهم است)

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

"این نرم افزار فقط یک نمونه بود و کلاً یک تیم فنی قوی هم دغدغه هایی دارد.که برای درک آن تنها راه، لمس این دغدغه ها است، شاید اگر روزی به محیط های پر تنش و استرس زای تکنولوژیست ها وارد شوید تمرکز را مهم ترین چیز در زندگی بنامید..."

در پایان چون از نرم افزار نگین برای تنویر اذهان مثال زدم برای تیم فنی مقتدر آن آرزوی بهروزی می کنم و امیدوارم  به زودی در جایگاه حقیقی شان در منطقه  قرار بگیرند...

----------


## mazdadoost

> البته همین انتخاب فناوری هم قدری جای تامل داره *فرضآ همچنان از قالب‌های کاری Struts و Hibernate
> 
> استفاده میشه و به نظر این افراد هنوز نگاهی به JEE6 و GlassFish ننداختن !* 
> 
> *در جایی که شرکت سان سابق و با تاکید اوراکل بر روی استاندارهای چون JPA پافشاری میکنند نباید پای
> 
> قالب‌های کاری دیگه رو باز کرد.یا فرضآ وقتی سروری چون GLassFish 3 وجود داره.*
> 
> *متاسفانه عدم مطالعه دائم ، ذهنیت‌های نامنسجم و نا پویا چنین مشکلاتی رو به وجود میاره.*
> ...


سلام :
دوست عزیز میشه درباره مطالبی که Bold کردم بیشتر توضیح بدین؟

----------


## persianshadow

سلام

همین اول ذکر کنم طبعآ منظور من بد بودن Struts و یا Hibernate و یا Spring نیست.

ولی توضیح درباره چیزهای که گفتم :

از زمان J2EE 1.4 و به خاطر ضعف‌های که داشت که توسعه‌دهندگان اون هم بهش اشاره می‌کردند.

قالب‌های کاری بی‌نظیری چون Hibernate ، Spring ، Struts به وجود اومدن و بی‌شک وظیفه قالب کاری

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

وجود نداشته.اما در فاصله زمانی [که چندین سال هم بود] تا ارائه JEE5 روشی نو برای رعایت کردن

استانداردها در سان پیش اومد JPA 1.0 ارائه شد تا با الگو گیری از Hibernate با روشی استانداردتر

و درونی در JEE بتونه Data Persistence رو تامین کنه . EJB تکمیل شد و راهکارهای جدیدی برای استفاده

از وب سرویس ها به وجود اومد.ولی JEE6 یک انقلاب تازه در ادامه راه JEE5 بود تنها و تنها با ارائه JPA 2.0

شما با ابزاری قدرتمندتر از Hibernate طرف هستید و صد البته استاندارد چون با بخشی از JEE در حال 

کار کردن هستید.بعد از اینکه سال ها برنامه نویسان با استفاده از Application server های مختلفی چون

JBoss AS ، ‌Tomcat ، Weblogic , .... باید منتظر استاندارد شدن هر کدام می‌ماندند سرانجام شرکت

سان شروع به ساخت سروری مجزا که با آخرین استانداردها همراه است کرد یعنی Glassfish جایی

که شما اطمینان دارید کدها و فناوری‌های که در حال استفاده هستید توسط یک Application Server

استاندارد پشتیبانی خواهد شد.

بی شک یکی دیگر از مزیت‌های JEE6 عدم تنظیمات مجدد برنامه های تولید شده برای سرورهای مختلف 

است.

درباره عدم مطالعه هم وقتی هنوز به JEE 6 ، J2EE گفته می‌شه و یا خیلی از فناوری‌های موجود در اون

در ایران مهجور مونده شما انتظاری غیر از این جملات دارید ؟ 

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

استفاده می‌کنند. البته در مقام مقایسه با دات نت.

به هر حال به نظر دلیل اینکه جاوا بعد از یک دهه هنوز طرفداران زیادی داره و در جاهای مختلف مورد 

استفاده قرار می‌گیره همین ارائه راه کارهای نوین هست.و طبعآ وقتی یک فناوری به صورت رایگان

در دست‌رسه باید از اون درست و کامل استفاده کرد...

----------


## mazdadoost

> سلام
> 
> همین اول ذکر کنم طبعآ منظور من بد بودن Struts و یا Hibernate و یا Spring نیست.
> 
> ولی توضیح درباره چیزهای که گفتم :
> 
> از زمان J2EE 1.4 و به خاطر ضعف‌های که داشت که توسعه‌دهندگان اون هم بهش اشاره می‌کردند.
> 
> قالب‌های کاری بی‌نظیری چون Hibernate ، Spring ، Struts به وجود اومدن و بی‌شک وظیفه قالب کاری
> ...


دوست عزیز :
قبل از هر چیز می خولم به این نکته توجه بشه که تمامی این اسم ها (JavaEE-Hibernate-JPA-Spring ......)دقیقا همون چیز هایی هستند که ما ها رو دوره جاوا متمرکز میکنند یعنی (قدرت)!

به عبارتی وجود همه این امکانات در کنار هم چیز هایی هستند که به ما کمک می کنند تا به ویژگی منحصر به فرد جاوا یعنی انعطاف پذیری برسیم.

1-*در وهله اول کم کردن زمان توسعه و ساده کردن اون و همچنین افزودن یک سری قابلیت که از قبل 

وجود نداشته.* به این فهرست هزینه های مقیاس پذیری رو هم اضافه کنید . برای Scale  کردن JavaEE محض نیاز به سخت افزار قوی و به تبع مصرف برق بیشتر و هزینه های بالاتری نسبت به نمونه های Light Weight هست این فاکتور در امور تجاری بسیار مهم هست چه در اینجا در اونجا.

2- *روشی استانداردتر* بارها در این بارها صحبت شده. (چه در اینجا در اونجا!) روش استاندارد هنوز معنی در جامعه جاوا به شکل مشخص نداره (چرا؟ اصلا استاندارد یعنی چی وقتی حجم عمده ای از پروژه ها چه در گذشته و چه الان با همین ابزار غیر رسمی اما به اصطلاح  Defacto Standard تولید میشه چه قضاوتی میشه کرد!).

3-*تنها و تنها با ارائه JPA 2.0

شما با ابزاری قدرتمندتر از Hibernate طرف هستید و صد البته استاندارد چون با بخشی از JEE در حال 

کار کردن هستید.* شاید استاندارد تر اما مطمئنا JPA زیر شاخه ای از Hibernate هست و Hibernate خیلی فراتر از یک ORM عمل میکنه.

4-ب*بعد از اینکه سال ها برنامه نویسان با استفاده از Application server های مختلفی چون

JBoss AS ، ‌Tomcat ، Weblogic , .... باید منتظر استاندارد شدن هر کدام می‌ماندند سرانجام شرکت

سان شروع به ساخت سروری مجزا که با آخرین استانداردها همراه است کرد یعنی Glassfish جایی

که شما اطمینان دارید کدها و فناوری‌های که در حال استفاده هستید توسط یک Application Server

استاندارد پشتیبانی خواهد شد.* این مورد هم باز نشان از انعطاف پذیری زیاد جاوا داره و بازهم تکرار میکنم این که استاندارد شدن تبدیل به ایده آلی برای جامعه جاوا بشه تقریبا طبق خیلی از بحث هایی که جامعه جاوا در جریان داره نه امکان پذیره ونه مطلوب. مخصوصا انعطاف پذیری رو پایین میاره و از طرفی با افتادن افسار جاوا در دستان Oracle خطر انحصار طلبی رو بسیار افزایش میده!

5-*درباره عدم مطالعه هم وقتی هنوز به JEE 6 ، J2EE گفته می‌شه و یا خیلی از فناوری‌های موجود در اون

در ایران مهجور مونده شما انتظاری غیر از این جملات دارید ؟* راستش من به شخصه در این مملکت برعکسشو دیدم : هر کس خواسته به سمت جاوا بره در اولین نگاه بهدنبال همین فناوری های به اصطلاح استاندارد رفته و حرف این ها هم فقط هست و چیزی که در بارش تحقیق و مطالعه صورت نمیگیره چیز هیی مثل Spring-Hibernate-Groovy-Grails-Seem-و هزاران FrameWork و Library و Tools های متنوع -عمیق- قابل اعتماد و .... هست!

کلا به نظرم اکثر کسانی که Fnas (حالا چه منطقی - چه غیر منطقی ) فناوری های به اصطلاح استاندارد هستند  به نوعی در مواجعه با دنیای بزرگ جامعه جاوا دچار وسواس فکری و ترس میشند و ترجیح میدنند به همون JavaEE محض اکتفا کنند .(چون همونم باز خودش یک جورایی مرد میخواد تا به قول یکی از دوستانم از اینورش بری از اون ورش دربیای!!!).

از توجه دوستان ممنونم.
موفق و سربلند باشید.

----------


## persianshadow

سلام 

درسته من صحبت‌های شما رو قبول دارم و من هم چیزی غیر از این نگفتم.طبعآ یکی از دلایل محبوب بودن جاوا همین گسترده بودنش هست.و اتفاقآ کار کردن با قالب‌های کاری منطبق با جاوا هم یکی از مواردی هست که مورد توجه قرار گرفته.البته فقط در یک مورد که فرمودید JPA زیرشاخه‌ای از Hibernate هست با شما موافق نیستم ربطی هم به موافق بودن من نداره.چون JPA جز API استاندارد هست :‌
Javax.persistence
البته با گفته آخر شما هم کاملآ موافقم هر فردی و هر تیمی بنابر نیاز پروژه خودش و سنجش موضوع
قالب‌های کاری مختلفی رو در پروژه استفاده می‌کنه و طبعآ اصل هم نتیجه کار هست هیچ کسی نمی‌پرسه
پروژه شما با چه فناوری پیاده سازی شده.اصل کارایی هست و اینکه نیاز افراد رو مرتفع کنه.
و در نهایت اینکه تمامی این قالب های کاری بر بالای JDK ساخته شدند و از قدرت و استانداردهای 
اون بهره میبرن.پس میشه از قدرت همه اون ها لذت برد.
خیلی ممنون که با هم دیگه صحبت کردیم و با افکار همدیگه بیشتر آشنا شدیم.

----------


## javaphantom

> سلام 
> 
> درسته من صحبت‌های شما رو قبول دارم و من هم چیزی غیر از این نگفتم.طبعآ یکی از دلایل محبوب بودن جاوا همین گسترده بودنش هست.و اتفاقآ کار کردن با قالب‌های کاری منطبق با جاوا هم یکی از مواردی هست که مورد توجه قرار گرفته.البته فقط در یک مورد که فرمودید JPA زیرشاخه‌ای از Hibernate هست با شما موافق نیستم ربطی هم به موافق بودن من نداره.چون JPA جز API استاندارد هست :‌
> Javax.persistence


البته فکر کنم منظور مزدادوست این بوده که اول hibernateی اومد که بعدش jpa ی درست شد  :چشمک:

----------


## billguess

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

من منتظر بودم که کسی بیاد و از TopLinkو...هم صحبت کنه که نیومد
من از اینکه پیرامون جاوا بحث ها دامنه دار میشه خیلی لذت می برم ولی Proveکردن و به نوعی دیکته کردن هم در مباحث علمی صحیح نیست

جواب بی نظیر بودن یا بی نقص بودن ها در گذر زمان بیش از پیش تغییر میکنه زمانی ما نیز در بحث هایمان از ++Btrieve,Novell,Cزیاد طرفداری میکردیم Pointerرا شاهکار مینامیدیم ساخت یافته شدن ،قابلیت تکرار عملیات و...(این ها همچنان به نظر من زیبایند ولی بعضی هم کم استفاده)ولی امروز خیلی از این ها را کسی نمی شناسد.
بگذریم...


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



> درباره عدم مطالعه هم وقتی هنوز به JEE 6 ، J2EE گفته می‌شه و یا خیلی از فناوری‌های موجود در اون
> 
> در ایران مهجور مونده شما انتظاری غیر از این جملات دارید ؟


به عنوان کسی که یک، 2 ،را  به نظر شما زیادی گذاشتم باید عرض کنم که در بی سوادی یا بی مطالعه بودن خودم که شکی نیست ولی این لینک ها به عنوان نمونه هفته ی گذشته به روز شدن باز هم آن ،2، معروف در آنها وجود دارد از تفاوت دیکته و انشا ومعنی بگذریم J2EEیک نام ثبت شده است (TM).ولی می پذیرم که حق با شماست اگر، 2، نیاید به روزتر است. ولی فقدانش ملاک قضاوت  مطمنی برای یک تکنولوژیست نیست. 
http://www.oracle.com/technology/pro...k-install.html
http://www.oracle.com/technology/pro...e/exchange.xml

----------


## persianshadow

سلام، اول از پاراگراف‌های آخر شما دوست عزیز billguess ، من اصلآ به شما بی‌احترامی نکردم و اگه سوتفاهم 
شده از شما معذرت می‌خوام. منظور من چنین چیزی نبوده و موردی رو کلی عرض کردم.امیدوارم موجب رنجش
خاطر شما نشده باشم.ولی محیطی که بخواد پویا باقی بمونه بحث کردن باید در اون جا رواج داشته باشه البته با رعایت ادب.
اما درباره J2EE طبعآ به خاطر اینکه خیلی از سرویس‌های که در دنیا وجود داره با J2EE 1.4 پیاده‌سازی شده و امکان بروزرسانی اون‌ها نیست، برای همین همچنان از این تکنولوژی‌ها پشتیبانی بلند‌مدت میشه برای همین هنوز شرکت‌ها محصولاتی منطبق با این تکنولو‌ژی ها ارائه میدن.

اما TopLink هم محصول استانداردی نیست ! TopLink از زمان SmallTalk وجود داشته و به عنوان یک محصول تجاری همراه با جاوا استفاده شد بعدها JDO ارائه شد که حداقل استانداردهای جاوا رو رعایت کنه ولی در مارکت شکست خورد.زمانی که EJB 1.0 ارائه شد همراهش CMP رو ارائه کردن که هم پیچیده بود هم خاصیت‌های ORM کمی داشت.تا اینکه فریم‌ورک‌های مثل Hibernate روی کار اومدن و تحولی عظیم توی این زمینه ایجاد کردن.تا اینکه همزمان با JEE5 محصول JPA 1.0 ارائه شد تا همه مشکلات رو حل کنه و الان به عنوان یک Provider عالی EclipseLink وجود داره که به صورت کامل JPA 2.0 رو پوشش میده برای همین هست که TopLink به عنوان یک محصول تجاری و همچنین کدباز نبودن کمتر مورد توجه هست. 
[منظور بد بودن ، و یا استفاده نکردن از TopLink نبودن صرفآ مقایسه‌ای با جایگزین‌های موجود و همچنین تاریخچه‌ای از اینکه چرا اینقدر باید روی JPA 2.0 تاکید کرد]

----------


## javaphantom

> سلام، اول از پاراگراف‌های آخر شما دوست عزیز billguess ، من اصلآ به شما بی‌احترامی نکردم و اگه سوتفاهم 
> شده از شما معذرت می‌خوام. منظور من چنین چیزی نبوده و موردی رو کلی عرض کردم.امیدوارم موجب رنجش
> خاطر شما نشده باشم.ولی محیطی که بخواد پویا باقی بمونه بحث کردن باید در اون جا رواج داشته باشه البته با رعایت ادب.
> اما درباره J2EE طبعآ به خاطر اینکه خیلی از سرویس‌های که در دنیا وجود داره با J2EE 1.4 پیاده‌سازی شده و امکان بروزرسانی اون‌ها نیست، برای همین همچنان از این تکنولوژی‌ها پشتیبانی بلند‌مدت میشه برای همین هنوز شرکت‌ها محصولاتی منطبق با این تکنولو‌ژی ها ارائه میدن.
> 
> اما TopLink هم محصول استانداردی نیست ! TopLink از زمان SmallTalk وجود داشته و به عنوان یک محصول تجاری همراه با جاوا استفاده شد بعدها JDO ارائه شد که حداقل استانداردهای جاوا رو رعایت کنه ولی در مارکت شکست خورد.زمانی که EJB 1.0 ارائه شد همراهش CMP رو ارائه کردن که هم پیچیده بود هم خاصیت‌های ORM کمی داشت.تا اینکه فریم‌ورک‌های مثل Hibernate روی کار اومدن و تحولی عظیم توی این زمینه ایجاد کردن.تا اینکه همزمان با JEE5 محصول JPA 1.0 ارائه شد تا همه مشکلات رو حل کنه و الان به عنوان یک Provider عالی EclipseLink وجود داره که به صورت کامل JPA 2.0 رو پوشش میده برای همین هست که TopLink به عنوان یک محصول تجاری و همچنین کدباز نبودن کمتر مورد توجه هست. 
> [منظور بد بودن ، و یا استفاده نکردن از TopLink نبودن صرفآ مقایسه‌ای با جایگزین‌های موجود و همچنین تاریخچه‌ای از اینکه چرا اینقدر باید روی JPA 2.0 تاکید کرد]


این که شما انقدر به استاندارد بودن محصول علاقه دارید قابل شتایش است. من هم از اینجا با شما همگام می شم که استاندارد مفهومش فرآیه محصول است.

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

----------


## billguess

> سلام، اول از پاراگراف‌های آخر شما دوست عزیز billguess ، من اصلآ به شما بی‌احترامی نکردم و اگه سوتفاهم 
> شده از شما معذرت می‌خوام .]


سلام از بنده است و نه خیر شما اصلاً بی احترامی نکردید و معذرت هم لازم نیست و ادب شما را تحسین میکنم که چیزی غیر از این هم از یک Java Expertانتظار نمی ره.




> .ولی محیطی که بخواد پویا باقی بمونه بحث کردن باید در اون جا رواج داشته باشه البته با رعایت ادب.


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



> اما TopLink هم محصول استانداردی نیست !


به هر حال قانون نانوشته ای Jdeveloper,OracleADF,Jheadstart,Toplinkو...رو به هم متصل می کنه 
و علی رغم موضوع استاندارد بودن یا نبودن در عمل این مجموعه یک محیط 4GLونسبتاً قابل قبول رو فراهم می یاره و در نرم افزارهای با حجم محاسباتی بالا امکان RAD بر پایه ی Component ها رو فراهم میکنه البته من خودم زیاد این مجموعه اخیر رو نمی پسندم و نمی دونم چرا ولی استفاده از این امکانات رو هم به نوعی وابستگی تلقی می کنم حالا بماند که خیلی ها روی این مجموعه کار می کنند و راضی هم هستند
تاریچه کوتاهی از TopLink

----------


## mazdadoost

سلام:
منظورم این بود : 

به عبارتی Hibernate علاوه بر اینکه یک Jpa Prrovider هست امکانات بیشتری از اون رو ارائه میده .

----------


## persianshadow

اما برای بحث درباره اینکه چه کسی استاندارد را تعریف می‌کند و بر اساس چه چیزهای استاندارد تعریف می‌شه ؟ 
در بدو موضوع باید در نظر داشته باشیم استانداردها برای اینکه تعامل بین انسان‌ها رو ساده‌تر کنند به وجود اومدند وقتی ما مقیاس طول رو متر قرار میدیم در کل جهان قابل درک هست و امکان نداره متر ما با متر جای دیگه متفاوت باشه این نکته اول یعنی ضرورت استاندارد قابل درک هست.

فرض کنید هند چرا اینقدر بهش پروژه‌های Outsource میدن ؟ صرفآ که ارزون بودن نیست.استاندارد بودن هست
شرکت‌های آمریکایی و اروپایی می‌دونن وقتی صدها هزار دلار پول یه کامپوننت رو میدن در عوض چیزی رو دریافت می‌کنن که ازش سر درمیارن.سال‌ها پیش توی ایران هم outsource گرفته شد ولی در نهایت خیلی از اون پروژه‌ها رو لغو کردن چون استاندارد تولید نشده بود.

و نکته سوم برای لزوم استاندارد عمل کردن اینکه تولید نرم‌افزار یک صنعت هست و وقتی کلمه صنعت به میون میاد استاندارد یک واژه پرقدمت میشه.

حالا از بحث لزوم استاندارد بیاییم بیرون ببینم در جاوا این استانداردها رو کی تعیین میکنه.خب یک مثال از دو 
کد زیر کدوم یکی استاندارد هست کدوم یکی نه :

javax.swing

org.apache

خب طبعآ کد اول استاندارد هست ولی کد دوم می‌تونه استاندارد باشه می‌تونه نباشه.پس ملاک ما چی هست ؟ 

در جاوا یک اکوسیستم برای اینکار وجود داره مجموع دو چیز استاندارد رو تعیین میکنه :

Java Specification  +  JCP

به طور واضح و بر طبق اسناد سان [سابق] استانداردها از دل JCP و از طریق JSR بیرون میاد.فرض کنید در زمانی جاوا یک Data Persistence نداشت سان اعلام کرد JDO فعلآ روش استاندارد هست.الان JCP اعلام میکنه که ما روش JPA رو در پیش گرفتیم و این روش استاندارد هست.یعنی مرجع تصمیم گیرنده در جاوا برای روش‌های استاندارد JCP هست.و به شکل ۱۰۰٪ ملاک تمام تصمیم گیری‌ها.
یک زمانی سان [سابق] اپلیکیشن سرور نداشت.تست تطابق برای J2EE گذاشت و JBoss تونست اون تست‌ها رو کامل طی کنه تا به یک اپلیکیشن سرور استاندارد بدل بشه.بعد از مدت‌ها سان GlassFish رو پایه
استانداردهای خودش اعلام می‌کنه.
بحث ما سر این نیست که JBoss خوب هست یا نه و یا فرضآ Hibernate خوب هست یا نه تمام این پلتفرم‌ها
عالی بحث ما حتی استفاده یا عدم استفاده از اون‌ها نیست.ما درباره استاندارد صنعتی صحبت می‌کنیم ممکنه حتی بزرگترین شرکت‌های نرم‌افزاری دنیا هم اون‌ها رو رعایت نکنن.ولی مسیر این هست و تغییرات به این سمت و سو میره.شما فرض کنید EclipseLink میاد و تمام استانداردهای JPA 2.0 رو پشتیبانی می‌کنه شما الان در وب و گفته‌های شخصی افراد مطرح جاوا در دنیا می‌بینید گرایش به این سمت میره.

اما چرا استاندارد خوب هست ؟ 

دوام و پایداری راز استاندارد هست شما وقتی از ابزار استاندارد استفاده می‌کنید مطمئن هستید تغییرات به آرامی با دقت و با دلیل مناسب صورت می‌گیره کاری که شما می‌بینید در JCP انجام میشه و تا وقتی افراد و شرکت‌های مختلف درباره یک JSR نظر ندن انجام نمی‌شه.

فرض کنید Groovy وقتی اومد یه عنوان یک زبان اسکریپتی مورد توجه فوق‌العاده قرار گرفت.ولی سال گذشته 
سازنده Groovy در وبلاگش نوشت از دید اون Scala چیزی فراتر از اون چیزی هست که خودش ساخته ! این یعنی دعوت از همه برای استفاده از Scala.مشکل اینجاست که حتی این زبان‌ها کما اینکه از حمایت JCP برخوردار هستند ولی به دلیل وجود یک استاندارد قوی در پشت اون‌ها تغییر و تحولات ناگهانی زیادی دارن.

در این لحظه و تا قبل از زمانی که اوراکل هفتمین پلتفرم جاوا JSE 7 رو ارائه بده.استانداردها بر روی 

JSE 6 و JEE6 تمرکز کرده.همچنین همونطور که خود اوراکل هم تاکید کرد.نت‌بینز رو به عنوان IDE توسعه‌دهندگان جاوا و JDeveloper رو به عنوان IDE توسعه‌دهندگان اوراکل حمایت خواهد کرد.این‌ها همشون یعنی تاکید وقتی مدیرعامل اوراکل در صحبتش میگه ما از انقلاب تکنولوژیک JEE 6  حمایت می‌کنیم و در نسخه بعدی همین موضوع رو ادامه میدیم همش نشان از روش و خطی که باید در پیش گرفت داره.این که هنوز یک سری از محصولات تولید میشن و ازشون استفاده میشه صرفآ به خاطر خو گرفتن افراد هست و نه استاندارد بودن یا حتی عرف بودنش.

----------


## javaphantom

> اما برای بحث درباره اینکه چه کسی استاندارد را تعریف می‌کند و بر اساس چه چیزهای استاندارد تعریف می‌شه ؟ 
> در بدو موضوع باید در نظر داشته باشیم استانداردها برای اینکه تعامل بین انسان‌ها رو ساده‌تر کنند به وجود اومدند وقتی ما مقیاس طول رو متر قرار میدیم در کل جهان قابل درک هست و امکان نداره متر ما با متر جای دیگه متفاوت باشه این نکته اول یعنی ضرورت استاندارد قابل درک هست.
> 
> فرض کنید هند چرا اینقدر بهش پروژه‌های Outsource میدن ؟ صرفآ که ارزون بودن نیست.استاندارد بودن هست
> شرکت‌های آمریکایی و اروپایی می‌دونن وقتی صدها هزار دلار پول یه کامپوننت رو میدن در عوض چیزی رو دریافت می‌کنن که ازش سر درمیارن.سال‌ها پیش توی ایران هم outsource گرفته شد ولی در نهایت خیلی از اون پروژه‌ها رو لغو کردن چون استاندارد تولید نشده بود.
> 
> و نکته سوم برای لزوم استاندارد عمل کردن اینکه تولید نرم‌افزار یک صنعت هست و وقتی کلمه صنعت به میون میاد استاندارد یک واژه پرقدمت میشه.
> 
> حالا از بحث لزوم استاندارد بیاییم بیرون ببینم در جاوا این استانداردها رو کی تعیین میکنه.خب یک مثال از دو 
> ...


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

اما کلا سوال من این بود که استاندارد چه کسی یا کسانی و بر اساس چه معیاری تعریف می کنند.

ببین عزیز من سان سابق اول JPA نداشت hibernate دید خوشش اومد ولی hibernate بقول شما و کلا توی JCP قبلا مطرح نبود. دیدن یک فریم ورک هست خوبه، قشنگه بعد اومد براش JSR داد بیرون.

EJB اول ماله IBM بود سان ثابق خوشش اومد براش JSR داد بیرون. خیلی از همون شرکتها از جمله apache اومد این JSR رو Implement کرد. خود Hibernate اومد JSR ی که توی JPA هست رو implement کرد. مشکلی نیست ولی الان همه می دونند که خیلی از مباحثی که توی hibernate بود الان تازه توی jpa 2 اومده توی قبلی نبود. hibernate هنوز داره نسخه می ده. مگه toplink نبود، ماله oracle هم بود ولی الان کجاست؟ الان eclipselink هست.

منظور من اینه که استاندارد هاهم که من کاملا با شما موافقم ماورای محصول هستند ولی دلیل بر این نیست که باید استانداردی بوجود بیاد تا محصولی ایجاد بشه و محصولی که بر اساس استاندارد هست حتما به اجرا در بیاد.

محصولاتی هستند که الان بسیار رایج و آسانتر و قوی تر از نوع استاندارد خودشون هستند.
spring که یک فریم ورک بود و الان تبدیل به یک platform شده بسیار رایج و آسون و فراگیر هست تا ejb container در ضمن استاندارد هم نیست ولی بسیار popular هست.

و جالب اینکه ejb به عنوان یک api استاندارد جاوا در webapp های متفاوت بصورت همیشه درست deploy نمی شه با اینکه یک api استاندارد بشمار می آید.

اینکه هند در صنعت نرم افزار موفق شده به این دلیل نیست که استاندارد کار می کنه بلکه دلایل مختلفی هست که باعث شده که هند موفق بشه.

کسانی که با جاوا کار می کنند خیلی خوب می دونند بزرگترین حسن ان اینه که ، البته به نظر من  که شما دستت بازه چون JCP ماله یک شرکت نیست ماله بیش از ۳۰۰ شرکت غول IT هست و JSR ها رو از روی هوا خلق نمی کنند و جالب اینکه مدیران این شرکت ها خیلی بی تعصبانه نسبت به قضیه فکر می کنند تا مصرف کنندگان این محصول ها. اینکه استارد هست باید حتما استاندارد استفاده بشه بنا به دلایلی که بالا گفتم در دنیای java enterprise هیچ مطرح و اجباری نیست

----------


## billguess

> اما کلا سوال من این بود که استاندارد چه کسی یا کسانی و بر اساس چه معیاری تعریف می کنند.


برای صحبت کردن در مورد استاندارد فقط تسلط صرف بر علم نرم افزار کافی نیست حتی اگر موضوع مورد بحث بر روی محصولات نرم افزاری باشه اما اینکه چه کسی [/انی]استاندارد را تعیین می کنند یک مثال نرم افزاری می تواند W3Cو...باشد البته یک مثال بود به عبارت دیگر چه کسانی(شرکت هایی) در مجموعه تعیین کننده دخیل  هستند.
اما آن چیزی که ما به عنوان استاندارد در نرم افزار می شناسیم نظر غالب قدرت های روز است که صد البته در دنیای امروز یک توجیه علمی یا استدلال فنی برای همراهی گروههای هدف نیز لازم است.
من مارکسسیت نیستم ولی برای اقتصاد نقش نهایی قائلم،اما معتقدم اقتصاد سیاسی در دنیای نرم افزار موج می زند و یکی از اصول اقتصاد بحث رقابت است و برتری در این رقابت پارامترهای بیشماری دارد.
نکته بعدی اینکه استاندارد به این شکل نیست که مثلاً عده ای با در نظر گرفتن علایق و گرایشات خود ان را خلق کنند  اگرچه امروز علایق قدرت های بزرگ تعیین کننده شده و مفهوم انحصار دقیقاً موید همین مطلب است و اگر مبدا سیر تکاملی استاندارد را از آرا  ،اف تیلور و سایر متقدمین بگیرم پارامتر عقل، اثبات ،بازده و جوابگویی مورد سنجش در قبال این پارامترها راهگشا ست


> ببین عزیز من سان سابق اول JPA نداشت hibernate دید خوشش اومد ولی hibernate بقول شما و کلا توی JCP قبلا مطرح نبود. دیدن یک فریم ورک هست خوبه، قشنگه بعد اومد براش JSR داد بیرون.
> 
> EJB اول ماله IBM بود سان ثابق خوشش اومد براش JSR داد بیرون. خیلی از همون شرکتها از جمله apache اومد این JSR رو Implement کرد. خود Hibernate اومد JSR ی که توی JPA هست رو implement کرد. مشکلی نیست ولی الان همه می دونند که خیلی از مباحثی که توی hibernate بود الان تازه توی jpa 2 اومده توی قبلی نبود. hibernate هنوز داره نسخه می ده. مگه toplink نبود، ماله oracle هم بود ولی الان کجاست؟ الان eclipselink هست.


تکامل و الگو برداری از موارد مثبت گذشته نقطه ی منفی محسوب نمی شه بحث استاندارد بودن JPA2.0 را کسی به عنوان اولین بودن یا بی رقیب بودن اون مطرح نمی کنه.



> محصولاتی هستند که الان بسیار رایج و آسانتر و قوی تر از نوع استاندارد خودشون هستند.
> spring که یک فریم ورک بود و الان تبدیل به یک platform شده بسیار رایج و آسون و فراگیر هست تا ejb container در ضمن استاندارد هم نیست ولی بسیار popular هست.


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

----------


## javaphantom

من در مورد بخش اول صحبتهاتون نظری ندارم چون کامل متوجه نشدم.



> تکامل و الگو برداری از موارد مثبت گذشته نقطه ی منفی محسوب نمی شه بحث استاندارد بودن JPA2.0 را کسی به عنوان اولین بودن یا بی رقیب بودن اون مطرح نمی کنه.


من موافق صحبت شما هستم به اضافه اینکه تنها راه حل هم نیست و حتی به جرات می گم نسبت به محصولات هم رده خودش ضعیفتر هم هست.

در مورد بخش آخر حرفتون 



> همیشه همراه استاندارد یک نوع آینده نگری هم مطرح می شود در خیلی موارد محصولات استاندارد به واسطه پیچیدگی هایی که برای عینیت بخشیدن به مفهوم انعطاف پذیری در آینده همراه خود دارند کمتر مورد استقبال قرار می گیرند.


آیا شما براین باور هستید که دیگر محصولات popular و مطرح بدون آینده نگری و با دید سطحی تولید شده اند و هیچ کدامشون بدون پیچیدگی هستند؟

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

----------


## billguess

> من در مورد بخش اول صحبتهاتون نظری ندارم چون کامل متوجه نشدم.


من در اون قسمت سعی کردم در چهار بخش طی کوه تاه ترین جملات نظرات مطرح چهار علم موجود که دارای تئوری در این مورد هستند را مطرح کنم یعنی علوم:
-مدیریت  
-اقتصاد
-سیاست
-نرم افزار
و در ضمن تمام سعی خودم را کردم که نرم افزاری بودن من بر روی مخلص جملات در هر بخش سایه بندازه اما ادای امانت نیز صورت بگیره.
پاورقی بخش اول:
این پاورقی هیچ ربطی به بحث ما نداره ولی چون می بینم به آلبرت انیشتن علاقه دارید پس:
جایی او[انیشتن] گفت: "همه چیز می بایست تا حد امکان ساده شود اما نه ساده تر"
و من می گوییم:"همه چیز می بایست تا حد امکان سنجیده شود حتی بیشتر  "
--------------------------------------------------------------------------------------------------------



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


قطعاً همانطور که خوتان نیز می دانید منظورم این نبود ، هر محبوبیت برگرفته از یک خواستگاه است  و تا زمانی که آن خواستگاه  و مورد کاربرد پا برجاست آن محبوبیت نیز وجود دارد اما بر روی همان مصادیقی که فعلاً مورد بحث ماست چند مورد به عنوان مثال عرض می کنم:
POJO Application Frameworks: Spring  , EJB 3.0مثلاً وقتی در مورد EJBوSpring صحبت می کنیم نا گریز از بحث در موارد زیر هستیم که نهایتاً موجب جهت گیری ما می شود.
1-Vendor Independence
حامیان EJB شامل مجموعه ها و تشکیلات منسجمی هستند که می تواند متضمن پیشرفت این استاندارد و استقلال آن در آینده باشند در مقابل Interface21 INC.
یا بحث در مورد نحوه ی Service Integration
بحث در مورد نحوه ی انعطاف پذیری در پیاده سازی
بحث در مورد تقابل وتفاهم XML و Annotation و.....

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

----------

