PDA

View Full Version : برنامه نویسی لایه ای



hsdnhd
چهارشنبه 24 دی 1393, 18:19 عصر
باسلام
دوستانی که در زمینه برنامه نویسی فعالیت دارند قطعا با برنامه نویسی لایه ای آشنا هستند که کاربردهای فراوانی در پروژه های عظیم داره به عنوان مثال نسخه قبلی فتوشاپ را با نسخه جدید مقایسه کنید شرکت ادوبی نمیاد از اول بنویسه پروژه را بلکه امکاناتی رو به اون اضافه میکنه درواقع لایه جدیدی به اون اضافه میشه درمورد سیستم عامل ها هم همینطور و لایه به لایه به برنامه اضافه میشه ولی اکثر سورس های موجود که دراینترنت هستند را من مشاهده کرده همچین قابلیتی ندارند و اگر بخواهی چیزی را اضافه کنی ظاهر اون رو عوض کنی کل کدنویسی یا قسمت زیادی باید عوض بشه این برنامه نویسی لایه ای را بصورت تئوری من شنیدم ومطالبشو خوندم میخواستم بدونم دقیقا چطوری عمل میکنه و میشه باهاش کار کرد و ازش استفاده کرد چون با بکارگیری این قابلیت واقعا کدنویسی و آپدیت نرم افزار خیلی ساده میشه درصورت امکان سورس ساده ای نیز قرار دهید ممنون از همگی

abdullah20
چهارشنبه 24 دی 1393, 19:42 عصر
منظور شما برنامه نویسی لایه ای است ؟یا طراحی نرم افزار به صورت پلاگین بیس و آپدایت آن با پلاگین؟

hsdnhd
پنج شنبه 25 دی 1393, 18:42 عصر
مثلا به عنوان مثال شما برنامه فتوشاپ را درنظر بگیرید هر ورژن که میاد خب شرکت Adobe نمیاد ازاول بنویسه بلکه آپدیت میکنه و یک لایه ظاهر یا قسمت های دیگه اضافه میشه به هسته اصلی برنامه میخواستم بدونم ساختار کار برنامه ها چطور هست؟چطور میتونند لایه لایه بهش اضافه کنند وازاول کدنویسی نکنند؟

abdullah20
پنج شنبه 25 دی 1393, 20:08 عصر
خوب دوست عزیز اینکه مسلم هستش نمیاد از اول بنویسه سورسش را داره فقط یک سری تغییرات روی اون میده
ولی اگر منظورتون اینه که کاربر فتوشاپ را نصب کرده و با یک سری پلاگین اون را بروز رسانی میکنه باید بگم باید نرم افزار خودتون را به صورت پلاگین بیس ایجاد کنید
اگر آموزش را خواستید بگید تا راهنمایی کنم

SabaSabouhi
پنج شنبه 25 دی 1393, 21:38 عصر
مثلا به عنوان مثال شما برنامه فتوشاپ را درنظر بگیرید هر ورژن که میاد خب شرکت Adobe نمیاد ازاول بنویسه بلکه آپدیت میکنه و یک لایه ظاهر یا قسمت های دیگه اضافه میشه به هسته اصلی برنامه میخواستم بدونم ساختار کار برنامه ها چطور هست؟چطور میتونند لایه لایه بهش اضافه کنند وازاول کدنویسی نکنند؟

سلام
دوست عزیز، شما اول باید هدف رو مشخص کنید. توسعه هر نوع برنامه، با هدف‌گذاری اون برنامه یه چیزی هست خاص خودش.
مثلاً شما نمی‌تونید روش توسعه فوتوشاپ و آفیس رو مقایسه کنید. یا مثلاً برنامه‌های مبتنی بر دیتابیس رو.
برنامه‌نویسی لایه‌ای رو هم درست متوجه نشدین. منظور از برنامه‌نویسی لایه‌ای این نیست که لایه‌ها مثل لایه‌های پیاز رو هم قرار بگیرن و
برنامه توسعه پیدا کنه.
تو برنامه‌نویسی لایه‌ای به صورت خلاصه، یکی از اهداف اینه که تولید برنامه به صورت لایه‌ها جداگانه انجام بشه، به نحوی که تیم‌های مختلف بدون این که
در کار هم دخالت داشته باشن، هر کدوم رو یه لایه کار کنن و نتیجه رو به هم وصل کنن.
و دیگه این که بشه لایه‌ها رو جابجا کرد.
مثلاً تو یه برنامه‌ی حسابداری، بشه بجای SQL Server از MySQL یا Oracle استفاده کرد، بدون این که به لایه‌های بیزینس یا UserInterface دست بخوره.
یا این که یه برنامه‌ای رو که با WinForm نوشته شده رو تبدیل به Wpf کنیم بدون این که به لایه‌های بیزینس و یا Data Access دست بخوره.
برنامه‌ نویسی لایه‌ای تو این مایه‌ها هست. اما مثالی که شما زدی ( فوتوشاپ ) ارتباطی به این صحبت‌ها نداره. و همونطور که دوستمون abdullah20 اشاره کرد
مربوط به ایجاد فضای تولید و استفاده از plugin هست.

صبا صبوحی

hsdnhd
جمعه 26 دی 1393, 07:03 صبح
سلام
دوست عزیز، شما اول باید هدف رو مشخص کنید. توسعه هر نوع برنامه، با هدف‌گذاری اون برنامه یه چیزی هست خاص خودش.
مثلاً شما نمی‌تونید روش توسعه فوتوشاپ و آفیس رو مقایسه کنید. یا مثلاً برنامه‌های مبتنی بر دیتابیس رو.
برنامه‌نویسی لایه‌ای رو هم درست متوجه نشدین. منظور از برنامه‌نویسی لایه‌ای این نیست که لایه‌ها مثل لایه‌های پیاز رو هم قرار بگیرن و
برنامه توسعه پیدا کنه.
تو برنامه‌نویسی لایه‌ای به صورت خلاصه، یکی از اهداف اینه که تولید برنامه به صورت لایه‌ها جداگانه انجام بشه، به نحوی که تیم‌های مختلف بدون این که
در کار هم دخالت داشته باشن، هر کدوم رو یه لایه کار کنن و نتیجه رو به هم وصل کنن.
و دیگه این که بشه لایه‌ها رو جابجا کرد.
مثلاً تو یه برنامه‌ی حسابداری، بشه بجای SQL Server از MySQL یا Oracle استفاده کرد، بدون این که به لایه‌های بیزینس یا UserInterface دست بخوره.
یا این که یه برنامه‌ای رو که با WinForm نوشته شده رو تبدیل به Wpf کنیم بدون این که به لایه‌های بیزینس و یا Data Access دست بخوره.
برنامه‌ نویسی لایه‌ای تو این مایه‌ها هست. اما مثالی که شما زدی ( فوتوشاپ ) ارتباطی به این صحبت‌ها نداره. و همونطور که دوستمون abdullah20 اشاره کرد
مربوط به ایجاد فضای تولید و استفاده از plugin هست.
صبا صبوحی
نه منظورم صحبت های کاربر عزیز عبدالله نبود منظورم همین صحبت های شماست آموزشی دراین زمینه مربوط به زبانی مثلا یا زبان های تحت وب سراغ دارید؟منظورم همینه که موقعی که مثلا خواستیم دیتابیس را ارتقا بدیم یا عوض کنیم لازم نباشه کل پروژه عوض بشه یا ظاهرش هم همینطور ممنون میشم دراین زمینه سورسی دراختیارم قرار بدید یا توضیحاتی درمورد روش کار بدید.
ممنون

پیام حیاتی
جمعه 26 دی 1393, 09:27 صبح
منابع :
http://www.it-ebooks.info/
و
http://www.farinsoft.com/

plus
جمعه 26 دی 1393, 16:16 عصر
نه منظورم صحبت های کاربر عزیز عبدالله نبود منظورم همین صحبت های شماست آموزشی دراین زمینه مربوط به زبانی مثلا یا زبان های تحت وب سراغ دارید؟منظورم همینه که موقعی که مثلا خواستیم دیتابیس را ارتقا بدیم یا عوض کنیم لازم نباشه کل پروژه عوض بشه یا ظاهرش هم همینطور ممنون میشم دراین زمینه سورسی دراختیارم قرار بدید یا توضیحاتی درمورد روش کار بدید.
ممنون
چیزی که مد نظر شماست لزوما "معماری چند لایه" نیست هرچند معماری چند لایه هم این شرایط رو فراهم میاره.در معماری، طراحی و پیاده سازی نرم افزار مفاهیمی هست مثل Reusibility (استفاده مجدد)، Separation of Concenrs، Loosly Coupling و ... که هر کدوم از این ها به بخشی از اون چیزی که مد نظر شما هست مربوط میشه.این مفاهیم مربوط به ایجاد نرم افزار خاصی نمیشه و به صورت کلی هست که آشنایی با این مفاهیم به شما در معماری، طراحی و پیاده سازی نرم افزار کمک میکنه تا بتونید نرم افزاری با هزینه کمتر (با استفاده مجدد از اجزا) و با پیچیدگی کمتر و در نتیجه نگهداری و مدیریت تغییرات ساده تره ایجاد کنید.آشنایی با این مفاهیم با خوندن یک مقاله 20 صفحه ای و یا رفتن به 10 جلسه کلاس فراهم نمیشه.لازمش، مطالعه کتاب های مربوطه و تمرین و تجربه هست.برای شروع میتونید به سراغ کتابی مثل Code Complete برید.
معماری چند لایه معمولا به معماری ای در ایجاد سیستم های دیتابیس محور گفته میشه که مفاهیمی که در بالا اشاره کردم با روش خاصی در اون در نظر گرفته شده که برای مثال شما عملیات دسترسی به داده رو در بخشی جدا از عملیات قوانین کار قرار میدین.این خودش به معنی Separation of Concerns هست و میتونه استفاده مجدد رو هم به دنبال داشته باشه.
http://en.wikipedia.org/wiki/Reusability
http://en.wikipedia.org/wiki/Loose_coupling
http://en.wikipedia.org/wiki/Separation_of_concerns

one hacker alone
جمعه 26 دی 1393, 17:20 عصر
من در مورد معماری چند لایه خوندم و اشنا هستم میخواستم بدونم دوستان مثال ساده دارن برای یاد گیری؟
کد های تو نت پیچیده هست