View Full Version : شروع کار با MVC و ابهامات
L u k e
جمعه 12 فروردین 1390, 12:20 عصر
سلام
من قبلا از 3lyaer استفاده می کردم جدیدا mvc توجهمو جلب کرده
تقریبا می دونم چیه ولی یه سری سوالات واسم پیش آومده
برای مثال ما یه Entity به نام Student داریم توی دیتابیس حالا می خوایم صفحه افزدون یک Student جدید رو با mvc پیاده سازی کنیم :
خوب حالا به 3 تا شی نیاز داریم :
-----------------------------------------------------------------------------------------------------------------
یه View از Student که چند تا فیلد و یه دکمه Insert داره ( View می تونه یه فایل Jsp یا html و یا ... باشه) :
فیلد نام و نام خانوادگی
فیلد سن
فیلد جنسیت
وظیفه این View فقط ارسال اطلاعات به Controler هست
----------------------------------------------------------------
و یه Controler ( که ترجیحا Servlet رو انتخاب می کنم )
حالا توی این بخش باید به درخواست های View جواب بدیم مثلا View گفته Insert کن تو دیتابیس می یاد متد Insert رو از model پیدا می کنم و اطلاعات رو از View می گیره و کار مناسبو انجام می ده
--------------------------------------------------------------------
یه مدل نیاز داریم که توابع مورد نیاز در این بخش رو درون اون قرار می دیم که اینجا فقط تابع Insert هست که وظیفش درج یک رکورد جدید در دیتابیس ه ( البته از نوع Student نه هر رکوردی ) ( خوب Model هم یک کلاس معمولی خواهد بود )
سوالاتی که پیش می یاد اینه که :
1 - اینجا ما یه تابع Insert توی model مون ساختیم حالا آومدیمو توی یه Controler دیگه ما نیاز داشتیم که شی Student رو توی دیتابیس Insert کنیم خوب حالا می یام از Model صفحه افزودن - دانش آموز استفاده می کنیم یا اینکه اون تابع رو توی Model این صفحه دوباره می نویسیم یا اینکه View رو به Controler صفحه افزدون - دانش آموزش وصل می کنیم ؟ ( که اطلاعات فرم ارسال بشه به Controler ش و اون Insert رو انجام بده )
اگه پیشنهادی داشتید واسه بهتر شدن روش پیاده سازی mvc لطفا کنید بگید تا بقیه دوستان از تجربیاتتون استفاده کنند ( چون این شیوه پیاده سازی mvc از ابتدایی ترین ... )
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
همین مثال رو به صورت عملی با NetBeans ساختم از JPA استفاده شده توش خیلی ابتداییه
L u k e
یک شنبه 21 فروردین 1390, 09:18 صبح
لطفا حرفه ای ها یه نظری بدن
javaphantom
جمعه 26 فروردین 1390, 23:26 عصر
خوب من نمی خوام دو ساعت مقدمه چینی کنم، می خوام سریع و یک راست برم سر اصل مطلب. فقط قبلش بگم که من rar فایلت رو دیدم. نظری ندارم.
بعد از اینکه دنیای وب خیلی گسترده و مهم شد و بازار application ها از روی desktop ها به روی وب اومد بحث معماری و design pattern ها خیلی جدی تر و مهمتر شد. یکی از بحثهایی که امروزه در مملکت اسلامی قابل توجه شرکتها و استاتید مهندس و تولید کننده های bug که من خودم از بزرگان این صنعت هستم همین بحث mvc و mvp هست. خوب با یک جستجوی ساده در گوگولی مگولیه می تونی کلی مطلب با شکل و داستان در مورد mvc , mvp پیدا کنی .
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
http://en.wikipedia.org/wiki/Model-view-presenter
خوب بله بله تمام این داستانها خودنش خوبه و مفید هست. اما وقتی کار به اجرا و بقولی پیاده سازی می رسه اون وقت هست که ابهامات و مشکلات بیرون می زنه. اون موقع هست که شرکتهای غول نرم افزار نویس حجم زیادی bug رو با معماری و طراحی جدید وارد بازار و به خورد مشتری بدبخت می دن. حالا تا بخواد این داستان جدید راه بی افته و بعد جا بی افتده کلی پروژه کله می شه و کلی مشتری لت و پار می شن. اما از اونجایی که جوانهای ایرانی جزو نوابق و با هوشترین (متوهم) جوانان دنیا هستند، با ایمان به خدا و یاری گرفتن از خداوند ایده ای که توسط دشمنان اسلام و از بلاد کفر وارد شده رو خودشون تغییر می دن به قولی اصلاح می کنن و با اون همینطور محصول (bug) هست که وارد بازار می کنند.
ولی از هر شوخی که بگذریم باید ببنیم که واقعیت چی هست. بهترین روش برای پیاده سازی و طراحی و معماری چی می تونه باشه. به نظر من یکی از دلایلی که شرکتهای نرم افزار نویسی سراغ جاوا نمی رن یا اگرم می رن پروژه کله می کنند مثل بنز، بخاطر خاصیت و یا خود زبان نیست. زبان یک ابزار هست تازه از نظر گرامری هم که شبیه زبان c و C# هست. اما علت چیه که اسم جاوا می یاد همه یک جورایی یک جورشون می شه. مشکل همانطور که گفتم زبان نیست بحث راه کارها یه به عبارت دیگر گستردگیه راه حلهایی که برای یک مشکل داده می شه. که همگی خوشبختانه یا بدبختانه با این زبان یعنی جاوا قابل پیاده سازی هست.
به قول شاعر :
که عشق آسان نمود اول،ولی افتاد مشکلها.
تو نگاه اول خیلی خوبه که می بینی کلی راه حل هست. کلی ابزار هست. کلی فکر اما داستان از اونجایی تلخ می شه که درگیر راه حل ها می شی. اونجاست که می بینی که هر راهی که انتخاب می کنی خودش کلی دنگ و فنگ داره. کلی مفهوم هست که باید بلد باشی و تجریه کرده باشیش.
MVC یکی از پایه ای ترین و جا افتاده ترین مفاهیم هست که می شه گفت از همون اول کار درگیرش می شی. جالبی این کار این هست که وقتی این مفهوم برات جا افتاد می بینی که چقدر هم می تونی خودت بسطش بدی. MVC مفهوم هست که قبل بوجود اومدن زبان java بوده. در زبان small talk این مفهوم بوجود اومده و پیاده سازی هم شده. می خوام بگم که جیزه جدیدی نیست که بگیم با اومدن دنیای وب و تکنلوژی سر و کله این باباهم پیدا شده. این مفهوم رو حتی در معماری های یک لایه هم می شه پیاده سازی کرد. حتی در معماری های چند لایه می شه بصورت جدا گانه در هر لایه پیاده سازی کرد.
توی فریم ورکی مثل struts یا spring mvc بصورت خیلی مشهود این معماری رعایت شده است. اینکه یک لایه واسطی وجود داشته باشه تا فرمانها یا به عبارت دیگه دسترسی به لایه های دیگرو مدیریت کنه از هر نظر که نگاه بکنیم بسیار کارآمد هست. فرض کنید که کاربرهای اینترنت به سادگی می توتنستن از طریق browser ها به database متصل بشن و اطلاعات بگیرند. اون موقع وضعیت امنیت وضعیت موقعیت و سرعت و خیلی داستانهایی که الان از طریق یک لایه فیزیکی به نام web application server ها داره کنترل می شه چه بلایی سرش می امد؟
معماری MVC رو تمام کسانی که دارن با web و اینترنت کار می کنند بصورت خیلی ملموس می تونند ببینند. اینکه یک لایه به نام view که همون browser ها هستند یا end user های ما هستند و مقادیری که در این فرم ها به user داره نشون داده می شه می تونه همون Model های ما باشند که دائم بر اساس خواسته بصورت مستقیم یا غیر مستقیم در حال عوض شدن هستند در نظر گرفت و در نهایت لایه وسط که قبلا هم بهش اشاره کردم همون لایه controller ما که web server های ما هستند. این تقسیم لایه بندی بصورت سخت افزاری کاملا قابل درک و حس هست. اما همانطور که قبلا هم گفتم پیاده سازی معماری یا الگوی MVC در هر لایه بصورت مجزا کاملا قابل پیاده سازی است.
مثل در لایه web application server که خودش به شخصه و تنهایی نقش لایه controller رو داره بازی می کنه در درون خودش بازهم می تونه MVC رو داشته باشه. با فرض اینکه تمام JSP فایلهای ما همه نقش View و servelt های ما نقش Controller و فیلدهایی که در صفه قرار نمایش داده بشن و بصورت session ذخیره شده اند همان Model های ما باشند. بطوریکه کاربر یک صفحه JSP که شامل دو فیلد username و password هست رو در صفحه View داره. وقتی مقدار اونهارو پر می کنه و دکمه submit رو می زنه حالا لایه control که همان servlet ها هسنتند می یاند و مقدار model رو بر می دارند و یک سری process انجام می دن که اگر لازم باشه به سمت database هم می ره و نتیجه رو دوباره به model اضافه یا کم می کنند و به یک JSP فایل به user بر می گردونند.
در خیلی از طراحی هایی که مستقیم jsp کار logic رو انجام می ده مثل ASPX به این معنا هست که MVC بصورت ناقص داره انجام می شه البته به عقیده من. چون هدف از وجود servlet ها برای همین لایه control هست و بوده.
فریم ورک struts یک نمونه بارز و عملیاتی از همین روش jsp servlet model (session) d هست.
همونطور که قبلا هم اشاره کردم در کنار این لایه ها شما می تونید طراحی منحصر به فرد خودتون رو هم داشته باشید . مثلا در همون لایه control یک لایه دیگه به نام ORMقرار بدین که model های شما به یک سری model دیگه که قبلا تعریف کردین تبدیل بشن. اما همچنان شما لایه controller خودتون رو دارین و این عملیات بعداز لایه control شما کار می کنه. وقتی از user به سمت database می ره باید controller اون رو به لایه orm بده و موقع گرفتن اطلاعات جدید از database باید بازم کنترل دستور بده.
بازی با لایه ها و گذاشتن framework های مختلف در لایه های صحیح کاری هست بسیار مهم. اینکه شما بجای استفاده از JSP ها از یک فریم ورک مثل JSF استفاده بکنید و بعد اون لایه رو به یک فریم ورک مثل seam یا spring در قسمت controller متصل کنید یا اینکه طوری طراحی بشه که این لایه ها کمترین درگیری رو با هم داشته باشند داستانی بس طول و دراز داره. بر می گرده به لایه طراحی. شناخت فریم ورکها. معماری. تیم و توانایی پیاده سازی و و و وو . درست مثل یک پازل. که کدوم رو کجا بزاری تا شکل مطلوب بدست بیاد.
در لایه UI یا همان JSP هم می تونه MVC رعایت بشه . مثلا وقتی که شما با mouse روی یک شیی می رید و می خواهید یک سری تغییرات انجام بشه. اون java script ی که داره اون پشت کار می کنه دقیقا داره کاره لایه control رو برای شما انجام می ده.
در پایان:
من به شخصه spring mvc رو به عنوان یک فریم ورکی که کاملا تمام نکات ریز و حساس در مورد MVC رو رعایت کرده به دوستان پیشنهاد می کنم.
شما هم اگر فکر می کنید سوال خاصی دارید یا جایی از نوشتهای من مبهم هست به من بگین تا بیشتر توضیح بدم و بهتر بهم کمک کنیم. از باقی دوستان که حرفهای ناقص یا اشتباه من رو دیدن یا می تونند کاملتر توضیح بدن هم تقاضا دارم که به این بحث بیشتر کمک کنن
L u k e
شنبه 27 فروردین 1390, 07:23 صبح
خیلی خیلی ممنون
من تقریبا با معماری MVC آشنا هستم واسه پیاده سازی بهتر دنبال یه فریم ورک رفتم به struct و spring.mvc رسیدم
از struct خوشم نیومد .... ( از چیزایی که ما رو از اصل اول چیز دور می کنه خوشم نمی یاد )
در مورد spring هم مطلب فارسی پیدا نکردم ولی چند تا link خوب پیدا کردم که متاسفانه englisi بود
اگه موافق باشید یه تاپیک جدید باز کنم و در مورد sprng mvc و نحوه پیاده سازیش بحث کنیم ؟
mazdadoost
شنبه 27 فروردین 1390, 20:50 عصر
با سلام
در کل همونطور که javaphantom گفت استفاده از mvc در نگاه اول میتونه مزیت هایی داشته باشه .اما در ادامه میتونه مشکل ساز بشه.
در حقیقت انتخاب روش در جاوا برای ساخت نرم افزار کلا سخته و پیاده سازی mvc اوضاع رو پیچیدا تر میکنه.
برای مثال :
فرض کنید شما از spring mvc استفاده کنید:
از xml استفاه میکنید یا annotations?
کنترلر ها برای مدل از چی استفاده میکنند:spring dao-hibernate-spring jdbc-jdbc template -jpa-.....خوب این کنترلر ها مستقیما با مدل کار میکنند یا از سرویس هایی مثل spring beanss(session-sigelton-protoyyp-)یا سرویس های ejb استفاده میکنند!
ویو چیه؟jsp-jsf-......
بعد شما بخواید یه تغیر تو این ها بدین !بهتون قول میدم دچار حالت سرگیجه با تهویه مطبوع بشید!
در کل من یه ادعای گنده میخوام بکنم :و اون اینکه معماری mvc اگر چه ادعایی درباره این نداره که شما یک شروع سریع خواهد داشت اما مدعیه که با جدا کردن لایه ها از هم هم تیم ورک رو بهبود میبخشه هم نگهداری و اضافه کردن امکانات جدید راحت تر میشه و هم لایه ها رو میشه در لایه های مختلف سخت افزاری امنیتی منتشر کرد و هم قابلیت استفاده مدد بالا میره.
ادعای من اینه که در کل ر خلاف ادعاش مبنی بر نگهداری اسان عملا با این تکه تکه شدن به چالش کشیده میشه.
ممنون.:گریه:
javaphantom
یک شنبه 28 فروردین 1390, 10:37 صبح
با سلام
در کل همونطور که javaphantom گفت استفاده از mvc در نگاه اول میتونه مزیت هایی داشته باشه .اما در ادامه میتونه مشکل ساز بشه.
در حقیقت انتخاب روش در جاوا برای ساخت نرم افزار کلا سخته و پیاده سازی mvc اوضاع رو پیچیدا تر میکنه.
برای مثال :
فرض کنید شما از spring mvc استفاده کنید:
از xml استفاه میکنید یا annotations?
کنترلر ها برای مدل از چی استفاده میکنند:spring dao-hibernate-spring jdbc-jdbc template -jpa-.....خوب این کنترلر ها مستقیما با مدل کار میکنند یا از سرویس هایی مثل spring beanss(session-sigelton-protoyyp-)یا سرویس های ejb استفاده میکنند!
ویو چیه؟jsp-jsf-......
بعد شما بخواید یه تغیر تو این ها بدین !بهتون قول میدم دچار حالت سرگیجه با تهویه مطبوع بشید!
در کل من یه ادعای گنده میخوام بکنم :و اون اینکه معماری mvc اگر چه ادعایی درباره این نداره که شما یک شروع سریع خواهد داشت اما مدعیه که با جدا کردن لایه ها از هم هم تیم ورک رو بهبود میبخشه هم نگهداری و اضافه کردن امکانات جدید راحت تر میشه و هم لایه ها رو میشه در لایه های مختلف سخت افزاری امنیتی منتشر کرد و هم قابلیت استفاده مدد بالا میره.
ادعای من اینه که در کل ر خلاف ادعاش مبنی بر نگهداری اسان عملا با این تکه تکه شدن به چالش کشیده میشه.
ممنون.:گریه:
من فقط در جوابت یک چیز می گم و اون اینه که MVC بهترین معماری و اگویی رو بوجود می یاره که شما راحت و بصورت مستقل بتونی تست بنویسی و بقولی TDD کار کنی.
در مورد انتخاب هم که مثلا کجا XML کجا ANNOTAION نظر و عقیده های متفاوتی هست. پر استفاده ترین روش اینه اگر تغییرات زیاد داری حتی بعد از کامپایل خوب معلومه XML اگر تغییرات کمه و می شه گفت ثابت هست خوب مشخصه ANNOTATION اگر امنیت برات مهمه و نمی خوای یک سری اطلاعات رو مثلا به DEVELOPER ها بدی. بازم XML.
انتخاب یعنی احترام و شعور به نظر من. وقتی شما حق انتخاب داری یعنی اینکه شما دارای شعور هستی. در مورد همه چیز. بله یکی دق دقهای جاوا و تکنلوژی های مربوط به اون همین گستردگی هست و من عاشق همین موضوع هستم. چون می تونم انتخاب می تونم فکر کنم
L u k e
یک شنبه 28 فروردین 1390, 15:32 عصر
آقای mazdaDoost درست می گه استفاده از این ابزار باعث پیچیدگی می شه ولی سرعت توسعه رو بالا می بره که در حالت عادی خیلی پایین ه
منم تا چند وقت پیش مثل شما فکر می کردم ولی به نظرم استفاده از ابزاری مثل Jpa یا Spring لازم باشه تا پروژه در یه چارچوب خاصی جلو بره و تغییرات تو نحوه پیاده سازی رو کاهش بده
اگه چند وقت با هر کدوم از این ابزار کار کنیم و قلقشون دستمون بیاد و نحوه عملکردشون رو بفهمیم بدون هیچ مشکلی می تونم باهاشون کار کنیم و نتیجه بگیریم
javaphantom
یک شنبه 28 فروردین 1390, 17:55 عصر
آقای mazdaDoost درست می گه استفاده از این ابزار باعث پیچیدگی می شه ولی سرعت توسعه رو بالا می بره که در حالت عادی خیلی پایین ه
منم تا چند وقت پیش مثل شما فکر می کردم ولی به نظرم استفاده از ابزاری مثل Jpa یا Spring لازم باشه تا پروژه در یه چارچوب خاصی جلو بره و تغییرات تو نحوه پیاده سازی رو کاهش بده
اگه چند وقت با هر کدوم از این ابزار کار کنیم و قلقشون دستمون بیاد و نحوه عملکردشون رو بفهمیم بدون هیچ مشکلی می تونم باهاشون کار کنیم و نتیجه بگیریم
شما یا هر کسی که با framework کار می کنه یعنی انیکه خودشو انداخته توی یک چارچوب. همیشه آدم برای بدست آوردن یک چیز خیلی چیزها از دست بده. یا بهترین حالت یک چیز از دست بده. وقتی خودت رفتی سراغ چهارچوب یعنی انیکه باید قبول کنی که بابا وارد دنیای محدود شدی. به عبارتی باید قبول کنی که بابا این ابزاری که انتخاب کردی به درد همه کار نم خوره. وقت یک سری پیچ و مهره رو برات باز می کنه. که قبلا اگر می خواستی این کار رو بکنی باید خودت ابزار رو می ساختی. فریم ورکها دقیقا همین قانون رو رعایت می کنند. غر زدن که بابا سخته گیج می کنه یک کارایی رو نمی شه باهاش کرد و و و رو باید از سرت بندازی بیرون قبول کنی که این ابزار همین برد رو داره و خیلی کارها رو نمی تونی ولی اون کاری که می کنه رو خوب می کنه
Abalfazl
پنج شنبه 22 اردیبهشت 1390, 00:24 صبح
مقاله ای که به زبان ساده و گویا، به تشریح الگوی MVC می پردازد:
http://estakhrian.blogfa.com/
http://amir87.persiangig.com/document/MVC%20online.pdf
javaphantom
پنج شنبه 22 اردیبهشت 1390, 08:21 صبح
مقاله ای که به زبان ساده و گویا، به تشریح الگوی MVC می پردازد:
http://estakhrian.blogfa.com/
http://amir87.persiangig.com/document/MVC%20online.pdf
من یک کمی از متن رو خوندم. اما همون اول که شکل رو دیدم متوجه شدم که حتی زحمت اینم به خودش نداده که یک کپی پیست ساده بکنه. کاملا اشتباه بود..
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
در ضمن این سایت بالا به فارسی هم ترجمه می شه. نیازی به مقاله و کتاب و این داستانها هم نداره.
Abalfazl
پنج شنبه 22 اردیبهشت 1390, 12:16 عصر
توی فریم ورکی مثل struts یا spring mvc بصورت خیلی مشهود این معماری رعایت شده است.
من پرسشی در مورد struts داشتم، بفرمایید پیاده سازی view , model و کنترلگر در struts چطور انجام میشه؟ چه اجزایی از این فریم ورک مسول پیاده سازی این سه مورد هستند؟
Abalfazl
دوشنبه 02 خرداد 1390, 16:44 عصر
ماشالله!
پاسخ؟
javaphantom
سه شنبه 03 خرداد 1390, 08:25 صبح
ماشالله!
پاسخ؟
چر نمی خوای ببپزیری که لینکی که داده بود ی و نوشته هایی که در مورد MVC بود اشتباه بود. همون شکل اولش اشباه بود. بهت لینکم دادم که بری درستشون نگاه کنی. بعد می یایی برای من از struts و spring mvc حرف می زنی.
من پرسشی در مورد struts داشتم، بفرمایید پیاده سازی view , model و کنترلگر در struts چطور انجام میشه؟
اونا پیاده سازی شدن رفته پی کارش.
چه اجزایی از این فریم ورک مسول پیاده سازی این سه مورد هستند؟ جفتی یک محصول open source هستند می تونید برید ببینید اجزای داخلشون چیا هستن.
سعی کن که می یایی اینجا چیز یاد بگیری قبول کنی که اگرم کسی چیزی گفت که باب میلت نبود ناراحت نشی حالت دفاعی نگیری سعی کن طرفتو بشناسی. من دوباره لینک رو بهت نشون می دم شما برو با نوشتهایی که بود یک مقایسه بکن شاید منظور من رو متوجه بشی
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller.
Abalfazl
چهارشنبه 04 خرداد 1390, 11:45 صبح
javaphantom:
چر نمی خوای ببپزیری که لینکی که داده بود ی و نوشته هایی که در مورد MVC بود اشتباه بود. همون شکل اولش اشباه بود.
javaphantom:
.....از بحثهایی که امروزه در مملکت اسلامی قابل توجه شرکتها و استاتید مهندس و تولید کننده های bug که من خودم از بزرگان این صنعت هستم.....
من آنم که رستم بود پهلوان!
من این لینک را می گذارم، شکل مورد اشاره، از سایت شرکت سان گرفته شده است که لینکش در زیر است:
http://java.sun.com/products/jfc/tsc/articles/architecture/images/mvc_lg.gif
http://java.sun.com/products/jfc/tsc/articles/architecture/#roots
اولین شکل این مقاله:
http://amir87.persiangig.com/document/MVC%20online.pdf
http://estakhrian.blogfa.com/post-16.aspx
از همان لینک بالایی است که ادعا شده غلط است! احسنت! پس یعنی شرکت سان غلط کرده و باید طرفش را بشناسد وبیاید اینجا زانو بزند و چیز یاد بگیرد!
محترمانه به شما می گویم:
صحبت با لحن متکبرانه، و تحقیر دیگران، فقط اثباتگر نادانی و بیسوادیست!
البته در مورد شما، من کاملا به شما حق می دهم و شما هستید که درست می فرمایید. در لینک زیر، نکات آموزنده ای برای شخص شما وجود دارد:
بیماران خود شیفته با احساس عمیق«اهمیت خود ، خود بزرگ بینی و نوعی بینظیر بودن» مشخص میشوند. این افراد خود را آدمهای خاصی میپندارند و انتظار دارند بطور خاصی نیز با آنها رفتارشود. تحمل انتقاد بر ایشان سخت است و در مقابل آن خشمگین شده ، فرد مورد نظر را به «نادانی ، حماقت و عدم درک واقعیت» متهم میکنند. خود را قوی ، مشهور ، داناترین و ... قلمداد کرده ، انتظار اطاعت و پیروی دیگران را دارند.
عوامل:
ا وجودی که هنوز علّت دقیق آن مشخص نشده است امّا پژوهشگران چند عاملی که ممکن است در این اختلال نقش داشته باشند را تعیین کردهاند. تصور میشود که تجربیات دوران کودکی نظیر آسانگیری بیش از حدّ پدر و مادر و لوس بار آوردن، تحسین و تشویق فزاینده، تربیت نامطمئن، و کمبود واکنش واقعگرایانه، در پیدایش اختلال شخصیت خودشیفتگی نقش داشته باشند.علاوه بر آن وجود بعضی اختلالات بیوشیمیائی در انتقال دهنده های ( نوروترانزمیترهای) عصبی نیز کشف شده است که با تاثیر گذاشتن بر آنان از طریق داروئی میتوان بر این ناراحتی تا حدی فائق آمد.
http://www.drvalipour.ir/index.php?ToDo=ShowArticles&AID=2445
ان شاالله یاد بگیریم به جای ایراد گیریهای بی پایه و اعتماد به نفس کاذب، با زبان علمی، منطقی و با استدلال و رعایت احترام با دیگران بحث علمی و فنی کنیم.
وگرنه مثل یک " تازه به دوران رسیده فرهنگی"، اظهار نظر کردن، متناسب شخصیت یک تحصیلکرده میهندوست نیست:
http://estakhrian.blogfa.com/post-15.aspx
بدرود!
omidbizdotcom
چهارشنبه 04 خرداد 1390, 13:29 عصر
:قهقهه:
بدون شرح ... :قهقهه:
:قهقهه:
javaphantom
چهارشنبه 04 خرداد 1390, 15:44 عصر
javaphantom:
چر نمی خوای ببپزیری که لینکی که داده بود ی و نوشته هایی که در مورد MVC بود اشتباه بود. همون شکل اولش اشباه بود.
javaphantom:
.....از بحثهایی که امروزه در مملکت اسلامی قابل توجه شرکتها و استاتید مهندس و تولید کننده های bug که من خودم از بزرگان این صنعت هستم.....
من آنم که رستم بود پهلوان!
من این لینک را می گذارم، شکل مورد اشاره، از سایت شرکت سان گرفته شده است که لینکش در زیر است:
http://java.sun.com/products/jfc/tsc/articles/architecture/images/mvc_lg.gif
http://java.sun.com/products/jfc/tsc/articles/architecture/#roots
اولین شکل این مقاله:
http://amir87.persiangig.com/document/MVC%20online.pdf
از همان لینک بالایی است که ادعا شده غلط است! احسنت! پس یعنی شرکت سان غلط کرده و باید طرفش را بشناسد وبیاید اینجا زانو بزند و چیز یاد بگیرد!
محترمانه به شما می گویم:
صحبت با لحن متکبرانه، و تحقیر دیگران، فقط اثباتگر نادانی و بیسوادیست!
البته در مورد شما، من کاملا به شما حق می دهم و شما هستید که درست می فرمایید. در لینک زیر، نکات آموزنده ای برای شخص شما وجود دارد:
بیماران خود شیفته با احساس عمیق«اهمیت خود ، خود بزرگ بینی و نوعی بینظیر بودن» مشخص میشوند. این افراد خود را آدمهای خاصی میپندارند و انتظار دارند بطور خاصی نیز با آنها رفتارشود. تحمل انتقاد بر ایشان سخت است و در مقابل آن خشمگین شده ، فرد مورد نظر را به «نادانی ، حماقت و عدم درک واقعیت» متهم میکنند. خود را قوی ، مشهور ، داناترین و ... قلمداد کرده ، انتظار اطاعت و پیروی دیگران را دارند.
عوامل:
ا وجودی که هنوز علّت دقیق آن مشخص نشده است امّا پژوهشگران چند عاملی که ممکن است در این اختلال نقش داشته باشند را تعیین کردهاند. تصور میشود که تجربیات دوران کودکی نظیر آسانگیری بیش از حدّ پدر و مادر و لوس بار آوردن، تحسین و تشویق فزاینده، تربیت نامطمئن، و کمبود واکنش واقعگرایانه، در پیدایش اختلال شخصیت خودشیفتگی نقش داشته باشند.علاوه بر آن وجود بعضی اختلالات بیوشیمیائی در انتقال دهنده های ( نوروترانزمیترهای) عصبی نیز کشف شده است که با تاثیر گذاشتن بر آنان از طریق داروئی میتوان بر این ناراحتی تا حدی فائق آمد.
http://www.drvalipour.ir/index.php?ToDo=ShowArticles&AID=2445
ان شاالله یاد بگیریم به جای ایراد گیریهای بی پایه و اعتماد به نفس کاذب، با زبان علمی، منطقی و با استدلال و رعایت احترام با دیگران بحث علمی و فنی کنیم.
وگرنه مثل یک " تازه به دوران رسیده فرهنگی"، اظهار نظر کردن، متناسب شخصیت یک تحصیلکرده میهندوست نیست:
http://estakhrian.blogfa.com/post-15.aspx
بدرود!
این که شما همانطور که به مسائل عمل کامپیوتر و IT مسلط صاحب نظر هستین بسیار دقیق هم به علم روانشناسی هم آگاه هستید.
اینکه شما در تشخیصتون منو فردی بیمار خود شیفه با احساسی عمیق در مورد اینکه بی نظیر هستم و خود بین هستم و بعد بلافاصله علت و درمان روهم در ادامش اضافه کردین از جمله که من آدم احمق و لوس و دارای شخصیت خودشیفته ای هستم متشکرم. خوب این تشخیص شما بود و فردی هم که خواننده این موضوع بوده بسیار لذت برده و ممکنه خیلی های دیگه هم بیان و بخونن و لذت ببرن. این هیچ اهمیتی برای من نداره. من از دید شما و شاید خیلی های دیگه اینطوری و یا شایدم بدتر باشم. برای من مهم نیست چون شما برای من مهم نیستین. چیزی که برای من ا رزش داشت و بقولی مهم بود خوندن نوشتهای مقالعه ای بود که شما در سایت گذاشته بودید که مفصل به اون می پردازم.
من سعی می کنم به هیچ عنوان احساسی برخورد نکنم و برگردم به اصل مطلب یعنی مقاله و اداعایی که کردم. توهین های شما و بهتر بگم قضاوت شما شعور و دید شما نسبت به من بوده و قابل احترام برای خودتون هست. عقایدتون بود حتما بهتون توهین شده از طرف من که به این نتیجه رسیدید و باقی کسانی که موافق بودن و هستن.
با دادن لینکی که مشخص شد این عکس از کجا اومده
http://java.sun.com/products/jfc/tsc/articles/architecture/#roots کمک بزرگی شد که بشه مقاله نوشته شده رو با آدرس داده شده یک مقایسه ای کرد و راحتر بشه مقایسه کرد و این سو تفاهم حل بشه.
از چند صفحه اول مقاله علمی که به یاد عقاب آسمانها و زمین شروع می شه که اینم بلاخره سبکیه دیگه برای خودش برای ارائه مقاله علمی به شروع داستان می رسیم که با این متن شروع می شه
در این مقاله آمده است
اگر برنامه شما، طوري نوشته شود كه كدهاي مربوط به دسترسي داده، مثلا دسترسي به پايگاه
داده كه محل ذخيره داده است، و رابط كاربري، در يك يكديگر تركيب شده باشند و در قسمتهاي
جداگانه نوشته نشده باشند، مشكلاتي زيادي پيش خواهد آمد. براي مثال، در صورتي كه بعدا
شما بخواهيد اين برنامه را توسعه دهيد، در صورت تغيير دادن يك قسمت، بايد بقيه قسمتها را نيز
تغيير بدهيد. همچنين در صورتي كه اين برنامه دچار مشكل خطايي باشد، با توجه به عدم جدا
سازي و در هم آميختگي قسمتهاي مختلف، رفع خطاي برنامه، دشوار و پيچيده خواهد بود .
همچنين امكان تغيير و بهينه سازي اين برنامه، دشوار و يا حتي غير ممكن خواهد بود. فرض كنيد
شما بخواهيد پنجره ها و فرمهاي جديدي را اضافه كنيد، و كدهاي قسمتهاي مختلف در هم تركيب
شده اند، تصور كنيد كه بهينه سازي و اضافه كردن قسمتهاي جديد به اين برنامه چقدر دشوار
داراي سه قسمت است: ،MVC است. الگوي
در کل لینک داده شده که توسط سان داده شده به هیچ عنوان همچین متنی نوشته نشده است و کاملا مشخص هست که این متن هر چند از لحاظ ادبی اشکال داره از طرفی به هیچ عنوان ترجمه لینک داده شده نیست. من نمی خوام بیشتر ریز بشم به متن نویسنده و به چالش بگیریم که علت استفاده و بکلی داستان و طرح مسئله الگوی mvc ربطی به دلایل گفته شده در متن نداره.
از طرفی لینکی که از طرف سان نوشته شده کاملا مشخص هست که داره در مورد کامپونتهای swing صحبت می کنه و خودش داره اولش می گه
Swing architecture is rooted in the model-view-controller (MVC) design that dates back to SmallTalk
معماری swing ریشه گرفته از طراحی MVC که بر می گرده به زمان smallTalk.
تعاریف در مقالعه آمده شده
قسمت مدل، مربوط به داده برنامه است. براي مثال يك
جدول پايگاه داده، مي تواند به عنوان مدل در نظر گرفته شود.
ولي مدل، لزوما پايگاه داده نيست.:Model-1
در صورتی که تعریف درست و صحیح در همان لینک سان
A model that represents the data for the application.
یک مدل که نمایش می دهد اطلاعات را برای کاربری.
پس مدل مربوط به داده نیست چون داده ها برای خودشون ساختمان و بقولی structure خاص خودشون رو دارن مدل چگونگی این ساختمان رو بیان می کنه می ده.
در مقاله آمده
View -2 داده هاي بخش مدل را نمايش ،view قسمت نمايشگر يا
مي دهد. اين بخش تعيين مي كند كه داده ها چگونه بايد
نمايش داده شوند. چنانچه تغييري در داده ها در بخش مدل
ايجاد شود، اين تغييرات بايد در بخش نمايشگر نشان داده شود.
اما در لینکی که سان تعریف کرده است.
The view that is the visual representation of that data.
منظر که یک نمایانگر تصویری برای اطلاعات است.
به هیچ عنوان تعیین نمی کنه که باید چجوری نمایش داده بشن تغییر در داده ها و اجبار تغییر در بخش نمایشگر. یعنی اینکه گفته خودتم داری نقض می کنی. اگر قرار تعیین کنه که باید چه جوری نمایش داده بشن پس یعنی کنترل داره می کنه. یعنی اینکه خودش کنترلر هست.
اما تعریف کنترل و جایی که تمام بحث و جدلها شروع شد.
در مقاله اومده
قسمت كنترلگر، رابط بين نمايشگر و مدل است. اين قسمت وروديهاي ماوس و صحفه كليد كاربر
را از بخش نمايشگر گرفته، و به بخش مدل منتقل مي كند
اگر رابط هست که خوب می گفتن interface نمی گفتن کنترلر. اگر کنترل می کنه خوب باید دو طرف رو کنترل کنه یعنی هم باید مستقیم بتونه مدل رو کنترل کنه و هم منظر رو یا همان view رو این همان MVC هست. در لینکی که من دادم دقیقا داره همین مطلب رو تایید می کنه که یک کنترلر مستقیم با model و view در ارتباط هست
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
به تعریف سان نگاه کنید در همان لینک
A controller that takes user input on the view and translates that to changes in the model.
یک کنترل گر که می برد اطلات ورودی کابر را به طرف منظر و باز می گرداند یا معنی می بخشد به تغییرات در مدل.
بردن و معنا بخشیدن یعنی یک ارتباط مستقیم با هر دو ور است.
اما چرا سان این ارتباط رو دو ور نکشیده و در نگاه اول غلط انداز به نظر می یاد. جواب در این لینک هست
http://java.sun.com/products/jfc/tsc/articles/architecture/ui_install/index.html
به sequence diagram داده شده که نگاه بکنید کاملا مشخص می کنه که شکلی که برای من سوء تفاهم ایجاد کرده بود و غلط بود برای این مورد کاملا درست و صحیح است چون درمورد swing component ها داره صحبت می کنه.
به این شکل دقت کنید
http://www.google.com/imgres?imgurl=http://img.skitch.com/20090630-ba818imqkhgiicwf4dhwcfg4ps.png&imgrefurl=http://wiki.sproutcore.com/w/page/12412848/Basics-Introducing%2520SproutCore%2520MVC&usg=__thhycKz1ijGHGQx_xdKRRJXLo98=&h=710&w=429&sz=29&hl=en&start=0&sig2=Ss1k0yGxwaeJz_VMwfc3ZA&zoom=1&tbnid=B3Cz9lhDRZGoVM:&tbnh=134&tbnw=80&ei=NOTcTdfQA9O_gQekoeQE&prev=/search%3Fq%3Dmvc%2Bwiki%26um%3D1%26hl%3Den%26sa%3D N%26biw%3D1126%26bih%3D573%26tbm%3Disch&um=1&itbs=1&iact=rc&dur=481&sqi=2&page=1&ndsp=18&ved=1t:429,r:15,s:0&tx=45&ty=41
کاملا داره نشون می ده که بین کنترل و باقی اجزا یک ارتباط رفت و بگشت وجود داره چون حالت کلی معماری رو داره نشون میده و نه یک حالت خاص و مشتق گرفته از اون رو
آین هم معماری spring mvc که دوست داشتی من برات توضیح بدم. دقسمت front control که می بینی یک رابطه دو طرفه بین مدل و ویو هست.
http://www.google.com/imgres?imgurl=http://static.springsource.org/spring/docs/2.5.x/reference/images/mvc.png&imgrefurl=http://static.springsource.org/spring/docs/2.5.x/reference/mvc.html&usg=__jnCBODBh9VwWMFhtvEymo94O4cE=&h=513&w=800&sz=124&hl=en&start=0&sig2=k5S3n6wPEhWL0y4tBkJ9wQ&zoom=1&tbnid=YxMC65YkRJ6yQM:&tbnh=116&tbnw=181&ei=EOXcTbLJDYXDgQff7NTwDw&prev=/search%3Fq%3Dspring%2Bmvc%26um%3D1%26hl%3Den%26biw %3D1126%26bih%3D573%26tbm%3Disch&um=1&itbs=1&iact=hc&vpx=127&vpy=101&dur=468&hovh=180&hovw=280&tx=172&ty=112&sqi=2&page=1&ndsp=15&ved=1t:429,r:0,s:0
از آنجایی که شما در چند پست قبل تر با این بحث بصورت دقیق و محکم اشاره کردید که
مقاله ای که به زبان ساده و گویا، به تشریح الگوی MVC می پردازد:
http://estakhrian.blogfa.com/
http://amir87.persiangig.com/document/MVC%20online.pdf
با خوندن همان قسمتهای اول البته بجز عقاب و این داستانها می شه فهمید که زیاد ساده و گویا هم نبوده.
حداقل برای من که خوندم نبود.
من همین جا از شما معذرت می خوام که موجوب ناراحتی و رنجشتون شدم. توهین های شما آینه ای از برخورد بد من بوده نسبت به شما. امیدوارم بحثی بوجود بیاد و من بتونم روزی جبران کنم.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.