PDA

View Full Version : تعریف تئوری از لایه ها در برنامه نویسی لایه ای



AmirHarirbafan
یک شنبه 10 بهمن 1389, 23:18 عصر
با سلام
من برنامه نویسی چندلایه کار کردم و پروژه هامو به صورت چند لایه مینویسم، اما وقتی که میخوام به یکی دیگه در مورد لایه های برنامه نویسی توضیح بدم، یک تعریف دقیق و تئوری توی ذهنم نیست که بشه باهاش حق مطلب رو ادا کنم، برا همین مجبور میشم یک ربع در موردش توضیح بدم و کلی مثال بزنم، اما بازهم مخاطبم متوجه مفهوم لایه ها نمیشه

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

ممنون

AmirHarirbafan
دوشنبه 11 بهمن 1389, 18:16 عصر
کسی تعریفی از مفهوم لایه نداره ؟

BAHAL_KEYHAN
شنبه 16 بهمن 1389, 19:26 عصر
خیلی مبتدیانه بخوام بگم اینه که
چند بخش تعریف میشه مثلا بخش رابط کرافیکی کاربر یا بخش دسترسی به بانک
سپس برای هر کدام چندین کلاس مادر تعریف میشود که میتوان هر کدام از این کلاس ها را به طور اختصاصی به یک بخش ارتباط داد

شاهرخ عشایری
چهارشنبه 20 بهمن 1389, 10:53 صبح
سلام دوست عزیز.
نخست باید یه مقدار در مورد اینکه چرا از برنامه نویسی لایه ای (Multi-Layer) استفاده می کنیم توضیح بدم.
در پروژه های کوچک چون تعداد افراد کمی (نهایت یک یا دو نفر) در ساخت پروژه همکاری می کنند این نیاز مشهود نیست. یعنی میشه پروژه رو بصورت یک لایه هم نوشت اما زمانیکه روی پروژه های بزرگتر کار میشه و تعداد افرا تیم از 3 یا 4 نفر تجاوز میکنند، به طور ناخودآگاه همراه کردن افراد در کنار هم کار مشکلی به نظر میرسه. به همین دلیل پروژه رو به بخش های مجزایی تقسیم می کنند و توسعه ی هر قسمت رو به افراد مختلفی واگذار میکنند. و همینطور توسعه و عیب یابی هر بخش (لایه) رو مستقل از لایه های دیگه انجام می دهند. در نهایت تنها کاری که باقی میمونه به هم پیوستن این بخش ها به هم و تشکیل یک پروژه ی تمام عیار هست.
از طرف دیگه این کار باعث میشه که عیب یابی پروژه راحت تر بشه. چون همونطور که مستحضر هستید در پروژه های با حجم متوسط به بالا، هزینه ی عیب یابی و نگهداری از هزینه ی تولید بالاتره. پس این روش میتونه از هزینه های آتی پروژه تا حد محسوسی کم کنه. همچنین متودولوژی چند لایه باعث انعطاف پذیری بالای پروژه نسبت به تغییرات احتمالی خواهد شد. یعنی شما می تونید بدون هیچ نگرانی از عملکر برنامه، تغییرات رو در لایه ها بطور مستقل اعمال کنید.(برای انجام اینکار در برنامه های غیر چند لایه ای زمان و هزینه ی گزافی رو باید متحمل بشید). همچنین از لحاظ امنیتی هم مورد توجه قرار خواهد گرفت، چون دیگر نیاز نیست افراد تیم به تمام قسمت های پروژه دست رسی داشته باشند و تنها باید در مورد چیزهایی اطلاعات داشته باشند که در حوزه کاری (لایه) خودشون قرار داره. این مورد میتونه از سو استفاده های احتمالی (خدای ناکرده...) افراد تیم جلوگیری کنه.

اما در مورد خود لایه ها باید خدمتتون عرض کنم که لایه در حقیقت تقسیم بندی منطقی (Multi-Layer) و یا فیزیکی (Multi-Tier) برنامه به قسمت های مختلف هست. به طوریکه هر قسمت وظیفه ی انجام کار بخصوصی رو بر عهده داره. یک قسمت مسئول کار با داده ها (Data Access Layer)، یک قسمت مسئول تامین امنیت و منطق برنامه (Business Link Layer) و یک قسمت هم شامل نمایش اطلاعات و بطور کلی واسط گرافیکی کاربر (User Interface) هست. هیچ الزامی برای رعایت تعداد لایه ها وجود نداره بطوریکه در مواردی تعداد لایه ها از 3 تا تجاوز میکنه و به 5 میرسه (در موارد لزوم حتی بیشتر!!!) و در موراد دیگر شاید به 2 لایه هم تنزل داشته باشیم. مهم تقسیم بندی صحیح پروژه به لحاظ عملکردی به قسمت های مختلف (برای رسیدن به اهداف مذکور) می باشد.
موفق و موید باشید...

cjNet
چهارشنبه 20 بهمن 1389, 16:44 عصر
سلام دوست من .

به تایپیک زیر یه سری بزن شاید کمکت کنه :

http://barnamenevis.org/showthread.php?263468-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B3%D9%87-%D9%84%D8%A7%DB%8C%D9%87

AmirHarirbafan
دوشنبه 25 بهمن 1389, 03:51 صبح
لایه در حقیقت تقسیم بندی منطقی (Multi-Layer) و یا فیزیکی (Multi-Tier) برنامه به قسمت های مختلف هست. به طوریکه هر قسمت وظیفه ی انجام کار بخصوصی رو بر عهده داره.
خیلی ممنون از توضیحتون
میدونید این سوال از کجا تو ذهن من شکل گرفت، ازاونجایی که در درس شکبه های کامپیوتری نیز مدل 7 لایه OSI داریم، و هیچوقت استادی رو ندیدم که بتونه سوال "خود لایه یعنی چی" رو بده. چون معمولا دانشجوها دنبال جوابی میگردن که راحت و سرراست باشه و تو امتحان همونو بنویسن و نمره بگیرن
حال سوال اینجاست که مفهوم لایه که در شبکه مطرح میشه با همین مفهوم شبکه که در بالا مطرح شد یکیست یا خیر؟
البته شاید مکان مناسبی برای این سوال نباشه