رفتن به مطلب

باهم جاوا یادبگیریم


سارا-افشار

ارسال های توصیه شده

بسیار عالی.

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

به قول معروف ریشو قیچی دست خودتونه.

:w16:

خب حالا یکی از پروژه های پیشنهادی رو انتخاب کنید

هرکدومش که بیشتر تو ذهن تون تعریف شده تر و واضح تر هس

بعدش بریم سراغ تحلیلش و تعریف کلاس هاو properties وmethod های هریک از کلاس ها

  • Like 2
لینک به دیدگاه
  • پاسخ 110
  • ایجاد شد
  • آخرین پاسخ

بهترین ارسال کنندگان این موضوع

بهترین ارسال کنندگان این موضوع

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

:w16::w16:

خب حالا یکی از پروژه های پیشنهادی رو انتخاب کنید

هرکدومش که بیشتر تو ذهن تون تعریف شده تر و واضح تر هس

بعدش بریم سراغ تحلیلش و تعریف کلاس هاو properties وmethod های هریک از کلاس ها

  • Like 2
لینک به دیدگاه

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

:icon_gol:

  • Like 2
لینک به دیدگاه
من دفترچه تلفن رو انتخاب میکنم.

:w16::w16:

اوکی

پس اول میریم سراغ تحلیل

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

:icon_gol:

 

غیر اونا حتما هس

کلا پروژه ما دو بخشه

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

زبان پرس وجوی مام sql هستش

کم کم میریم جلو

  • Like 2
لینک به دیدگاه

اول تحلیل سطحی وفوری و شناسایی موجودیت های دفترچه تلفن :ws37:

 

من میگم یه دفترچه تلفن یه موجودیت داره به اسم مشترک مورد نظر

 

هر مشترک موردنظر دارای ویژگی های زیر هستش :

-نام

-نام خانوادگی

-آدرس

-شماره تلفن

 

این مشترک مورد نظر چه رفتارهایی می تونه از خودش نشون بده ؟

-----------------

 

یه موجودیت دیگه هم به این پروژه اضافه می کنم به اسم کاربر

کاربر دارای ویژگی های زیر است

- نام کاربری

- رمز عبور

 

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

- مشترک جدیدی تعریف کند(insert)

-مشخصات مشترک فعلی رو تغییر دهد(update)

- مشترک رو از دفترچه حذف کند(delete)

-عمل بازیابی مشخصات یک مشتری رو انجام بدهد (select)

 

 

هر کاربر می تواند n مشترک مورد نظر رو تعر یف , به روز, حذف و بازیابی کند

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

هر مشترک مورد نظر می تواند فقط توسط یک کاربر حذف شود

هر مشترک موردنظر می تواند توسط n کاربر تغییر کند

هر مشترک مورد نظر می تواند توسط n کاربر بازیابی بشود

یک مشترک موردنظر می تواند n تا (n>0) شماره تلفن داشته باشد ولی یک شماره تلفن فقط متعلق به یک مشترک مورد نظر هست نه بیشتر

 

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

یعنی حتما باید به ذهن تون برسه :w16:

  • Like 3
لینک به دیدگاه

الآن قراره بروژه انجام بدیم ؟ با Eclips?

 

میشه به قسمتهایی که با قرمز نوشتم، جواب بدی؟ :hanghead:

اول تحلیل سطحی وفوری و شناسایی موجودیت های دفترچه تلفن :ws37:

 

من میگم یه دفترچه تلفن یه موجودیت داره به اسم مشترک مورد نظر

 

هر مشترک موردنظر دارای ویژگی های زیر هستش :

-نام

-نام خانوادگی

-آدرس

-شماره تلفن

 

این مشترک مورد نظر چه رفتارهایی می تونه از خودش نشون بده ؟

-----------------

 

یه موجودیت دیگه هم به این پروژه اضافه می کنم به اسم کاربر

کاربر دارای ویژگی های زیر است

- نام کاربری

- رمز عبور

 

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

- مشترک جدیدی تعریف کند(insert)

-مشخصات مشترک فعلی رو تغییر دهد(update)

- مشترک رو از دفترچه حذف کند(delete)

-عمل بازیابی مشخصات یک مشتری رو انجام بدهد (select)

میشه ریپورت هم اضافه کرد . من چه ایده های خلاقانه ای میدم:ws3:

 

هر کاربر می تواند n مشترک مورد نظر رو تعر یف , به روز, حذف و بازیابی کند

هر مشترک موردنظر می تواند فقط توسط یک کاربر تعریف بشود ( یعنی هر دفعه که کاربر جدید خواستیم اضافه کنیم، کله اطلاعات موجود رو بررسی کنیم که تکراری نباشه؟)

هر مشترک مورد نظر می تواند فقط توسط یک کاربر حذف شود ( مگه امکانش هست که یه مشترک توسط چند نفر حذف شه ؟ :ws38: )

هر مشترک موردنظر می تواند توسط n کاربر تغییر کند

هر مشترک مورد نظر می تواند توسط n کاربر بازیابی بشود

یک مشترک موردنظر می تواند n تا (n>0) شماره تلفن داشته باشد ولی یک شماره تلفن فقط متعلق به یک مشترک مورد نظر هست نه بیشتر

 

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

یعنی حتما باید به ذهن تون برسه :w16:

 

به نظرم تا اینجا سه تا جدول داریم . 1- مشترک 2- کاربر 3- شماره ( تلفن ثابت یا همراه) !

 

:a030:

  • Like 3
لینک به دیدگاه
الآن قراره بروژه انجام بدیم ؟ با Eclips?

 

میشه به قسمتهایی که با قرمز نوشتم، جواب بدی؟ :hanghead:

 

 

 

 

به نظرم تا اینجا سه تا جدول داریم . 1- مشترک 2- کاربر 3- شماره ( تلفن ثابت یا همراه) !

 

:a030:

 

من با Eclips جلو میرم هرچند با نرم افزار های دیگه هم کار کردم

 

بله ریپورت هم می تونیم اضافه کنیم

اما یه نکته ای رو بگم

ما فعلا یه برنامه desktopی درست می کنیم کم کم که جلو رفتیم و کلیات رو پشت سر گذاشتیم همینو به صورت صفحات jsp و با طراحی وبی جلو می بریم

برا ارتباط با بانک داده هم فعلا از تکنولوژی jdbc استفاده می کنیم بعدا سراغ hibernate میریم

 

 

هر مشترک موردنظر می تواند فقط توسط یک کاربر تعریف بشود ( یعنی هر دفعه که کاربر جدید خواستیم اضافه کنیم، کله اطلاعات موجود رو بررسی کنیم که تکراری نباشه؟)

بله

برای اینکارم از کلید استفاده می کنیم به عنوان مثال نباید شماره خط 0912******* هم مال شما باشه هم مال من

 

هر مشترک مورد نظر می تواند فقط توسط یک کاربر حذف شود ( مگه امکانش هست که یه مشترک توسط چند نفر حذف شه ؟ :ws38: )

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

مثلا کاربر admin مجوز حذف رو داره ولی کاربر عادی نه

 

 

به نظره من تا اینجا سه تا جدول داریم . 1- مشترک 2- کاربر 3- شماره ( تلفت ثابت یا همراه) !

برای جلوگیری از پدیده redundancy بله ناچاریم سراغ سه تا جدول بریم

 

راسی یه سوال

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

جدول کاربر که فیلدهاش مشخصه

ولی جدول مشترک به صورت زیر باشه

نام

نام خانوادگی

آدرس

شماره تلفن

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

و این فیلد هم خصیصه not duplicate بش بدیم

یه چیزی به فرم زیرxp2o37bjkgohedurrj.jpg

 

بچه هایی که کام خوندید عیب و محاسن اینکار رو بگید لطفا:ws37:

  • Like 3
لینک به دیدگاه
من با Eclips جلو میرم هرچند با نرم افزار های دیگه هم کار کردم

 

بله ریپورت هم می تونیم اضافه کنیم

اما یه نکته ای رو بگم

ما فعلا یه برنامه desktopی درست می کنیم کم کم که جلو رفتیم و کلیات رو پشت سر گذاشتیم همینو به صورت صفحات jsp و با طراحی وبی جلو می بریم .

چه خوب hapydancsmil.gif

برا ارتباط با بانک داده هم فعلا از تکنولوژی jdbc استفاده می کنیم بعدا سراغ hibernate میریم

Jdbc? همون دیتابیس خوده جاوا هستش ؟

میشه از MySQL استفاده کرد؟ یا یه پایگان داده ی دیگه پیشنهاد میدی؟

 

 

بله

برای اینکارم از کلید استفاده می کنیم به عنوان مثال نباید شماره خط 0912******* هم مال شما باشه هم مال من

 

 

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

مثلا کاربر admin مجوز حذف رو داره ولی کاربر عادی نه

یعنی Role و Grant و اینا ؟ w58.gif

 

 

برای جلوگیری از پدیده redundancy بله ناچاریم سراغ سه تا جدول بریم

 

راسی یه سوال

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

جدول کاربر که فیلدهاش مشخصه

ولی جدول مشترک به صورت زیر باشه

نام

نام خانوادگی

آدرس

شماره تلفن

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

و این فیلد هم خصیصه not duplicate بش بدیم

یه چیزی به فرم زیرxp2o37bjkgohedurrj.jpg

 

بچه هایی که کام خوندید عیب و محاسن اینکار رو بگید لطفا:ws37:

 

یه مشکلش اینه که طولانیه ( میبینی چه خوب بلدم :دی :whistle: )

 

redundancy هم داره .

 

محاسنش ؟

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

  • Like 3
لینک به دیدگاه
یه مشکلش اینه که طولانیه ( میبینی چه خوب بلدم :دی :whistle: )

 

redundancy هم داره .

 

محاسنش ؟

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

 

نه jdbc تکنولوژی دسترسی به داده از طریق محیط جاوایی هس

JDBC is a Java-based data access technology (Java Standard Edition platform) from Oracle Corporation. This technology is an API for the Java programming language that defines how a client may access a database. It provides methods for querying and updating data in a database. JDBC is oriented towards relational databases.

 

برای بانک اطلاعاتی می تونیم از اوراکل یا sqlserver یا mysql یا حتی اکسس استفاده کنیم

 

 

 

بله منظورم grant , role و اینا هس :w16:

 

 

 

یه مشکلش اینه که طولانیه ( میبینی چه خوب بلدم :دی :whistle: )

 

redundancy هم داره .

 

محاسنش ؟

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

redundancy که داره ولی درمقابل حافظه های ترابایتی امروزی این redundancy ناچیز و قابل چشم پوشیه

سوال مهم اینه که ایا می توانیم شماره رو به عنوان یک موجودیت جداگانه در نظر بگیریم ؟

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

منتهی ما فعلا نمیخوایم موضوع پروژه رو پیچیده کنیم طوری که ازموضوع اصلی یعنی یادگیری جاوا باز بمونیم

 

مرسی زهرا سوال های خوبی می پرسی :a030::icon_gol:

اگه همین جوری پیش بره می تونیم به پا گرفتن این تاپیک امیدوارم باشیم

برنامه نویسی عین فلسفه می مونه تنهایی نمی تونی موضوعی رو از چن نظر بررسیش کنی

  • Like 2
لینک به دیدگاه

خیلی عالیه که با جدیت شروع کردین.

من چند تا سوال دارم!

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

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

اول تحلیل سطحی وفوری و شناسایی موجودیت های دفترچه تلفن :ws37:

 

من میگم یه دفترچه تلفن یه موجودیت داره به اسم مشترک مورد نظر

 

هر مشترک موردنظر دارای ویژگی های زیر هستش :

-نام

-نام خانوادگی

-آدرس

-شماره تلفن

 

این مشترک مورد نظر چه رفتارهایی می تونه از خودش نشون بده ؟

-----------------

 

یه موجودیت دیگه هم به این پروژه اضافه می کنم به اسم کاربر

کاربر دارای ویژگی های زیر است

- نام کاربری

- رمز عبور

 

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

- مشترک جدیدی تعریف کند(insert)

-مشخصات مشترک فعلی رو تغییر دهد(update)

- مشترک رو از دفترچه حذف کند(delete)

-عمل بازیابی مشخصات یک مشتری رو انجام بدهد (select)

 

 

هر کاربر می تواند n مشترک مورد نظر رو تعر یف , به روز, حذف و بازیابی کند

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

هر مشترک مورد نظر می تواند فقط توسط یک کاربر حذف شود

هر مشترک موردنظر می تواند توسط n کاربر تغییر کند

هر مشترک مورد نظر می تواند توسط n کاربر بازیابی بشود

یک مشترک موردنظر می تواند n تا (n>0) شماره تلفن داشته باشد ولی یک شماره تلفن فقط متعلق به یک مشترک مورد نظر هست نه بیشتر

 

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

یعنی حتما باید به ذهن تون برسه :w16:

  • Like 3
لینک به دیدگاه

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

مثل تعداد جداول

نوع ارتباط

کلید اصلی

کلید فرعی

و ....

  • Like 3
لینک به دیدگاه

به نظرم ما میتونیم دو تا جدول اینطوری داشته باشیم:

 

جدول مشترک:

کد مشترک

نام

نام خانوادگی

کد ارتباط

 

جدول اتباطات:

کد ارتباط

مکان (مثلا محل کار یا منزل)

آدرس

تلفن ثابت

تلفن همراه

فکس

  • Like 3
لینک به دیدگاه
خیلی عالیه که با جدیت شروع کردین.

من چند تا سوال دارم!

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

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

 

اینو موقعی که تو ذهنم داشتم پروژه رو تعریف کنیم اوردم

در واقع این کاربر نقطه اشتراک دو پروژه خیلی شبیه به هم می تونه باشه

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

دفترچه تلفنی که توی یه مغازه خرید و فروش سیم کارت میخواد مورد استفاده قرار بگیره

 

اگه مورد اولی رو بخواییم بریم جلو خب تعریف کاربر معنی نداره

ولی برای دومی چرا

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

 

حالا انتخاب با شما و زهراجون

با هرکدومش راحتترین

اما در مورد سوال دوم ما فعلا تو سطح تحلیل و تعریف سیستم قرار داریم

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

  • Like 2
لینک به دیدگاه
ضمنا اگه قراره ما اول بانکمون طراحی و پیاده سازی کنیم خوبه که همه چیزشو مشخص کنیم بعد بریم سراغ نوشتن برنامه!

مثل تعداد جداول

نوع ارتباط

کلید اصلی

کلید فرعی

و ....

دقیقا :w16:

لینک به دیدگاه
نه jdbc تکنولوژی دسترسی به داده از طریق محیط جاوایی هس

 

 

برای بانک اطلاعاتی می تونیم از اوراکل یا sqlserver یا mysql یا حتی اکسس استفاده کنیم

 

 

خوبه . پس با MySQL کار کنیم :whistle:

 

بله منظورم grant , role و اینا هس :w16:

 

 

redundancy که داره ولی درمقابل حافظه های ترابایتی امروزی این redundancy ناچیز و قابل چشم پوشیه

سوال مهم اینه که ایا می توانیم شماره رو به عنوان یک موجودیت جداگانه در نظر بگیریم ؟

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

منتهی ما فعلا نمیخوایم موضوع پروژه رو پیچیده کنیم طوری که ازموضوع اصلی یعنی یادگیری جاوا باز بمونیم

 

آها یعنی شماره مشترک رو داشته باشیم ولی اسمش رو نداشته باشیم؟ :whistle:

 

اصلاً شماره نمیتونه کلید باشه . شاید شماره ی طرف ویرایش شد . کلید رو که نمیشه ویرایش کرد ، یعنی میشه . ولی جالب نیست !

 

 

 

مرسی زهرا سوال های خوبی می پرسی :a030::icon_gol:

اگه همین جوری پیش بره می تونیم به پا گرفتن این تاپیک امیدوارم باشیم

برنامه نویسی عین فلسفه می مونه تنهایی نمی تونی موضوعی رو از چن نظر بررسیش کنی

 

بسیار خوب :ws3:

 

الآن من یه سوال دیگه واسم پیش اومده .

 

ما فعلا یه برنامه desktopی درست می کنیم کم کم که جلو رفتیم و کلیات رو پشت سر گذاشتیم همینو به صورت صفحات jsp و با طراحی وبی جلو می بریم .

چرا از Jsp میخوایم استفاده کنیم ؟ چرا از Jsf استفاده نمیکنیم ؟ مگه jsf جدیدتر نیست؟ :ws38:

  • Like 3
لینک به دیدگاه
به نظرم ما میتونیم دو تا جدول اینطوری داشته باشیم:

 

جدول مشترک:

کد مشترک

نام

نام خانوادگی

کد ارتباط

 

جدول اتباطات:

کد ارتباط

مکان (مثلا محل کار یا منزل)

آدرس

تلفن ثابت

تلفن همراه

فکس

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

کلا بیشتر توضیح بدید

  • Like 2
لینک به دیدگاه
خوبه . پس با MySQL کار کنیم :whistle:

 

شما با mysql کار کنید منم رو اوراکل :ws3:

آها یعنی شماره مشترک رو داشته باشیم ولی اسمش رو نداشته باشیم؟ :whistle:

 

اصلاً شماره نمیتونه کلید باشه . شاید شماره ی طرف ویرایش شد . کلید رو که نمیشه ویرایش کرد ، یعنی میشه . ولی جالب نیست !

مرسی این حرفیه

اصلا به ذهنم نرسید :icon_pf (34):

 

 

 

بسیار خوب :ws3:

 

الآن من یه سوال دیگه واسم پیش اومده .

 

 

چرا از Jsp میخوایم استفاده کنیم ؟ چرا از Jsf استفاده نمیکنیم ؟ مگه jsf جدیدتر نیست؟ :ws38:

jsp رو برا اینده گفتم

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

یعنی بیشتر پیچیدگی ها رو برات می پوشونه

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

نه:ws3:

  • Like 3
لینک به دیدگاه

بله حتما.

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

یک نفر ممکنه چند تا شماره تلفن داشته باشه مثلا دو تا واسه محل کار، دو تا واسه منزل و ....

واسه همین به نظرم رسید برای حل این مشکل میشه از این روش استفاده کرد اما تو این روش بحث افزونگی داده پیش میاد !

باید بیشتر فکر کرد :ws52:

 

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

کلا بیشتر توضیح بدید

  • Like 2
لینک به دیدگاه
jsp رو برا اینده گفتم

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

یعنی بیشتر پیچیدگی ها رو برات می پوشونه

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

نه:ws3:

 

باشه با اوراکل کار کن :دی i19f2bez0t2vfzei3kc1.gif

 

الآن ERD بکشیم؟

  • Like 1
لینک به دیدگاه
بله حتما.

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

یک نفر ممکنه چند تا شماره تلفن داشته باشه مثلا دو تا واسه محل کار، دو تا واسه منزل و ....

واسه همین به نظرم رسید برای حل این مشکل میشه از این روش استفاده کرد اما تو این روش بحث افزونگی داده پیش میاد !

باید بیشتر فکر کرد :ws52:

 

فعلا بیاییم رو تلفن ثابت

هر مشترکی می تونه بیش از یه شماره تلفن داشته باشه

ولی هر شماره مخصوص یه مشترکه

هر مشترک می تونه چندین آدرس داشته باشه

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

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

  • Like 2
لینک به دیدگاه

×
×
  • اضافه کردن...